Atelier de programmation Python - Super introduction Vol.3

Avant le sujet principal


Positionnement / prémisse

Cet article a été préparé pour le ** Atelier interne **. Par conséquent, veuillez comprendre que nous procéderons sur les hypothèses suivantes.


Objectif de cet atelier

Le but est de permettre aux participants de ** se tenir à l'entrée où ils peuvent étudier par eux-mêmes au besoin **.


Comment procéder avec l'atelier

L'atelier se concentre essentiellement sur la pratique. (Certaines explications sont incluses)


Mise en garde

Cet atelier devrait durer de ** 60 à 120 minutes **. Par conséquent, nous ne faisons pas ** d'apprentissage systématique ** parce que nous n'avons pas assez de temps pour un apprentissage à grande échelle.

Afin de pouvoir créer le programme que vous voulez à partir de zéro, vous devez étudier par vous-même ou suivre une sorte de cours.


cible

Cet atelier s'adresse principalement aux participants suivants.

Veuillez noter qu'il y a beaucoup de choses que je n'ose pas mentionner car je ne traite pas du tout de personnes intermédiaires et avancées.


Préparation de l'environnement de programmation

Veuillez consulter ici.


Dernier examen

Merci de répondre aux questions suivantes.

review3-1.py


for i in range(5):
    print("Yes")

review3-3.py


a = (3 * 5 + 1 ) / 2
print(a)

Ce dont je me suis souvenu la dernière fois


L'objectif d'aujourd'hui

Créez un script (presque un bot Slack) qui publie sur Slack de manière régulière et aléatoire.

Si possible, assurez-vous de comprendre ce que vous avez écrit plus tard. Cependant, vous n'avez pas à vous en souvenir parfaitement.


Démarrage pratique


Mains sur 1


Pratique 1-0. Préparation de votre compte Slack et destination de l'importation

Comme auparavant, préparez ce qui suit.

L'URL de destination finale du téléversement Slack sera désormais appelée "** URL de destination POST **". (La raison était la dernière fois)


Travaux pratiques 1-1. Publier sur Slack (comme la dernière fois)

Enregistrez le script suivant sous exp311.py dans le dossier c: \ script et exécutez-le.

ex311.py


import requests
import json

URL = "[URL de destination du POST]"
MESSAGE = json.dumps({"text": "TEST"})
requests.post(URL, MESSAGE)

Bien sûr, remplacez [URL de destination POST] par l'URL préparée.


Travaux pratiques 1-2. Publiez sur Slack en 10 secondes

Copiez ex11.py et réécrivez-le comme suit. (Vous pouvez copier le code que vous avez écrit)

ex312.py


import requests
import json
import time

time.sleep(10)
URL = "[URL de destination du POST]"
MESSAGE = json.dumps({"text": "TEST"})
requests.post(URL, MESSAGE)

Enregistrez ensuite exp312.py et exécutez le script.


Travaux pratiques 1 à 3. Affichez la date et l'heure actuelles dans Slack

Copiez ex11.py et réécrivez-le comme suit. (Vous pouvez copier le code que vous avez écrit)

ex313.py


import requests
import json
import datetime

NOW = datetime.datetime.now()
URL = "[URL de destination du POST]"
MESSAGE = json.dumps({"text": str(NOW)})
requests.post(URL, MESSAGE)

Enregistrez ensuite exp313.py et exécutez le script.


Commentaire 1


Programmation de la merde (examen)


Commentaires pratiques 1-2

Voici la différence entre l'ex312.py et l'ex311.py exécutés.

ex312.py (extrait)


import time

J'importe un module de temps qui gère le temps ici.

ex312.py (extrait)


time.sleep(10)

Avec cette commande, j'essaye de dormir pendant 10 secondes.

Rien ne s'affiche en attendant 10 secondes, mais lorsque vous le comptez, c'est un mécanisme permettant d'attendre 10 secondes avant de poster.

Si vous voulez le faire dormir comme ça, utilisez ce qui suit.

format de sommeil


time.sleep(Le nombre de secondes)

C'est l'un des processus fréquemment utilisés, comme attendre de quelques secondes à quelques jours.


Commentaires pratiques 1-3

Voici la différence entre les exécutés ex313.py et ex311.py.

ex312.py (extrait)


import datetime

Importez ici le module datetime qui gère l'heure.

Le module de temps mentionné précédemment est un module qui se concentre sur les outils qui traitent du temps, mais le module datetime est un module qui effectue principalement diverses opérations sur la date et l'heure elle-même.

