Python3-Schleifenanweisungen

In diesem Kapitel wird die Verwendung von Python-Schleifenanweisungen vorgestellt.

Die Schleifenanweisungen in Python sind for und while.

Das Kontrollstrukturdiagramm der Python-Schleifenanweisungen ist wie folgt:

Schlüsselwörter und Methoden zur Schleifensteuerung

Schleifensteuerung
Schlüsselwort / Funktion Beschreibung Beispiel
for Iterative Schleife, wird verwendet, um Sequenzen oder iterierbare Objekte zu durchlaufen for i in list:
while Bedingte Schleife, wird weiter ausgeführt, solange die Bedingung True ist while x > 0:
break Beendet die aktuelle Schleife sofort break
continue Überspringt den restlichen Code dieser Schleife und fährt mit der nächsten Iteration fort continue
else (loop) Wird ausgeführt, wenn die Schleife normal endet (nicht durch break beendet) for i in range(3): ... else: ...
pass Platzhalteranweisung in einer Schleife (keine Operation) for i in range(5): pass
range() Generiert Ganzzahlenfolgen, wird oft mit for-Schleifen verwendet range(0, 5)
enumerate() Ruft den Index und den Wert gleichzeitig während der Iteration ab for i, v in enumerate(list):

while-Schleife

Die allgemeine Form der while-Anweisung in Python:

while 判断条件(condition):
    执行语句(statements)……

Das Ausführungsflussdiagramm ist wie folgt:

Ausführungs-GIF-Demonstration:

Beachten Sie außerdem den Doppelpunkt und die Einrückung. Darüber hinaus gibt es in Python keine do..while-Schleife.

Das folgende Beispiel verwendet while, um die Summe von 1 bis 100 zu berechnen:

Beispiel

#!/usr/bin/env python3 n = 100 sum = 0 counter = 1 while counter <= n: sum = sum + counter counter += 1 print("Die Summe von 1 bis %d ist: %d" % (n,sum))

Das Ausführungsergebnis ist wie folgt:

1 到 100 之和为: 5050

Endlosschleife

Wir können eine Endlosschleife implementieren, indem wir den bedingten Ausdruck so festlegen, dass er niemals falsch ist, wie im folgenden Beispiel:

Beispiel

#!/usr/bin/python3 var = 1 while var == 1 : # Der Ausdruck ist immer wahr num = int(input("Geben Sie eine Zahl ein:")) print ("Die eingegebene Zahl ist:", num) print ("Auf Wiedersehen!")

Nach Ausführung des obigen Skripts lautet das Ausgabeergebnis wie folgt:

输入一个数字  :5
你输入的数字是:  5
输入一个数字  :

Sie können CTRL+Cverwenden, um die aktuelle Endlosschleife zu verlassen.

Endlosschleifen sind sehr nützlich für Echtzeitanfragen von Clients auf Servern.

while-Schleife mit else-Anweisung

Wenn die Bedingungsanweisung nach while false ist, wird der else-Anweisungsblock ausgeführt.

Das Syntaxformat lautet wie folgt:

while <expr>:
    <statement(s)>
else:
    <additional_statement(s)>

Wenn die expr-Bedingung true ist, wird der Anweisungsblock ausgeführt; wenn sie false ist, wird additional_statement(s) ausgeführt.

Schleife zur Ausgabe von Zahlen und zum Vergleich ihrer Größen:

Beispiel

#!/usr/bin/python3 count = 0 while count < 5: print (count, "kleiner als 5") count = count + 1 else: print (count, "größer als oder gleich 5")

Nach Ausführung des obigen Skripts lautet das Ausgabeergebnis wie folgt:

0  小于 5
1  小于 5
2  小于 5
3  小于 5
4  小于 5
5  大于或等于 5

Gruppe einfacher Anweisungen

Ähnlich wie bei der Syntax der if-Anweisung können Sie, wenn der Rumpf Ihrer while-Schleife nur eine Anweisung enthält, diese Anweisung in dieselbe Zeile wie das while schreiben, wie unten gezeigt:

Beispiel

#!/usr/bin/python flag = 1 while (flag): print ('Willkommen bei Example Tutorial!') print ("Auf Wiedersehen!")

Hinweis:Sie können CTRL+C verwenden, um die obige Endlosschleife zu unterbrechen.

Nach Ausführung des obigen Skripts lautet das Ausgabeergebnis wie folgt:

Welcome to Example Tutorial!
Welcome to Example Tutorial!
Welcome to Example Tutorial!
Welcome to Example Tutorial!
Welcome to Example Tutorial!
……

