Python Programming Workshop - Super Einführung Vol.3

Vor dem Hauptthema


Positionierung / Prämisse

Dieser Artikel wurde für den ** Inhouse Workshop ** vorbereitet. Bitte haben Sie Verständnis dafür, dass wir von den folgenden Annahmen ausgehen.


Zweck dieses Workshops

Ziel ist es, den Teilnehmern zu ermöglichen, ** am Eingang zu stehen, wo sie bei Bedarf selbst lernen können **.


Wie geht es mit dem Workshop weiter?

Der Workshop konzentriert sich hauptsächlich auf praktische Übungen. (Einige Erklärungen sind enthalten)


Hinweis

Dieser Workshop wird voraussichtlich ** 60-120 Minuten ** dauern. Daher machen wir kein ** systematisches Lernen **, weil wir nicht genug Zeit für ein umfassendes Lernen haben.

Um das gewünschte Programm ernsthaft von Grund auf neu erstellen zu können, müssen Sie selbst lernen oder einen Kurs belegen.


Ziel

Dieser Workshop richtet sich hauptsächlich an folgende Teilnehmer.

Bitte beachten Sie, dass es viele Dinge gibt, die ich nicht zu erwähnen wage, weil ich mich überhaupt nicht mit fortgeschrittenen und fortgeschrittenen Menschen befasse.


Programmierumgebung vorbereiten

Bitte sehen Sie hier.


Letzte Überprüfung

Bitte beantworten Sie die folgenden Fragen.

review3-1.py


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

review3-3.py


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

Woran ich mich letztes Mal erinnerte


Das heutige Ziel

Erstellen Sie ein Skript (fast Slack Bot), das regelmäßig und zufällig auf Slack veröffentlicht.

Wenn möglich, stellen Sie sicher, dass Sie verstehen, was Sie später geschrieben haben. Sie müssen sich jedoch nicht perfekt daran erinnern.


Praktischer Start


Hands on 1


Hands-on 1-0. Vorbereiten Ihres Slack-Kontos und Hochladen des Ziels

Bereiten Sie wie zuvor Folgendes vor.

Die endgültige Slack-Upload-Ziel-URL wird von nun an als "** POST-Ziel-URL **" bezeichnet. (Der Grund war das letzte Mal)


Hands-on 1-1. Post to Slack (wie beim letzten Mal)

Speichern Sie das folgende Skript als exp311.py im Ordner c: \ script und führen Sie es aus.

ex311.py


import requests
import json

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

Ersetzen Sie natürlich [POST-Ziel-URL] durch die vorbereitete URL.


Hands-on 1-2. In 10 Sekunden auf Slack posten

Kopieren Sie ex11.py und schreiben Sie es wie folgt neu. (Sie können den von Ihnen geschriebenen Code kopieren.)

ex312.py


import requests
import json
import time

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

Speichern Sie dann exp312.py und führen Sie das Skript aus.


Hands-on 1-3. Geben Sie das aktuelle Datum und die aktuelle Uhrzeit an Slack weiter

Kopieren Sie ex11.py und schreiben Sie es wie folgt neu. (Sie können den von Ihnen geschriebenen Code kopieren.)

ex313.py


import requests
import json
import datetime

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

Speichern Sie dann exp313.py und führen Sie das Skript aus.


Kommentar 1


Programmiermist (Rückblick)


Praktischer 1-2 Kommentar

Hier ist der Unterschied zwischen dem ausgeführten ex312.py und dem ex311.py.

ex312.py (Auszug)


import time

Ich importiere hier ein Zeitmodul, das die Zeit verarbeitet.

ex312.py (Auszug)


time.sleep(10)

Mit diesem Befehl versuche ich 10 Sekunden zu schlafen.

Während Sie 10 Sekunden warten, wird nichts angezeigt. Wenn Sie es jedoch zählen, können Sie vor dem Posten 10 Sekunden warten.

Wenn Sie möchten, dass es so schläft, verwenden Sie Folgendes.

Schlafformat


time.sleep(Die Anzahl der Sekunden)

Dies ist einer der häufig verwendeten Prozesse, z. B. das Warten von einigen Sekunden bis zu einigen Tagen.


Praktischer 1-3 Kommentar

Hier ist der Unterschied zwischen dem ausgeführten ex313.py und dem ex311.py.

ex312.py (Auszug)


import datetime

Importieren Sie hier das Datum / Uhrzeit-Modul, das die Zeit verarbeitet.

Das zuvor erwähnte Zeitmodul ist ein Modul, das sich auf Werkzeuge konzentriert, die sich mit Zeit befassen, aber das Datum / Uhrzeit-Modul ist ein Modul, das hauptsächlich verschiedene Operationen am Datum und an der Uhrzeit selbst ausführt.

