[Python of Hikari-] Kapitel 05-08 Steuerungssyntax (während Anweisung - eine weitere iterative Syntax-)

[Python] Kapitel 05-08 while-Anweisung - eine weitere iterative Syntax-

Schauen Sie sich zunächst das folgende Programm an (Sie müssen kein Programm schreiben).

for i in range(10):
    print(i, end=' ')

print('Verarbeitung beenden')

Es verwendet eine for-Anweisung, um Werte von 0 bis 9 auszugeben. Bisher wurde es als ** für Anweisung ** beschrieben, aber dieses Mal wollen wir das obige Programm mit ** while-Anweisung ** ausdrücken.

Wie schreibe ich while-Anweisung

Im Allgemeinen wird die while-Anweisung wie folgt geschrieben.

während bedingter Ausdruck:
Inhalt der Verarbeitung

Die Bedingungen sind wie ** i <10 ** und ** i == 0 **, die ich in der if-Anweisung geschrieben habe. Lassen Sie uns das obige für das Anweisungsprogramm mit der while-Anweisung ausdrücken. Erstellen Sie eine Datei mit dem Dateinamen 05-08-01.py </ font> in chap05 </ font> und verwenden Sie den folgenden Code Bitte schreibe.

05-08-01.py


i = 0  ##Initialisieren Sie den Wert von i mit 0

while i < 10:  ##Prozess, wenn ich kleiner als 10 ist
    print(i, end=' ')
    i+=1  ##Addiere 1 zu i

print('Verarbeitung beenden')


05-08-01.py Ausführungsergebnis

[Ausführungsergebnis] </ font> 0 1 2 3 4 5 6 7 8 9 Fertige Bearbeitung

Es sieht so aus, als ob das Programm etwas länger ist als die for-Anweisung. Folgen wir dem Prozess.

Initialisieren Sie im Fall von ** while-Anweisung ** bei der iterativen Verarbeitung zunächst mit ** i = 0 **. Mit anderen Worten, wir müssen entscheiden, was mit dem ersten Wert geschehen soll. In der ** for-Anweisung ** ist der 0-Teil des Bereichs (0, 10) der Start, daher wird die 0 des Starts festgelegt. Im Fall einer while-Anweisung können Sie auch die Anzahl der Wiederholungen ** ermitteln, indem Sie ** i = 0 ** setzen.

Als nächstes gehen wir auf den Inhalt der while-Anweisung ein.

** [1. Schleife] </ font> ** Mit ** während i <10: ** wird der Vorgang wiederholt, wenn der bedingte Ausdruck ** True ** ist. Da nun ** i = 0 ** ist, wird der bedingte Ausdruck ** 0 <10 ** und ** True **, sodass die Verarbeitung der while-Anweisung beginnt.

Dann wird der Wert von ** i ** (** i = 0 **) ausgegeben und dann ** i + = 1 **. Wenn dies ** i + = 1 ** nicht durchgeführt wird, ist die Bedingungsbeurteilung bei ** [2. Schleife] </ font> ** dieselbe ** 0 < Es wird 10 ** und es wird eine Endlosschleife, und Sie können die while-Anweisung nicht für immer verlassen. Vergessen Sie also nicht, i um 1 mit ** i + = 1 ** zu addieren. (Zu diesem Zeitpunkt ist ** i = 1 **.)

** [2. Schleife] </ font> ** Da nun ** i = 1 ** ist, wird der bedingte Ausdruck ** 1 <10 ** und ** True **, sodass die Verarbeitung der while-Anweisung beginnt.

Dann wird der Wert von ** i ** (** i = 1 **) ausgegeben und ** i + = 1 **. (Zu diesem Zeitpunkt ist ** i = 2 **.)

<font color = # 0cc> <Wiederholen Sie die while-Anweisung, während die Bedingung i <10 ist. > </ font>

** [10. Schleife] </ font> ** Da nun ** i = 9 ** ist, wird der bedingte Ausdruck ** 9 <10 ** und ** True **, sodass die Verarbeitung der while-Anweisung beginnt.

Dann wird der Wert von ** i ** (** i = 9 **) ausgegeben und ** i + = 1 ** gesetzt. (Zu diesem Zeitpunkt ist ** i = 10 **.)

** [11. Schleife] </ font> ** Da nun ** i = 10 ** ist, wird der bedingte Ausdruck ** 10 <10 **, ** False ** und verlässt die while-Anweisung.

Dann wird ** print ('Ende der Verarbeitung') ** ausgegeben, das außerhalb der while-Anweisung liegt.

Dies ist im folgenden Flussdiagramm dargestellt.

image.png

Berechnen Sie die Summe mit der while-Anweisung

Wie in der for-Anweisung erwähnt, haben wir beispielsweise wie folgt berechnet, um die Summe der geraden Zahlen für ganze Zahlen zwischen 1 und 100 zu ermitteln. (Keine Notwendigkeit, ein Programm zu schreiben)

sum = 0
for i in range(1, 101):
    if i % 2 == 0:
        sum += i