for-Anweisung

Die Python-for-Schleife kann über jedes iterierbare Objekt iterieren, wie eine Liste oder eine Zeichenkette.

Das allgemeine Format der for-Schleife ist wie folgt:

for <Variable> in <Sequenz>: <Anweisungen> else: <Anweisungen>

Flussdiagramm:

Beispiel für eine Python-for-Schleife:

Beispiel

#!/usr/bin/python3 sites = ["Baidu", "Google","Example","Taobao"] for site in sites: print(site)

Das Ausgabeergebnis der obigen Codeausführung ist:

Baidu
Google
Example
Taobao

Es kann auch verwendet werden, um jedes Zeichen in einer Zeichenkette auszugeben:

Beispiel

#!/usr/bin/python3 word = 'example' for letter in word: print(letter)

Das Ausgabeergebnis der obigen Codeausführung ist:

r
u
n
o
o
b

Ganzzahlige Bereichswerte können zusammen mit der Funktion range() verwendet werden:

Beispiel

#!/usr/bin/python3 # Alle Zahlen von 1 bis 5: for number in range(1, 6): print(number)

Das Ausgabeergebnis der obigen Codeausführung ist:

1
2
3
4
5

for...else

In Python wird die for...else-Anweisung verwendet, um einen Codeblock auszuführen, nachdem die Schleife endet.

Das Syntaxformat lautet wie folgt:

for item in iterable:
    # 循环主体
else:
    # 循环结束后执行的代码

Wenn die Schleife ihre Ausführung beendet (das heißt, nachdem alle Elemente im Iterable durchlaufen wurden), wird der Code im else-Zweig ausgeführt. Wenn während der Schleife eine break-Anweisung auftritt, wird die Schleife unterbrochen, und der else-Zweig wird an dieser Stelle nicht ausgeführt.

Beispiel

for x in range(6):
  print(x)
else:
  print("Endlich fertig!")

Nach der Ausführung des Skripts ist das Ausgabeergebnis:

0
1
2
3
4
5
Finally finished!

Das folgende for-Beispiel verwendet die break-Anweisung. Die break-Anweisung wird verwendet, um aus dem aktuellen Schleifenkörper zu springen, und der else-Zweig wird nicht ausgeführt:

Beispiel

#!/usr/bin/python3 sites = ["Baidu", "Google","Example","Taobao"] for site in sites: if site == "Example": print("Beispiel-Tutorial!") break print("Schleifendaten" + site) else: print("Keine Schleifendaten!") print("Schleife abgeschlossen!")

Nach dem Ausführen des Skripts, wenn die Schleife "Example" erreicht, bricht sie aus dem Schleifenkörper aus:

循环数据 Baidu
循环数据 Google
Example!
完成循环!

range()-Funktion

Wenn Sie über eine Folge von Zahlen iterieren müssen, können Sie die integrierte Funktion range() verwenden. Sie erzeugt eine Folge von Zahlen, zum Beispiel:

Beispiel

>>>for i in range(5): ... print(i) ... 0 1 2 3 4

Sie können range() auch verwenden, um Werte in einem Intervall anzugeben:

Beispiel

>>>for i in range(5,9) : print(i) 5 6 7 8 >>>

Sie können range() auch bei einer angegebenen Zahl beginnen lassen und eine andere Schrittweite angeben (die sogar negativ sein kann, manchmal auch 'step' genannt):

Beispiel

>>>for i in range(0, 10, 3) : print(i) 0 3 6 9 >>>

Negative Zahlen:

Beispiel

>>>for i in range(-10, -100, -30) : print(i) -10 -40 -70 >>>

Sie können die Funktionen range() und len() kombinieren, um über die Indizes einer Sequenz zu iterieren, wie unten gezeigt:

Beispiel

>>>a = ['Google', 'Baidu', 'Example', 'Taobao', 'QQ'] >>> for i in range(len(a)): ... print(i, a[i]) ... 0 Google 1 Baidu 2 Example 3 Taobao 4 QQ >>>

Sie können die Funktion range() auch verwenden, um eine Liste zu erstellen:

Beispiel

>>>list(range(5)) [0, 1, 2, 3, 4] >>>

Weitere Informationen zur Verwendung der Funktion range() finden Sie unter:https://www.example.com/python3/python3-func-range.html


break- und continue-Anweisungen und else-Klauseln in Schleifen

Ablaufdiagramm für break:

Ablaufdiagramm für continue:

Codeausführungsprozess der while-Anweisung:

Codeausführungsprozess der for-Anweisung:

