[Python] Rückblickend auf das, was ich Programmieranfängern aus Funktionen beigebracht habe

Nicht beschränkt auf Python, wenn es darum geht, mit Programmen zu beginnen, nach der Erstellung der Umgebung, Hello World und vier Betriebsregeln.

  1. Bedingte Verzweigung durch if ... else
  2. Iterative Verarbeitung von für und während Nachdem
  3. Funktion Ich denke das kommt oft raus.

Aber ist es persönlich am besten, Anfänger in dieser Reihenfolge zu unterrichten, um "ein veränderungsresistentes Business-Programm zu erstellen"? Ich dachte immer.

Als ich von einem kleinen Team aus die Gelegenheit bekam, mit der Python-Programmierung zu beginnen, brachte ich ihnen "Funktionen" bei, die keine allgemeinen Lehrbuchverfahren sind. Dann habe ich zuerst versucht, die Idee, "else" nicht in der if-Anweisung zu verwenden, einzufügen.

Wir werden auf den Prozess der Antwort zurückblicken und zusammenfassen, was uns aufgefallen ist.

Das Folgende ist nur eine Beschreibung, die für diejenigen, die damit vertraut sind, offensichtlich ist, und es gibt keine neuen Techniken oder Themen. Außerdem werde ich zusammenfassen, was passiert ist, nachdem die Umgebungskonstruktion Hello World und die vier Berechnungsregeln abgeschlossen wurden.

Hintergrund

Eines der Mitglieder war ein Anfänger in der Programmierung, aber es gab auch ein Mitglied, das ein Programm für seine eigene Forschung mit "R" usw. schrieb.

Das ultimative Ziel des Teams war "Ich möchte am Ende ein Geschäftssystem schaffen können", daher erklärte ich zunächst, dass die folgenden drei Punkte als Startrichtlinie hervorgehoben werden sollten.

――Um Fehler zu reduzieren, wurde der Lehrplan mit dem Gedanken erstellt, dass die Reduzierung der Anzahl der Zweige oberste Priorität hat. ―― Unter der Annahme, dass Änderungen immer auftreten werden, überlegen Sie gemeinsam, welche Programme gegen Änderungen resistent sind. —— Denken Sie an die „Lesbarkeit“ von Programmen, die von anderen Mitgliedern erstellt wurden, und von Programmen, die Sie vor einigen Monaten erstellt haben.

Umgebung

Thema

Das Team wollte ein Programm für eine bestimmte Aufgabe verwenden, daher wurde das Thema für die Einführung entsprechend dem Aufgabenthema erstellt.

Anzahl der Personen Gebühr
weniger als 10 980
11~20 840
21 oder mehr 720

Das erste, was ich unterrichtete, war eine Funktion

Wir haben sie gebeten, darüber nachzudenken, was sie als Input benötigen, um den gewünschten Preis zu erhalten. Dann lehrte er, wie man eine "Funktion" mit dem Zielwert als "Rückgabewert" und der Eingabe als "Argument" schreibt.

fee_calculate.py


#Skelett
def fee_calculate(num): #Funktion zur Berechnung der Gebühr aus der Anzahl der Personen
    #do_something
    fee = 980 #Vorerst umziehen
    return(fee)

num = 5 #Stellen Sie die Anzahl der Personen ein
fee = fee_calculate(num) #Verwenden Sie eine Funktion, um den Preis zu ermitteln
print(fee) #"980", um das Ergebnis anzuzeigen

Es gibt nichts in der Funktion, aber ich habe eingeprägt, dass "ich mit der Funktion den gewünschten Wert erhalte".

Das nächste, was ich dir beigebracht habe, ist, nichts anderes zu benutzen

Als nächstes habe ich gelernt, wie man den Preis anhand der Anzahl der Personen ermittelt. Darüber hinaus führte er die Idee ein, dass "Sie in der Lage sein sollten, verschiedene Schreibweisen von if-Aussagen zu lesen, diese aber nicht selbst aktiv verwenden müssen".

fee_calculate.py