ex312.py (extrait)


NOW = datetime.datetime.now()

Avec cette instruction, l'heure actuelle est stockée dans la variable NOW.

ex312.py (extrait)


MESSAGE = json.dumps({"text": str(NOW)})

Ce str (MAINTENANT) est le point.

NOW stocke les données temporelles et peut être reconnu par l'œil humain sous forme de texte (chaîne de caractères) représentant l'heure.

Cependant, les ordinateurs ont la caractéristique que les chaînes de caractères et les données temporelles ne peuvent pas être traitées comme les mêmes données.

Les caractéristiques des données de cette manière sont appelées ** type de données (type) **.

Les données d'heure stockées dans NOW sont du ** type d'heure ** et le type de chaîne de caractères (texte) est ** string (String) **.

Il existe de nombreux ** types de données (types) **, mais pour le moment, il suffit de mettre ** time type ** et ** string type (string / String) ** dans le coin de votre tête.

ex312.py (extrait)


MESSAGE = json.dumps({"text": str(NOW)})

Dans cette description, je crée un message de publication Slack, mais le point est ** str (NOW) **.

Normalement, MAINTENANT devrait être correct, mais s'il est laissé tel quel, une erreur se produira.

C'est parce que ** NOW n'est pas un type de chaîne **.

Comme promesse, tous les formats JSON doivent être des chaînes.

Par conséquent, à l'aide de str (NOW), la valeur stockée dans NOW peut être convertie en un type de chaîne de caractères.

C'est un "type" très ennuyeux, mais ce mécanisme a également pour effet d'empêcher le mélange de données incorrectes.

Par conséquent, habituons-nous progressivement.


Mains sur 2


Pratique 2-1. Publier sur Slack à un moment aléatoire

Enregistrez le script suivant sous exp321.py dans le dossier c: \ script et exécutez-le.

ex321.py


import requests
import json
import random
import time

URL = "[URL de destination du POST]"
MESSAGE = json.dumps({"text": "TEST"})
num = random.randint(1, 10)
time.sleep(num)
requests.post(URL, MESSAGE)

Bien sûr, remplacez [URL de destination POST] par l'URL préparée.


Travaux pratiques 2-2. Activez l'interrupteur pour publier sur Slack

Enregistrez le script suivant sous exp322.py dans le dossier c: \ script et exécutez-le.

ex322.py


import requests
import json

flag = True
URL = "[URL de destination du POST]"
MESSAGE = json.dumps({"text": "TEST"})
if flag is True:
    requests.post(URL, MESSAGE)

Bien sûr, remplacez [URL de destination POST] par l'URL préparée.


Travaux pratiques 2-3. Publiez sur Slack si "OK" est inclus

Enregistrez le script suivant sous exp23.py dans le dossier c: \ script et exécutez-le.

ex323.py


import requests
import json

URL = "[URL de destination du POST]"
MESSAGE = json.dumps({"text": "TEST"})
if "OK" in MESSAGE:
    requests.post(URL, MESSAGE)

MESSAGE = json.dumps({"text": "It is OK."})
if "OK" in MESSAGE:
    requests.post(URL, MESSAGE)

Bien sûr, remplacez [URL de destination POST] par l'URL préparée.


Commentaire 2


Commentaire pratique 2-1

Voici le point à vérifier dans l'ex321.py exécuté.

ex321.py (extrait)


import random

Ici, nous chargeons le module pour générer un nombre aléatoire.

ex321.py (extrait)


num = random.randint(1, 10)

C'est un processus qui génère un nombre aléatoire.

Il existe plusieurs types de nombres, mais Python traite souvent les deux suivants.

Ce sont les mêmes nombres, mais vous devez garder à l'esprit qu'ils peuvent être utilisés différemment.

Sur cette base, ** randint ** est utilisé comme instruction pour générer "nombre aléatoire = entier aléatoire".

Au fait, afin de ne générer qu'un seul entier de 1 à 10 au hasard, j'ai écrit une commande comme random.randint (1, 10).

random.format randint