breakDie break-Anweisung kann aus den Körpern der for- und while-Schleifen herausspringen. Wenn Sie eine for- oder while-Schleife beenden, wird der zugehörige else-Block der Schleife nicht ausgeführt.

continueDie continue-Anweisung wird verwendet, um Python anzuweisen, die verbleibenden Anweisungen im aktuellen Schleifenblock zu überspringen und dann mit der nächsten Runde der Schleife fortzufahren.

Beispiel

break in while verwenden:

Beispiel

n = 5
while n > 0:
    n -= 1
    if n == 2:
        break
    print(n)
print('Loop ended.')

Das Ausgabeergebnis ist:

4
3
循环结束。

continue in while verwenden:

Beispiel

n = 5
while n > 0:
    n -= 1
    if n == 2:
        continue
    print(n)
print('Loop ended.')

Das Ausgabeergebnis ist:

4
3
1
0
循环结束。

Weitere Beispiele sind wie folgt:

Beispiel

#!/usr/bin/python3 for letter in 'Example': # Erstes Beispiel if letter == 'b': break print ('Der aktuelle Buchstabe ist:', letter) var = 10 # Zweites Beispiel while var > 0: print ('Der aktuelle Variablenwert ist:', var) var = var -1 if var == 5: break print ("Good bye!")

Das Ausgabeergebnis des obigen Skripts ist:

当前字母为 : R
当前字母为 : u
当前字母为 : n
当前字母为 : o
当前字母为 : o
当前变量值为 : 10
当前变量值为 : 9
当前变量值为 : 8
当前变量值为 : 7
当前变量值为 : 6
Good bye!

Das folgende Beispiel durchläuft die Zeichenkette Example und überspringt die Ausgabe, wenn der Buchstabe o vorkommt:

Beispiel

#!/usr/bin/python3 for letter in 'Example': # Erstes Beispiel if letter == 'o': # Ausgabe überspringen, wenn der Buchstabe o ist continue print ('Aktueller Buchstabe:', letter) var = 10 # Zweites Beispiel while var > 0: var = var -1 if var == 5: # Ausgabe überspringen, wenn die Variable 5 ist continue print ('Aktueller Variablenwert:', var) print ("Auf Wiedersehen!")

Das Ausgabeergebnis des obigen Skripts ist:

当前字母 : R
当前字母 : u
当前字母 : n
当前字母 : b
当前变量值 : 9
当前变量值 : 8
当前变量值 : 7
当前变量值 : 6
当前变量值 : 4
当前变量值 : 3
当前变量值 : 2
当前变量值 : 1
当前变量值 : 0
Good bye!

Schleifenanweisungen können eine else-Klausel haben; sie wird ausgeführt, wenn die Schleife durch Erschöpfen der Liste endet (bei einer for-Schleife) oder wenn die Bedingung falsch wird (bei einer while-Schleife), aber sie wird nicht ausgeführt, wenn die Schleife durch break beendet wird.

Das folgende Beispiel ist ein Schleifenbeispiel zum Finden von Primzahlen:

Beispiel

#!/usr/bin/python3 for n in range(2, 10): for x in range(2, n): if n % x == 0: print(n, 'gleich', x, '*', n//x) break else: # Kein Element in der Schleife gefunden print(n, 'ist eine Primzahl')

Die Ausgabe der Ausführung des obigen Skripts ist:

2  是质数
3  是质数
4 等于 2 * 2
5  是质数
6 等于 2 * 3
7  是质数
8 等于 2 * 4
9 等于 3 * 3

pass-Anweisung

Python pass ist eine Null-Anweisung, die verwendet wird, um die Integrität der Programmstruktur zu wahren.

pass bewirkt nichts; es wird allgemein als Platzhalteranweisung verwendet, wie im folgenden Beispiel

Beispiel

>>>while True: ... pass # Warten auf Tastaturunterbrechung (Ctrl+C)

Die kleinste Klasse:

Beispiel

>>>class MyEmptyClass: ... pass

Das folgende Beispiel führt den pass-Anweisungsblock aus, wenn der Buchstabe o ist:

Beispiel

#!/usr/bin/python3 for letter in 'Example': if letter == 'o': pass print ('pass-Block ausführen') print ('Aktueller Buchstabe:', letter) print ("Auf Wiedersehen!")

Die Ausgabe der Ausführung des obigen Skripts ist:

当前字母 : R
当前字母 : u
当前字母 : n
执行 pass 块
当前字母 : o
执行 pass 块
当前字母 : o
当前字母 : b
Good bye!
Weitere Erweiterungen