ex312.py (Auszug)


NOW = datetime.datetime.now()

Mit dieser Anweisung wird die aktuelle Zeit in der Variablen NOW gespeichert.

ex312.py (Auszug)


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

Diese str (JETZT) ist der Punkt.

JETZT speichert Zeitdaten und kann vom menschlichen Auge als Text (Zeichenfolge) erkannt werden, der die Zeit darstellt.

Computer haben jedoch die Eigenschaft, dass Zeichenfolgen und Zeitdaten nicht als dieselben Daten behandelt werden können.

Die Eigenschaften von Daten auf diese Weise werden als ** Datentyp (Typ) ** bezeichnet.

Die in JETZT gespeicherten Zeitdaten sind ** Zeittyp ** und der Typ der Zeichenfolge (Text) ist ** Zeichenfolge (Zeichenfolge) **.

Es gibt viele ** Datentypen (Typen) **, aber vorerst setzen Sie einfach ** Zeittyp ** und ** String-Typ (String / String) ** in die Ecke Ihres Kopfes.

ex312.py (Auszug)


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

In dieser Beschreibung erstelle ich eine Slack-Post-Nachricht, aber der Punkt ist ** str (JETZT) **.

Normalerweise sollte JETZT in Ordnung sein, aber wenn es so bleibt, wie es ist, tritt ein Fehler auf.

Dies liegt daran, dass ** NOW kein Zeichenfolgentyp ** ist.

Als Versprechen müssen alle JSON-Formate Zeichenfolgen sein.

Daher kann mit str (NOW) der in NOW gespeicherte Wert in einen Zeichenkettentyp konvertiert werden.

Es ist ein sehr nerviger "Typ", aber dieser Mechanismus verhindert auch, dass falsche Daten eingemischt werden.

Lassen Sie uns deshalb allmählich daran gewöhnen.


Hands on 2


Hands-on 2-1. Post to Slack zum zufälligen Zeitpunkt

Speichern Sie das folgende Skript als exp321.py im Ordner c: \ script und führen Sie es aus.

ex321.py


import requests
import json
import random
import time

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

Ersetzen Sie natürlich [POST-Ziel-URL] durch die vorbereitete URL.


Hands-on 2-2. Schalten Sie den Schalter ein, um auf Slack zu posten

Speichern Sie das folgende Skript als exp322.py im Ordner c: \ script und führen Sie es aus.

ex322.py


import requests
import json

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

Ersetzen Sie natürlich [POST-Ziel-URL] durch die vorbereitete URL.


Hands-on 2-3. Post to Slack, wenn "OK" enthalten ist

Speichern Sie das folgende Skript als exp23.py im Ordner c: \ script und führen Sie es aus.

ex323.py


import requests
import json

URL = "[POST-Ziel-URL]"
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)

Ersetzen Sie natürlich [POST-Ziel-URL] durch die vorbereitete URL.


Kommentar 2


Praktischer 2-1 Kommentar

Hier ist der Punkt zum Einchecken der ausgeführten ex321.py.

ex321.py (Auszug)


import random

Hier laden wir das Modul, um eine Zufallszahl zu generieren.

ex321.py (Auszug)


num = random.randint(1, 10)

Es ist ein Prozess, der eine Zufallszahl generiert.

Es gibt verschiedene Typen, die Zahlen darstellen, aber Python befasst sich häufig mit den folgenden beiden.

Dies sind die gleichen Zahlen, aber Sie müssen bedenken, dass sie möglicherweise unterschiedlich verwendet werden.

Basierend darauf wird ** randint ** als Anweisung verwendet, um "Zufallszahl = zufällige Ganzzahl" zu erzeugen.

Übrigens habe ich einen Befehl als random.randint (1, 10) geschrieben, um nur eine ganze Zahl von 1 bis 10 zufällig zu generieren.

random.Randint-Format


random.randint(Anzahl der Starts,Anzahl der Enden)

Bitte haben Sie Verständnis dafür, dass die Formel die Anzahl der Starts <= N <= die Anzahl der Enden ist.


Praktischer 2-2 Kommentar

Hier ist der Punkt zum Einchecken der ausgeführten ex322.py.

ex322.py (Auszug)


flag = True

Ich habe einen Wert in eine Variable eingefügt, die weder eine Zeichenfolge noch eine Zahl ist.

Der hier durch True / False ausgedrückte Wert heißt ** Boolean **.

Ein einfacher Datentyp, der verwendet wird, wenn nur die Authentizität behandelt wird.

ex322.py (Auszug)


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

