Declaración de control de flujo del programa de Python: ciclo while


mientras bucle

Python usa bucles while para procesar bucles que cumplen ciertas condiciones.Los bucles while generalmente no se usan para tratar con objetos iterables, mientras que las declaraciones de bucle pueden lograr bucles infinitos.

Estructura básica del ciclo while

El bucle while se suele utilizar para procesar bucles que cumplen determinadas condiciones. La sintaxis es la siguiente:

while condition:
    statements
    ……
else:
	statements

La condición se juzga una vez en cada ciclo. Cuando el valor de retorno de la condición es Verdadero, ingresa al ciclo while para ejecutar las declaraciones. Cuando el valor de retorno de la condición es Falso, las declaraciones bajo el tiempo no se ejecutan y el se ejecutan las sentencias bajo el else, donde se puede omitir el else. Si el valor de retorno de condition es siempre True, el bucle while se convierte en un bucle infinito, también llamado "bucle infinito". El diagrama de flujo de la ejecución del ciclo while se muestra en la figura:

inserte la descripción de la imagen aquí

Un ejemplo es el siguiente:

Ejemplo: Contar el número de números impares entre 1 y 100

i = 1 # 开始值
count = 0 # 统计频数
while i <= 100: # 结束条件
	if i % 2 != 0: # 如果满足不能被2整除的条件
		count += 1 # count加1
		i += 1 # 增减量,如果没有增减量则i=1一直成立,成为死循环
	print('1~100之间有{}个奇数'.format(count))

1~100之间有50个奇数

Nota: Los tres elementos del ciclo while: el valor inicial, la condición final y el aumento o disminución. Si no hay aumento o disminución, el valor inicial no cambiará, la condición final siempre devolverá True y el while se convertirá en un ciclo infinito.

Uso anidado de bucles while

Python permite el uso de bucles while dentro de bucles while. Por ejemplo, para imprimir la tabla de multiplicar nueve por nueve, el ejemplo es el siguiente:

a = 1  # 外层循环的开始值
while a < 10:  # 外层循环的结束条件
    b = 1  # 内层循环的开始值
    while b <= a:  # 内层循环的结束条件
        print('%d*%d=%2d' % (a, b, a * b), end=' ')  # 打印,打印完后不换行
        b += 1  # 内层循环的增减量
    print()  # 内层结束后进行换行
    a += 1  # 外层循环的增减量

La salida después de ejecutar es la siguiente:

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 

Tanto los bucles for como los bucles while pueden implementar funciones de bucle, pero los bucles for se utilizan a menudo para bucles de objetos iterables, es decir, cuando se conoce el final. Mientras que los bucles se utilizan a menudo cuando se desconoce el final. Ambos tipos de bucles se pueden anidar, pero debe tenerse en cuenta que la eficiencia de los bucles anidados no es muy alta. Los bucles anidados en realidad realizan operaciones de productos cartesianos. Si el número de bucles es grande, el tiempo de espera será mayor.

bucle while infinito

En algunos casos, es necesario usar un bucle infinito, que es un bucle infinito. Este requisito se puede lograr usando un bucle while. Siempre que la condición después de while se fije siempre en un valor verdadero, el ejemplo es el siguiente:

import time

while True:
    print('这是一个无限循环')
    time.sleep(1)

Resultado de salida:

这是一个无限循环
这是一个无限循环
这是一个无限循环
这是一个无限循环
这是一个无限循环
....

El bucle infinito no se puede detener automáticamente en el editor. Solo se puede detener manualmente. En el editor de PyCharm, la tecla de método abreviado Ctrl+C se puede usar para detener el bucle.

instrucción de control de bucle

Para controlar mejor el ciclo, puede usar las declaraciones break y continue en el ciclo for y while para controlar el ciclo.

romper declaración

La instrucción break se usa para saltar fuera del bucle actual, es decir, para terminar el bucle antes de tiempo, y el resto también se omitirá. Un ejemplo es el siguiente:

# 统计1~100之间奇数的个数
i = 1  # 开始值
count = 0
while True:  # 结束条件为True
    if i % 2 != 0:
        count += 1
    i += 1  # 增减量
    if i > 100:  # 满足if条件执行break语句
        break  # 跳出循环
else:
    print('while循环结束!')  # else也会被跳过,该句不执行
print('while循环由break语句跳出,else未执行!')
# while循环由break语句跳出,else未执行!
print(count)

resultado de la operación:

while循环由break语句跳出,else未执行!
50

Nota: La instrucción break también se puede usar en bucles anidados. Cuando se usa en el bucle interno de un bucle anidado, solo saltará del bucle interno y no afectará al bucle externo para que continúe ejecutándose.

continuar declaración

La sentencia continue se utiliza para omitir este bucle y continuar con el siguiente bucle. El ejemplo es el siguiente:

# 计算1~100之间能被3整除的数的和
total = 0
for i in range(1, 101):
    if i % 3 != 0:  # 条件:不能被3整除
        continue  # 如果满足以上条件就跳出本次循环,进行下一次循环
    total += i
print(total)

Resultado de salida:

1683

Supongo que te gusta

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