Declaración de control de flujo del programa Python: bucle for


en bucle

Python usa un ciclo for para atravesar cualquier objeto iterable , obtener los elementos en el objeto iterable a su vez y detener el ciclo después de obtener el último elemento.

Estructura básica del bucle for

La sintaxis del bucle for es la siguiente:

for variable in sequence:
    statements
else:
    statements

La parte else puede omitirse. La secuencia es un objeto iterable. El bucle for obtiene secuencialmente y asigna los elementos de la secuencia a la variable variable. Cada vez que se realiza el bucle, la variable se asigna una vez, hasta que se obtiene el último elemento de la secuencia y el bucle finaliza. . El diagrama de flujo se muestra en la figura:
inserte la descripción de la imagen aquí

Un ejemplo es el siguiente:

>>> s = [1,2,3,4,5]
>>> for item in s: # 依次将列表中的元素赋值给item,取完最后一个元素5,循环停止
...		print(item)
1
2
3
4
5

Después de que se ejecuta el bucle for, se ejecuta el bloque de sentencias bajo esle; si el bucle for sale a la mitad, el bloque de sentencias bajo else no se ejecuta. El ejemplo es el siguiente:

>>> s = [1, 2, 3, 4, 5]
>>> for item in s:
...    print(item)
>>> else: # for循环正常运行完后会执行else下的语句块
...    print('for循环执行完毕')
1
2
3
4
5
for循环执行完毕   
>>> s = [1, 2, 3, 4, 5]
>>> for item in s:
...    if item < 3:
...        print(item)
...    else:
...        break
>>> else: # for循环被break语句断开,没有运行完,不执行else下的语句块
...    print('for循环执行完毕')
1
2

función rango()

La función range() puede generar una secuencia con la siguiente sintaxis:

range(start, stop[, step])

parámetro:

  • inicio: valor inicial. El valor predeterminado es 0, que se puede omitir;
  • detener: el valor final, excluyendo el valor final;
  • paso: el tamaño del paso, el valor predeterminado es 1.

Valor de retorno: objeto de rango

El valor de retorno de la función range() es una secuencia de números. El valor inicial se puede obtener, pero el valor final no se puede obtener. Es un intervalo que está cerrado a la izquierda y abierto a la derecha. Esta secuencia es un objeto iterable, que se puede recorrer usando un bucle for.Se puede convertir en una lista usando la función list(), como ejemplo:

>>> print(range(1, 5)) # 生成开始值是1,结束值是4,步长为1的数列,左闭右开的区间
range(1, 5) # range对象
>>> for i in range(1, 5): # 使用for循环遍历range对象的值
...		print(i)
1
2
3
4

# 使用list()函数将range对象转换成列表输出
>>> s = list(range(5)) # range(5)等同于range(0, 5),开始值默认为0,步长默认为1
>>> print(s)
[0, 1, 2, 3, 4]

Alcance común del bucle for

El ciclo for puede recorrer objetos iterables. Se pueden usar múltiples variables para iterar objetos de secuencia en el ciclo for. Por ejemplo, la tupla devuelta por el método dict.items() puede usar dos variables para recibir los elementos en la tupla, An ejemplo es el siguiente:

>>> d1 = {
    
    'name':'lilei', 'age':20, 'grade':'three'}
>>> for k, v in d1.items(): # 使用变量k, v接收元组中的元素
... 	print(k, v)
	
name lilei
age 20
grade three
>>> for (a, b) in [(1,2),(3,4),(5,6),(7,8)]:
... 	print(a, b)

1 2
3 4
5 6
7 8

Anidamiento de bucles for

Los bucles for se pueden anidar, es decir, los bucles for se pueden utilizar dentro de bucles for, y se admiten dos o más capas. Los ejemplos son los siguientes:

Ejemplo: Imprimir la tabla de multiplicar nueve por nueve

>>> for i in range(1, 10): 
...    for j in range(1, i + 1):
...        print('%s * %s = %s' % (i, j, i * j), end=' ')
...    print()

1 * 1 = 1 
2 * 1 = 2 2 * 2 = 4 
3 * 1 = 3 3 * 2 = 6 3 * 3 = 9 
4 * 1 = 4 4 * 2 = 8 4 * 3 = 12 4 * 4 = 16 
5 * 1 = 5 5 * 2 = 10 5 * 3 = 15 5 * 4 = 20 5 * 5 = 25 
6 * 1 = 6 6 * 2 = 12 6 * 3 = 18 6 * 4 = 24 6 * 5 = 30 6 * 6 = 36 
7 * 1 = 7 7 * 2 = 14 7 * 3 = 21 7 * 4 = 28 7 * 5 = 35 7 * 6 = 42 7 * 7 = 49 
8 * 1 = 8 8 * 2 = 16 8 * 3 = 24 8 * 4 = 32 8 * 5 = 40 8 * 6 = 48 8 * 7 = 56 8 * 8 = 64 
9 * 1 = 9 9 * 2 = 18 9 * 3 = 27 9 * 4 = 36 9 * 5 = 45 9 * 6 = 54 9 * 7 = 63 9 * 8 = 72 9 * 9 = 81

La variable i en el bucle for exterior se asigna como: 1, 2, 3, 4, 5, 6, 7, 8, 9 respectivamente. Cuando i=1, al bucle for interno j se le puede asignar el valor: 1. En este punto i=1, j=1, y luego imprima '1 * 1 = 1', la función de impresión no se ajusta y se ejecuta el ciclo interno; ejecute print() para ajustar. El bucle exterior entra en la siguiente capa. Cuando i=2, el bucle interior j se puede asignar como: 1, 2. Cuando el ciclo interno se repite por primera vez: i=2, j=1, imprime '2 * 1 = 2', la función de impresión no se ajusta y el ciclo interno realiza el segundo ciclo: i=2, j=2 , imprime ' 2 * 2 = 4', el ciclo interno termina y se ejecuta print() para ajustar la línea. La capa exterior pasa a la siguiente capa, i = 3...

Por analogía, la capa externa circula una capa, la capa interna circula una vez, y después de que finaliza el ciclo de la capa interna, el ciclo de la capa externa puede ingresar a la siguiente capa.

Los bucles for y las declaraciones condicionales if también se pueden anidar, los ejemplos son los siguientes:

Calcular la suma de números entre 1 y 100 que son divisibles por 3

>>> s = 0
>>> for i in range(1, 101):
...		if i % 3 == 0: # 满足if条件的执行求和
...			s += i
>>> print(s)
1683

Supongo que te gusta

Origin blog.csdn.net/shield911/article/details/124183534
Recomendado
Clasificación