Hier ist es eine Anweisung, die die auszuführende "Bedingung" angibt.

Wenn der Wert des Variablenflags True ist, wird der folgende eingerückte Inhalt ausgeführt.

Der Befehl, der diese "Bedingung" ausdrückt, wird als "if-Anweisung" bezeichnet und sehr häufig verwendet.

IF-Dokumentformel


if {Bedingungen}:
Ausführungsinhalt

Es kann mehrere Ausführungsinhalte geben. Alle eingerückten Teile gelten als gleich.

IF Satzbeispiel


if a == 1:
    b == 1
    print(b)
    print(a)
    print("Wenn b 1 ist, wird es bisher ausgeführt")

Es ist eine IF-Anweisung, die immer als Grundlage für die Programmierung erscheint.

Es ist einfach, aber es gibt viele Möglichkeiten, es zu nutzen. Erinnern wir uns also daran.


Praktischer 2-3 Kommentar

Hier sind die Punkte, die im ausgeführten ex323.py eingecheckt werden müssen.

ex323.py (Auszug)


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

Das in der IF-Anweisung angegebene "if" OK "in MESSAGE:" bedeutet "wenn die Variable MESSAGE die Zeichenfolge" OK "enthält".

Verwenden Sie auf diese Weise ** in **, um zu bestimmen, ob eine Variable die angegebene Zeichenfolge enthält.

im Format


if {Zeichenkette, die Sie einschließen möchten} in {Zu bestätigende Zeichenkette}:

Auf die gleiche Weise bestimmt die IF-Anweisung die Variable MESSAGE, deren Inhalt der zu bestätigenden Zeichenfolge geändert wurde.

ex323.py (Auszug)


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

In diesem Fall ist der Punkt, dass es nicht genau übereinstimmt und in die Zeichenfolge (Text) der Variablen MESSAGE aufgenommen werden sollte.

Bitte haben Sie Verständnis dafür, dass die Bedingungen von IF-Anweisungen (als bedingte Ausdrücke bezeichnet) unterschiedlich sind.


Hands on 3


Hands-on 3-1. Post to Slack nach 10 Uhr

Speichern Sie das folgende Skript als exp331.py im Ordner c: \ script und führen Sie es aus.

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": "Es ist nach 10 Uhr."})

print("Zur Zeit" + str(NOW) + "ist.")
print(str(AM10) + "Ich werde es danach posten.")

if AM10 <= NOW:
    requests.post(URL, MESSAGE)
    print("Gepostet in Slack.")

Ersetzen Sie natürlich [POST-Ziel-URL] durch die vorbereitete URL.


Hands-on 3-2. Post von 10 bis 18 Uhr an Slack

Speichern Sie das folgende Skript als exp332.py im Ordner c: \ script und führen Sie es aus.

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": "Es ist nach 10 Uhr."})

print("Zur Zeit" + str(NOW) + "ist.")
print(str(AM10) + "~" + str(PM18) + "Ich werde es posten.")

if AM10 <= NOW <= PM18:
    requests.post(URL, MESSAGE)
    print("Gepostet in Slack.")

Ersetzen Sie natürlich [POST-Ziel-URL] durch die vorbereitete URL.


Kommentar 3


Praktischer 3-1-Kommentar

Folgendes sollten Sie in der ausgeführten ex331.py einchecken.

ex331.py


NOW = datetime.datetime.now()

Sie geben die aktuelle Zeit JETZT in die Variable ein.

Dieser Befehl datetime.datetime.now () ist lang, aber Standard. Verwenden Sie ihn daher nach Bedarf. (Wenn Sie verstehen, reicht das Kopieren aus.)

ex331.py


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

Dies ist eine Anweisung, die Zeitdaten, die "10 Uhr" anzeigen, in die Variable AM10 einfügt.

Diese enthält die Zeitdaten der Variablen NOW, wobei die Zeit um 10 Uhr ersetzt wird.

Es mag seltsam erscheinen, aber betrachten Sie es als eine der Möglichkeiten, mit Daten umzugehen, die auf der Gegenwart basieren.

ex331.py


print("Zur Zeit" + str(NOW) + "ist.")
print(str(AM10) + "Ich werde es danach posten.")

Die zuvor eingeführte Variable NOW wird in eine Zeichenfolge konvertiert.

Verbinden Sie außerdem die Zeichenfolgen mit einem +, um sie miteinander zu verbinden.

Auf diese Weise können Sie eine Kombination aus Zeichenfolgen und Variablen anzeigen.

ex331.py


if AM10 <= NOW:
    requests.post(URL, MESSAGE)
    print("Gepostet in Slack.")