#Gebührenberechnung
def fee_calculate(num): #Funktion zur Berechnung der Gebühr aus der Anzahl der Personen
    if 1 <= num <= 10:
        fee = 980
        return(fee) #Kehre zurück, sobald das Ergebnis herauskommt

    if 11 <= num <= 19:
        fee = 840
        return(fee) #Kehre zurück, sobald das Ergebnis herauskommt

    if 20 <= num:
        fee = 720
        return(fee)

num = 5 #Stellen Sie die Anzahl der Personen ein
fee = fee_calculate(num) #Verwenden Sie eine Funktion, um den Preis zu ermitteln
print(fee) #"980", um das Ergebnis anzuzeigen

Wenn Sie eine Gebühr verlangen, kehren Sie einfach zurück. Wir haben mit den Mitgliedern über die Leichtigkeit des Schreibens, Lesens und Änderns im Vergleich zu Anti-Mustern gesprochen, die "else" und "elif" verwenden.

#Anti-Muster
def fee_calculate_a(num):
    if 1 <= num <= 10:
        fee = 980
    elif 11 <= num <= 19: #Versuchen Sie es mit elif
        fee = 840
    else: #Versuchen Sie es mit else
        fee = 720
    return(fee) #Ergebnis zurückgeben

num = 21 #Stellen Sie die Anzahl der Personen ein
fee = fee_calculate_a(num) #Verwenden Sie eine Funktion, um den Preis zu ermitteln
print(fee) #"720", um das Ergebnis anzuzeigen

Ich dachte, dass ich mit einem so kleinen Programm den Unterschied in der Leichtigkeit des Schreibens, Lesens und Änderns vielleicht nicht erkennen würde, aber Mitglieder mit Programmiererfahrung stimmten dieser Idee auf gute Weise zu. gab. Infolgedessen war es hilfreich, weil es ein Ort für die Teilnehmer wurde, um Meinungen auszutauschen und nachzudenken. Die Meinungen des Teams werden demokratisch entschieden, so dass die Anfänger anscheinend dachten: "Das ist es."

Bewusstsein von dem, was ich aus der Funktion gelehrt habe

Als ich die Idee lernte, "mithilfe einer Funktion den gewünschten Wert zu erzielen" und mich daran erinnerte, wie man eine Funktion aufruft, hatte ich das Gefühl, dass ich schon früh hätte beginnen können, die Bibliothek zu verwenden. Es gibt. (Verwenden Sie beispielsweise "Kalender", um die Anzahl der Tage in einem Monat zu ermitteln.)

Es ist wichtig, über den Algorithmus selbst nachzudenken und ihn zu erstellen, aber wie finden und verwenden Sie viele "praktische Bibliotheken" auf der Welt und wie kombinieren Sie sie? Ich denke, es ist wichtig, solche Dinge zu lernen, wenn Sie jetzt eine Programmiersprache lernen.

Was ist danach passiert?

Ich habe Python in Form von Lernsitzungen kennengelernt, die in mehrere Abschnitte unterteilt sind, aber ich denke, dass die Anfänger stetig wachsen. Mit anderen Worten, das Verhalten "Nachdenken über das, was Sie tun möchten und zuerst googeln, um die Bibliothek zu finden" ist geboren. Wenn Sie verstehen, wie man Funktionen verwendet, gibt es viele Bibliotheken, die Sie verwenden können, indem Sie "Import" lernen.

Denken Sie in der Lernsitzung beim Üben, ein Thema zu geben, darüber nach, wie es gelöst werden kann, und erstellen Sie ein Programm, "Test", "Fehlerbehandlung" und "Protokollausgabe", die für die Erstellung eines Geschäftssystems unverzichtbar sind Wir lernen gemeinsam, wie man denkt und wie man damit umgeht.

Python3 verfügt über eine umfangreiche Bibliothek mit "Test" -Tools, "Fehlerbehandlung" und "Protokollausgabe". Es ist jedoch wichtig, frühzeitig zu lernen und zu überlegen, wie es erstellt wird und wie es besser zu verwenden ist. Weil es wird.

Wann hast du die Wiederholung unterrichtet?

Zusammenfassend war jeder in der Lage, dies zu tun, ohne es ihnen klar zu sagen. Sobald Sie gelernt haben, wie man lernt, ist es schneller, selbst zu lernen als zu lehren.