print(f'Gesamt:{sum}')


Ausführungsergebnis

Gesamt: 2550

Ich denke nicht, dass es notwendig ist, insbesondere zu erklären, aber es wird beurteilt, ob es überhaupt Teil der if-Anweisung ist, und wenn ** i ** gerade ist, wird es hinzugefügt.

Lassen Sie uns dies mit ** while-Anweisung ** anstelle von for-Anweisung ausdrücken. Erstellen Sie eine Datei mit dem Dateinamen 05-08-02.py </ font> in chap05 </ font> und verwenden Sie den folgenden Code Bitte schreibe.

05-08-02.py


sum = 0
i = 1

while i <= 100:
    if i % 2 == 0:
        sum += i  ##Berechnen Sie hier die Summe
    
    i += 1 ##Erhöhen Sie den Wert von i um 1
print(f'Gesamt:{sum}')

Um die Summe zu finden, ist das Initialisieren des Werts von ** sum ** dasselbe wie in der for-Anweisung. Wenn die Summe nicht auf 0 gesetzt ist, wird sie nicht korrekt berechnet.

Dann wird ** i ** durch ** 1 ** ersetzt, und die Bedingung der while-Anweisung wird beurteilt. Während ** i ** 100 oder weniger ist, wird die Bedingung der while-Anweisung ** True ** und der Vorgang wird wiederholt, sodass die Addition während dieser Zeit durchgeführt wird.

** [1. Schleife] </ font> ** Da ** i = 1 ** ist, ist die Bedingung der if-Anweisung ** False **, der Additionsprozess zur Summe wird nicht ausgeführt und der Prozess in der if-Anweisung wird übersprungen. Und vergessen Sie nicht, 1 zu ** i ** hinzuzufügen. Wenn Sie dies nicht tun, erhalten Sie, wie oben erwähnt, eine Endlosschleife. (Zu diesem Zeitpunkt ** Summe = 0, i = 2 **)

** [2. Schleife] </ font> ** Da ** i = 2 ** ist, ist die Bedingung der if-Anweisung ** True **, und der Additionsprozess zur Summe wird in der if-Anweisung ausgeführt. Addiere dann 1 zu i, um i = 3 zu erhalten. (Zu diesem Zeitpunkt ** Summe = 2, i = 3 **)

** [3. Schleife] </ font> ** Da ** i = 3 ** ist, ist die Bedingung der if-Anweisung ** False **, der Additionsprozess zur Summe wird nicht ausgeführt und der Prozess in der if-Anweisung wird übersprungen. Addiere dann 1 zu i, um i = 4 zu erhalten. (Zu diesem Zeitpunkt ** Summe = 2, i = 4 **)

<font color = # 0cc> <Wiederholen Sie die while-Anweisung, während die Bedingung i <= 100 ist. > </ font>

** [100. Schleife] </ font> ** Da ** i = 100 ** ist, ist die Bedingung der if-Anweisung ** True **, und der Additionsprozess zur Summe wird in der if-Anweisung ausgeführt. Addiere dann 1 zu i, um i = 101 zu erhalten. (Zu diesem Zeitpunkt ** Summe = 2550, i = 101 **)

** [101. Schleife] </ font> ** Dann ist die Bedingung der while-Anweisung ** 101 <= 100 ** und ** False **, sodass die while-Anweisung beendet wird.

Und schließlich gibt die Druckfunktion den Summenwert aus.

Übungsproblem

Wir haben Übungen vorbereitet. Bitte versuchen Sie es zu lösen. Verwenden Sie außerdem den in [] angegebenen Dateinamen und erstellen Sie ihn in chap05 </ font>. Sie können einen beliebigen Variablennamen angeben. [05-08-p1.py] [1] Erstellen Sie mit der while-Anweisung ein Programm, das die Summe der ungeraden Zahlen von Ganzzahlen von 1 bis 100 berechnet. Das Ergebnis ist 2500.

[05-08-p2.py] [2] Erstellen Sie ein Programm, das den Durchschnitt der Elemente in der Liste ** ls = [3, 5, 4, 10, 7, 8] ** mit der while-Anweisung berechnet. Das Ergebnis ist 6.166666666666667. (Hinweis: ** ls [0] ** kann Elemente wie ** 3 ** abrufen, ** ls [1] ** kann Elemente wie ** 5 ** abrufen, dh ** ls [i] * Sie können das Element als * abrufen. Sie können die Länge der Liste auch mit ** len (ls) ** abrufen, damit Sie den Vorgang zwischen diesen Längen wiederholen können.) [05-08-p3.py] Erstellen Sie das Programm von [3] und [2] mit ** für Anweisung **.

Schließlich

Ich habe die while-Anweisung erwähnt, aber das Programm ist etwas länger als die for-Anweisung. Was sie jedoch tun, ist dasselbe, daher denke ich, dass es leicht zu verstehen war. Das nächste Mal möchte ich kurz die Techniken erläutern, die häufig in while-Anweisungen verwendet werden.

Zurück zum [Inhaltsverzeichnis Link]

Recommended Posts