random.randint(Nombre de démarrages,Nombre d'extrémités)

Veuillez comprendre que la formule est le nombre de départs <= N <= le nombre de fins.


Commentaire pratique 2-2

Voici le point à vérifier dans l'ex322.py exécuté.

ex322.py (extrait)


flag = True

Je mets une valeur dans une variable qui n'est ni une chaîne ni un nombre.

La valeur exprimée ici par True / False est appelée ** Boolean **.

Un type de données simple utilisé lorsque seule l'authenticité est gérée.

ex322.py (extrait)


if flag is True:
    requests.post(URL, MESSAGE)

Ici, c'est une instruction indiquant la "condition" à exécuter.

Si la valeur de l'indicateur de variable est True, le contenu indenté ci-dessous est exécuté.

La commande qui exprime cette "condition" est appelée "instruction if" et est utilisée très souvent.

Formule de document IF


if {conditions}:
Contenu d'exécution

Il peut y avoir plusieurs contenus d'exécution. Toutes les parties en retrait sont considérées comme identiques.

Exemple de phrase IF


if a == 1:
    b == 1
    print(b)
    print(a)
    print("Si b vaut 1, il sera exécuté jusqu'à présent")

C'est une instruction IF qui apparaît toujours comme la base de la programmation.

C'est simple, mais il existe de nombreuses possibilités de l'utiliser, alors souvenons-nous-en.


Commentaires pratiques 2-3

Voici les points à vérifier dans l'ex323.py exécuté.

ex323.py (extrait)


MESSAGE = json.dumps({"text": "TEST"})
if "OK" in MESSAGE:
    requests.post(URL, MESSAGE)

Le "si" OK "dans MESSAGE:" spécifié dans l'instruction IF signifie "si la variable MESSAGE contient la chaîne de caractères" OK "".

De cette manière, utilisez ** in ** pour déterminer si une variable contient la chaîne spécifiée.

au format


if {Chaîne de caractères que vous souhaitez inclure} in {Chaîne de caractères à confirmer}:

De même, l'instruction IF détermine la variable MESSAGE qui a modifié le contenu de la chaîne de caractères à vérifier.

ex323.py (extrait)


MESSAGE = json.dumps({"text": "It is OK."})
if "OK" in MESSAGE:
    requests.post(URL, MESSAGE)

Dans ce cas, le fait est qu'il ne correspond pas exactement, et il doit être inclus dans la chaîne de caractères (texte) de la variable MESSAGE.

De cette façon, veuillez comprendre que les conditions des instructions IF (appelées expressions conditionnelles) sont diverses.


Mains sur 3


Pratique 3-1. Publiez sur Slack après 10 h

Enregistrez le script suivant sous exp331.py dans le dossier c: \ script et exécutez-le.

ex331.py


import requests
import json
import datetime

NOW = datetime.datetime.now()
AM10 = NOW.replace(hour=10, minute=0, second=0, microsecond=0)

URL = "https://hooks.slack.com/services/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"
MESSAGE = json.dumps({"text": "Il est plus de 10 heures."})

print("Actuellement" + str(NOW) + "est.")
print(str(AM10) + "Je le posterai après ça.")

if AM10 <= NOW:
    requests.post(URL, MESSAGE)
    print("Publié dans Slack.")

Bien sûr, remplacez [URL de destination POST] par l'URL préparée.


Travaux pratiques 3-2. Publiez sur Slack de 10 h à 18 h

Enregistrez le script suivant sous exp332.py dans le dossier c: \ script et exécutez-le.

ex332.py


import requests
import json
import datetime

NOW = datetime.datetime.now()
AM10 = NOW.replace(hour=10, minute=0, second=0, microsecond=0)
PM18 = NOW.replace(hour=18, minute=0, second=0, microsecond=0)

URL = "https://hooks.slack.com/services/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"
MESSAGE = json.dumps({"text": "Il est plus de 10 heures."})

print("Actuellement" + str(NOW) + "est.")
print(str(AM10) + "~" + str(PM18) + "Je vais le poster.")

if AM10 <= NOW <= PM18:
    requests.post(URL, MESSAGE)
    print("Publié dans Slack.")

Bien sûr, remplacez [URL de destination POST] par l'URL préparée.


Commentaire 3


Commentaires pratiques 3-1

Voici ce que vous devez vérifier dans l'ex331.py exécuté.

ex331.py


NOW = datetime.datetime.now()

Vous mettez l'heure actuelle dans la variable MAINTENANT.

Cette commande datetime.datetime.now () est longue, mais elle est standard, alors utilisez-la si nécessaire. (Si vous comprenez, la copie suffit.)

ex331.py


AM10 = NOW.replace(hour=10, minute=0, second=0, microsecond=0)

Il s'agit d'une instruction qui place les données de temps indiquant "10 heures" dans la variable AM10.

Celui-ci contient les données de temps de la variable NOW, l'heure étant remplacée à 10 heures.

Cela peut paraître étrange, mais pensez-y comme l'un des moyens de gérer les données en fonction du présent.

ex331.py


print("Actuellement" + str(NOW) + "est.")
print(str(AM10) + "Je le posterai après ça.")

La variable NOW introduite précédemment est convertie en chaîne.

De plus, connectez les chaînes avec un + pour les joindre.

Ce faisant, vous pouvez afficher une combinaison de chaînes et de variables.

ex331.py


if AM10 <= NOW:
    requests.post(URL, MESSAGE)
    print("Publié dans Slack.")

La variable NOW qui représente le présent est plus grande que la variable AM10 créée plus tôt, c'est-à-dire que l'instruction IF dit "s'il est plus de 10 heures".

Les conditions elles-mêmes ne sont pas compliquées, mais voyez-vous qu'il faut un certain effort pour préparer les données à utiliser dans les conditions?

En programmation, il existe de nombreuses tâches telles que la préparation des choses à comparer et l'appariement des moules.


Commentaire pratique 3-2

C'est le point culminant du contenu expliqué jusqu'à présent.

Voici les points à vérifier dans ex332.py.

ex332.py (extrait)


AM10 = NOW.replace(hour=10, minute=0, second=0, microsecond=0)
PM18 = NOW.replace(hour=18, minute=0, second=0, microsecond=0)

Ici, la variable AM10 contient les données de temps indiquant "10 heures", et la variable PM18 contient les données de temps indiquant "18 heures".

ex332.py (extrait)


if AM10 <= NOW <= PM18:
    requests.post(URL, MESSAGE)
    print("Publié dans Slack.")

L'instruction IF indique la condition "de 10 h à 18 h".

De cette façon, c'est l'une des fonctionnalités de Python que plusieurs conditions peuvent être définies ensemble.

Même si vous écrivez comme suit, cela fonctionnera de la même manière.

ex332.py (extrait)


if AM10 <= NOW and NOW <= PM18:
(réduction)

S'il est plus facile à lire s'il est omis, utilisez une notation franchement facile à lire.


Des exercices

Créons un script qui répond à ces exigences et exécutons-le.

** Q. Un script qui publie "Bonjour" sur Slack à 7 heures du matin tous les matins **

Les points à considérer sont les suivants.


À la fin

Cette fois aussi, j'ai essayé de créer un atelier avec l'essence de base de la programmation.

En particulier, nous avons introduit les «expressions conditionnelles», le «formatage du texte» et les «opérations de comparaison» comme mots clés importants dans la programmation.

La structure de base aurait dû être couverte dans une certaine mesure cette fois.

La prochaine fois, j'aimerais approfondir ma compréhension en passant en revue les bases que j'ai apprises jusqu'à présent et en créant un programme légèrement différent.

De plus, bien que l'explication soit erronée dans de nombreuses parties, soyez patient car c'est pour les débutants.

Si vous souhaitez continuer à apprendre, veuillez faire une demande.


officiel


Site de référence Python


Livres sur Python


Service d'apprentissage Python

Une collection de services Web / écoles en ligne faciles à utiliser.

Recommended Posts

Atelier de programmation Python - Super introduction Vol.3
Atelier de programmation Python - Super introduction Vol.4
Atelier de programmation Python-Ultra-Introduction à l'environnement d'exécution Python
Note de programmation Python
Programmation avec Python
3. 3. Programmation IA avec Python
Programmation Python avec Atom
Programmation compétitive avec python
Programmation Python avec Excel
LEGO Mindstorms 51515 Programmation Python
Programmation avec Python Flask
Programmation avec Python et Tkinter
Concours de programmation Atcoder Acing Python
Résumé de l'article sur la programmation Web Python
Paiza Python Primer 1 Apprendre la programmation
Programmation Python Machine Learning> Mots-clés
Une introduction à la programmation Python
Programmation réseau avec Python Scapy
[Swift / Ruby / Python / Java] Programmation orientée objet
Entrée standard Python3 pour une programmation compétitive
Programmation GUI en Python avec Appjar
Programmation fonctionnelle dans Python Project Euler 1
[Introduction à Python3 Jour 1] Programmation et Python
Programmation fonctionnelle dans Python Project Euler 3
[Python] [Table des matières Liens] Programmation Python
[Python] Programmation orientée objet apprise avec Pokemon
"La classe d'introduction Python la plus simple" modifiée
A propos des modules Python Primer et des expressions conditionnelles
Programmation facile Python + OpenCV avec Canopy
Programmation fonctionnelle dans Python Project Euler 2
documentation python lecture HOWTO de programmation de socket
Premiers pas avec python3