Übrigens wird in dem zuvor erwähnten Gebührenberechnungsprogramm die Wiederholung verwendet, wenn Sie mehrere Bewerber gleichzeitig bearbeiten möchten.

Das Beispiel für die wiederholte Berechnung der Gebühr für die Liste der Anzahl der Antragsteller lautet wie folgt.

#Wiederholung
list = [5, 11, 21, 7, 15, 30] #Liste der Anzahl der Bewerber

def fee_calculate(num): #Funktion zur Berechnung der Gebühr aus der Anzahl der Personen
    if 1 <= num <= 10:
        fee = 980
        return(fee)

    if 11 <= num <= 19:
        fee = 840
        return(fee)

    if 20 <= num:
        fee = 720
        return(fee)

for num in list: #Extrahieren Sie den Inhalt der Liste nacheinander
    fee = fee_calculate(num) #Verwenden Sie eine Funktion, um den Preis zu ermitteln
    print(fee) #Ergebnisse anzeigen

Dinge, die passieren, wenn Sie zuerst Wiederholung lernen

Die Idee ist, zuerst die Schleife zu drehen, und später kann die Funktion nicht mehr ausgeschnitten werden. (Weil es nichts weiter als ein Aufwand ist, später in diesem Verfahren eine Funktion zu erstellen.) Ich persönlich denke, dass es für mich schwierig sein wird, meine Programmierkenntnisse zu verbessern, wenn ich nur diese Art von Methode mache, außer wenn ich ein Einwegprogramm mache.

#Anti-Muster
list = [5, 11, 21, 7, 15, 30] #Liste der Anzahl der Bewerber

for num in list: #Extrahieren Sie den Inhalt der Liste nacheinander
    if 0 <= num <= 10: #Beurteilen Sie die Anzahl der herausgenommenen Personen ...
        fee = 980
    elif 11 <= num <= 19:
        fee = 840
    else:
        fee = 720
    print(fee)

Wenn man die beiden Programme vergleicht, ist das kürzere das Anti-Pattern, aber das, das leichter zu lesen ist, ich hoffe, es gibt Ihnen die Möglichkeit, darüber nachzudenken.

Persönlich ist es einfach, "else" und "elif" zu schreiben, aber beim Lesen finde ich es unangenehm, die vorherige Bedingung zu sehen. Selbst auf Japanisch ist es einfacher zu verstehen, wenn Sie "Diesmal" sagen. Wenn Leute sagen: "In anderen Fällen wie diesen", wird es zu "Welcher?" Deshalb versuche ich, das unvermeidliche "else" und "elif" nicht zu verwenden.

Referenz

Branch Anti-Pattern

Recommended Posts

[Python] Rückblickend auf das, was ich Programmieranfängern aus Funktionen beigebracht habe
Ich schaute wieder auf die Python-Klasse zurück
Python-Anfänger süchtig nach Django
Was ich beim Update von Python 2.6 auf 2.7 gemacht habe
Python-Anfängerhandbuch (Funktionen)
Python, das ich Anfängern in der Programmierung empfehlen möchte
Rückblick auf ABC155
Ich habe versucht, regelmäßig E-Mails von sendgrid mit Heroku und Python zu senden
Ich dachte an einen Anfängerkurs über Python, der auf Blockchain-Spielen basiert
Ich habe versucht, das Python-Skript unter Windows 10 von 2.7.11 auf 3.6.0 zu ändern
Rückblick auf die iOS'Healthcare App '2019
Python #Funktion 1 für Super-Anfänger
Ich habe Python unter Windows ausgeführt
Was ich in Python gelernt habe
Was Anfänger über das Programmieren im Jahr 2016 denken
Hinweise zum Zugriff auf dashDB über Python
Rufen Sie C / C ++ von Python auf dem Mac auf
Aktualisieren Sie Mac Python von 2 auf 3
Ich überarbeitete "Ich habe versucht, Othello AI zu machen, als Programmieranfänger Python studierten"
Rückblick auf 2019 ~ Ein Jahr, seit ich angefangen habe, bei Qiita zu posten ~ + wo ich mit Python Pip zu tun hatte