Instrução de controle de fluxo do programa Python: while loop


loop while

Python usa loops while para processar loops que atendem a certas condições. While loops geralmente não são usados ​​para lidar com objetos iteráveis, enquanto instruções de loop podem alcançar loops infinitos.

Estrutura básica do loop while

O loop while é frequentemente usado para processar loops que atendem a determinadas condições. A sintaxe é a seguinte:

while condition:
    statements
    ……
else:
	statements

A condição é julgada uma vez em cada loop. Quando o valor de retorno da condição é True, ele entra no loop while para executar as instruções. Quando o valor de retorno da condição é False, as instruções sob o while não são executadas e o instruções sob o else são executadas, onde o else pode ser omitido. Se o valor de retorno da condição for sempre True, o loop while se tornará um loop infinito, também chamado de "loop infinito". O fluxograma de execução do loop while é mostrado na figura:

insira a descrição da imagem aqui

Um exemplo é o seguinte:

Exemplo: contar o número de números ímpares entre 1 e 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: Os três elementos do loop while: o valor inicial, a condição final e o aumento ou diminuição. Se não houver aumento ou diminuição, o valor inicial não será alterado, a condição final sempre retornará True e o while se tornará um loop infinito.

Uso aninhado de loops while

Python permite o uso de loops while dentro de loops while. Por exemplo, para imprimir a tabuada de multiplicação nove-nove, o exemplo é o seguinte:

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

A saída após a execução é a seguinte:

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 os loops for quanto os while podem implementar funções de loop, mas os loops for são frequentemente usados ​​para fazer loop de objetos iteráveis, ou seja, quando o fim é conhecido. Enquanto os loops são frequentemente usados ​​quando o final é desconhecido. Ambos os tipos de loops podem ser aninhados, mas deve-se notar que a eficiência dos loops aninhados não é muito alta. Os loops aninhados realmente realizam operações de produtos cartesianos. Se o número de loops for grande, o tempo de espera será maior.

loop while infinito

Em alguns casos, é necessário usar um loop infinito, que é um loop infinito, esse requisito pode ser alcançado usando um loop while. Desde que a condição após while seja sempre fixada em um valor verdadeiro, o exemplo é o seguinte:

import time

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

Resultado de saída:

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

O loop infinito não pode ser interrompido automaticamente no editor. Ele só pode ser interrompido manualmente. No editor PyCharm, a tecla de atalho Ctrl+C pode ser usada para interromper o loop.

instrução de controle de loop

Para controlar melhor o loop, você pode usar as instruções break e continue no loop for e while para controlar o loop.

declaração de quebra

A instrução break é usada para sair do loop atual, ou seja, para encerrar o loop mais cedo, e o else também será ignorado. Um exemplo é o seguinte:

# 统计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 da operação:

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

Nota: A instrução break também pode ser usada em loops aninhados. Quando usada no loop interno de um loop aninhado, ela apenas sairá do loop interno e não afetará o loop externo para continuar em execução.

continuar declaração

A instrução continue é usada para pular este loop e continuar para o próximo loop. O exemplo é o seguinte:

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

Resultado de saída:

1683

Acho que você gosta

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