Instruction de boucle Python3


Ce chapitre vous présentera l'utilisation des instructions de boucle Python.

Les instructions de boucle en Python incluent for et while.

Le diagramme de structure de contrôle de l'instruction de boucle Python est le suivant :

1028.png


boucle while

La forme générale de l'instruction while en Python :

while 判断条件:
    语句

Il faut également faire attention aux deux points et à l'indentation. De plus, il n’y a pas de boucle do..while en Python.

L'exemple suivant utilise while pour calculer la somme de 1 à 100 :

#!/usr/bin/env python3

n = 100

sum = 0
counter = 1
while counter <= n:
    sum = sum + counter
    counter += 1

print("1 到 %d 之和为: %d" % (n,sum))

Le résultat de l'exécution est le suivant :

1 到 100 之和为: 5050

Boucle infinie

Nous peut définir des conditions L'expression n'est jamais fausse pour obtenir une boucle infinie. L'exemple est le suivant :

#!/usr/bin/python3

var = 1
while var == 1 :  # 表达式永远为 true
   num = int(input("输入一个数字  :"))
   print ("你输入的数字是: ", num)

print ("Good bye!")

Exécutez le script ci-dessus et le résultat de sortie est le suivant :

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

Vous pouvez utiliser CTRL+C pour quitter la boucle infinie actuelle.

Les boucles infinies sont très utiles pour les requêtes en temps réel des clients sur le serveur.

la boucle while utilise l'instruction else

dans while...else pour exécuter le bloc d'instruction else lorsque l'instruction conditionnelle est fausse :

#!/usr/bin/python3

count = 0
while count < 5:
   print (count, " 小于 5")
   count = count + 1
else:
   print (count, " 大于或等于 5")

Exécutez le script ci-dessus, le Le résultat de sortie est le suivant :

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

Groupe d'instructions simples

Similaire à la syntaxe de l'instruction if, s'il n'y a qu'une seule instruction dans le corps de votre boucle while, vous pouvez écrire l'instruction et while dans la même ligne, comme suit :

#!/usr/bin/python

flag = 1

while (flag): print ('欢迎访问php中文网!')

print ("Good bye!")

Remarque : Vous pouvez utiliser CTRL+C pour interrompre la boucle infinie ci-dessus.

Exécutez le script ci-dessus et le résultat de sortie est le suivant :



instruction for

La boucle Python for peut parcourir n'importe quelle séquence d'éléments, comme un liste ou une chaîne.

Le format général d'une boucle for est le suivant :

for <variable> in <sequence>:
    <statements>
else:
    <statements>

Exemple de boucle Python :

>>> languages = ["C", "C++", "Perl", "Python"] 
>>> for x in languages:
...     print (x)
... 
C
C++
Perl
Python
>>>

L'instruction break est utilisée dans ce qui suit pour les exemples, et l'instruction break L'instruction est utilisée pour sortir du corps de la boucle actuelle :

#!/usr/bin/python3

sites = ["Baidu", "Google","php","Taobao"]
for site in sites:
    if site == "php":
        print("php中文网!")
        break
    print("循环数据 " + site)
else:
    print("没有循环数据!")
print("完成循环!")

Après l'exécution du script, le corps de la boucle sautera lors de la boucle vers "php" :

循环数据 Baidu
循环数据 Google
php中文网!
完成循环!

range() function

Si vous devez parcourir une séquence de nombres, vous pouvez utiliser la fonction range() intégrée. Il générera une séquence, par exemple :

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

Vous pouvez également utiliser range pour spécifier la valeur de l'intervalle :

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

    
5
6
7
8
>>>

Vous pouvez également faire commencer la plage par un nombre spécifié et spécifier un incrément différent (même un nombre négatif, parfois également appelé « taille de pas ») :

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

    
0
3
6
9
>>>

Nombres négatifs :

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

    
-10
-40
-70
>>>

Vous pouvez combiner les fonctions range() et len() pour itérer sur les indices d'une séquence, comme suit :

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

Vous pouvez également utiliser la fonction range() pour créer une liste :

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

les instructions break et continue et la clause else dans la boucle. L'instruction

break peut sortir du for et du corps de la boucle while. Si vous terminez une boucle for ou while, les blocs else de la boucle correspondante ne s'exécuteront pas. Un exemple est le suivant :

#!/usr/bin/python3

for letter in 'php':     # 第一个实例
   if letter == 'b':
      break
   print ('当前字母为 :', letter)
  
var = 10                    # 第二个实例
while var > 0:              
   print ('当期变量值为 :', var)
   var = var -1
   if var == 5:
      break

print ("Good bye!")

Le résultat de l'exécution du script ci-dessus est :

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

L'instruction continue est utilisée pour indiquer à Python d'ignorer les instructions restantes dans le bloc de boucle actuel, puis continuez avec le prochain tour de boucles.

#!/usr/bin/python3

for letter in 'php':     # 第一个实例
   if letter == 'o':        # 字母为 o 时跳过输出
      continue
   print ('当前字母 :', letter)

var = 10                    # 第二个实例
while var > 0:              
   var = var -1
   if var == 5:             # 变量为 5 时跳过输出
      continue
   print ('当前变量值 :', var)
print ("Good bye!")

Le résultat de l'exécution du script ci-dessus est :

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

L'instruction de boucle peut avoir une clause else, qui provoque une boucle lors de l'épuisement de la liste (dans une boucle for) ou lorsque le la condition devient fausse (dans une boucle while) Elle est exécutée à la fin, mais pas exécutée lorsque la boucle se termine par break.

L'exemple suivant est un exemple de boucle pour interroger des nombres premiers :

#!/usr/bin/python3

for n in range(2, 10):
    for x in range(2, n):
        if n % x == 0:
            print(n, '等于', x, '*', n//x)
            break
    else:
        # 循环中没有找到元素
        print(n, ' 是质数')

Le résultat de l'exécution du script ci-dessus est :

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

instruction pass

Le pass Python est une instruction vide, afin de maintenir l'intégrité de la structure du programme.

pass ne fait rien et est généralement utilisé comme instruction d'espace réservé. L'exemple suivant

>>> while True:
...     pass  # 等待键盘中断 (Ctrl+C)

La plus petite classe :

>>> class MyEmptyClass:
...     pass

L'exemple suivant exécute le bloc d'instruction pass lorsque la lettre est o :

#!/usr/bin/python3

for letter in 'php': 
   if letter == 'o':
      pass
      print ('执行 pass 块')
   print ('当前字母 :', letter)

print ("Good bye!")

Le résultat de l'exécution du script ci-dessus est :

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