Die Variable NOW, die die Gegenwart darstellt, ist größer als die zuvor erstellte Variable AM10, dh die IF-Anweisung sagt "wenn es nach 10 Uhr ist".

Die Bedingungen selbst sind nicht kompliziert, aber können Sie sehen, dass es einige Anstrengungen erfordert, die Daten für die Verwendung unter den Bedingungen vorzubereiten?

In der Programmierung gibt es viele Aufgaben, wie das Vorbereiten von Dingen zum Vergleichen und Anpassen der Formen.


Praktischer 3-2 Kommentar

Dies ist der Höhepunkt der bisher erläuterten Inhalte.

Hier sind die Punkte, die Sie in ex332.py einchecken sollten.

ex332.py (Auszug)


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

Hier enthält die Variable AM10 die Zeitdaten, die "10 Uhr" anzeigen, und die Variable PM18 enthält die Zeitdaten, die "18:00" anzeigen.

ex332.py (Auszug)


if AM10 <= NOW <= PM18:
    requests.post(URL, MESSAGE)
    print("Gepostet in Slack.")

Die IF-Anweisung gibt die Bedingung "nach 10 bis 18 Uhr" an.

Auf diese Weise ist es eine der Funktionen von Python, dass mehrere Bedingungen zusammen festgelegt werden können.

Selbst wenn Sie wie folgt schreiben, funktioniert es genauso.

ex332.py (Auszug)


if AM10 <= NOW and NOW <= PM18:
(Kürzung)

Wenn es leichter zu lesen ist, wenn es weggelassen wird, verwenden Sie eine positiv leicht lesbare Notation.


Übungen

Lassen Sie uns ein Skript erstellen, das diese Anforderungen erfüllt, und es ausführen.

** Q. Ein Skript, das jeden Morgen um 7 Uhr morgens "Guten Morgen" an Slack sendet **

Folgende Punkte sind zu beachten.


Am Ende

Auch diesmal habe ich versucht, einen Workshop zu erstellen, der die grundlegenden Grundlagen der Programmierung enthält.

Insbesondere haben wir "bedingte Ausdrücke", "Textformatierung" und "Vergleichsoperationen" als wichtige Schlüsselwörter in der Programmierung eingeführt.

Die Grundstruktur hätte diesmal zum Teil abgedeckt sein müssen.

Das nächste Mal möchte ich mein Verständnis vertiefen, indem ich die Grundlagen, die ich bisher gelernt habe, überprüfe und ein etwas anderes Programm erstelle.

Obwohl es viele Teile gibt, in denen die Erklärung gebrochen ist, haben Sie bitte etwas Geduld, da dies für Anfänger gilt.

Wenn Sie weiter lernen möchten, stellen Sie bitte eine Anfrage.


offiziell


Python-Referenzseite


Python-bezogene Bücher


Python-Lerndienst

Eine Sammlung benutzerfreundlicher Webdienste / Online-Schulen.

Recommended Posts

Python Programming Workshop - Super Einführung Vol.3
Python Programming Workshop - Super Einführung Vol.4
Python-Programmierworkshop - Ultra-Einführung in die Python-Ausführungsumgebung
Python-Programmierhinweis
Programmieren mit Python
3. 3. KI-Programmierung mit Python
Python-Programmierung mit Atom
Wettbewerbsfähige Programmierung mit Python
Python-Programmierung mit Excel
LEGO Mindstorms 51515 Python-Programmierung
Programmieren mit Python Flask
Programmieren mit Python und Tkinter
Atcoder Acing Programmierwettbewerb Python
Zusammenfassung des Python-Webprogrammierartikels
Paiza Python Primer 1 Programmieren lernen
Python Machine Learning Programming> Schlüsselwörter
Eine Einführung in die Python-Programmierung
Netzwerkprogrammierung mit Python Scapy
[Swift / Ruby / Python / Java] Objektorientierte Programmierung
Python3-Standardeingabe für wettbewerbsfähige Programmierung
GUI-Programmierung in Python mit Appjar
Funktionsprogrammierung in Python Project Euler 1
[Einführung in Python3 Tag 1] Programmierung und Python
Funktionale Programmierung in Python Project Euler 3
[Python] [Inhaltsverzeichnis Links] Python-Programmierung
[Python] Mit Pokemon erlernte objektorientierte Programmierung
"Die einfachste Python-Einführungsklasse" geändert
Informationen zu Python Primer-Modulen und bedingten Ausdrücken
Einfache Python + OpenCV-Programmierung mit Canopy
Funktionsprogrammierung in Python Project Euler 2
Python-Dokumentation Lesen der Socket-Programmierung HOWTO
Erste Schritte mit Python3