15.08.2024

Loop While em Python

As linguagens de programação são usadas para resolver todos os tipos de problemas relacionados a tipos de dados massivos, como listas, strings, tuplas, dicionários, entre outros que exigem uma linguagem moderna para lidar com um grande fluxo de dados. Em Python, para trabalhar com esses tipos, existem laços, que são divididos em laços com um contador 'for' e sem um número certo de etapas, que são os laços 'while'. Hoje discutiremos o segundo tipo!

O que é While em Python?

While é uma construção cíclica que é executada enquanto a condição especificada para ela for verdadeira. Dentro dessa construção, existem instruções para executar o loop, bem como palavras-chave para interromper a própria construção ou pular a iteração. Vamos considerar sua sintaxe abaixo:

Screenshot №1 - Sintaxe da linguagem

Primeiro, a palavra-chave 'while' é definida, com uma condição que é verificada quanto à veracidade e, se for 'True', uma série de instruções é executada. Note que tudo o que estiver indentado pertence à construção e será executado de acordo com a regra do loop, exceto por “continue/break”, mas falaremos sobre isso abaixo. Da teoria à prática: se antes não estava claro como funciona a máquina de loops, o exemplo esclarecerá. Por exemplo, precisamos exibir números de 0 a 5; para isso, escreveremos a construção abaixo:

n=0
while n <= 5:
print (n)
n+=1
print ( 'END')

Screenshot №2 - Exemplo simples de loop while

Note que nem todas as partes da construção cíclica da sintaxe foram usadas, pois as apresentadas são suficientes para resolver este problema. Vamos explicar como o loop funciona: primeiro, 'n' se torna zero, em seguida, o controle passa para o loop 'while', onde a construção 'Enquanto n for menor ou igual a 5, faça isso!' é literalmente executada. A linguagem Python é bastante legível, por isso é fácil de entender logicamente.

Voltando ao loop, como zero é maior que cinco, a condição será executada e nossa variável `n` com valor zero será impressa. Também será adicionado um ao valor, e então o controle passará novamente para 'while' e verificará a condição. Esta rodada de verificação é chamada de iteração. Assim que a variável 'n' for igual a 6, a condição não será cumprida e o controle passará para print('END'). A saída será assim:

0
1
2
3
4
5
END

Como você pode ver, esta solução é muito mais longa do que a designação numérica, no entanto, é funcional e cumpre as tarefas. Todos os passos do tutorial podem ser realizados em servidores em nuvem poderosos. O Serverspace fornece servidores VPS isolados para uso comum e virtualizado.

Screenshot №3 - Criar Servidor

Levará algum tempo para implantar a capacidade do servidor. Depois disso, você pode se conectar de qualquer uma das formas convenientes.

Voltando aos loops, como os loops são apenas uma construção, eles podem conter qualquer instrução Python dentro deles, o que aumenta as possibilidades de trabalhar com eles. No entanto, é importante lembrar que você pode definir um algoritmo cuja condição será sempre verdadeira e ele não parará por conta própria. Por exemplo:

n=True
while n:
print (n)
print ('END')

Screenshot №4 - Exemplo de loop infinito

Um erro de condição neste algoritmo faz com que o loop infinito de Python continue rodando e imprimindo 'True'. Afinal, a variável do loop 'n' armazena esse valor e não muda no processo, o que significa que print('END') nunca ocorrerá, pois o controle não será passado para fora do loop. Portanto, é aconselhável evitar algoritmos com uma condição não mutável.

Bloco else em um loop while

Em alguns casos, pode ser necessário exibir uma notificação adicional para os usuários, alterar valores e redefinir variáveis após o loop. 'Else' serve exatamente para esse propósito e será executado quando a condição for 'False' ou não for cumprida. Vamos notificar os usuários que a busca no loop terminou:

user_language = input('Your languages:')
ex_language =['en', 'fr', 'jp', 'kz']

while user_language in ex_language:
print (f'Language found in the list: {user_language}')
user_language = 0
else: print ('End of search!')

Screenshot №5 - Bloco else

Se a linguagem inserida pelo usuário estiver na lista de idiomas disponíveis, ela será encontrada e exibida. E após a condição ser invalidada, o controle passará para o bloco 'else' e exibirá a linha 'End of search!'.

Note que 'else' será executado em qualquer caso quando a condição em 'while' for 'False', mesmo que o loop não tenha começado. Como, ao final, muitas vezes a condição do loop é 'False', o controle é passado para o bloco 'else'.

Como posso forçar o loop a parar após o valor recebido?

Blocos break e continue em Python

Para isso, existem blocos que permitem encerrar a execução do loop ('break') ou pular a iteração atual ('continue'). Eles são usados da mesma maneira que palavras-chave regulares, mas as instruções não são executadas após eles, o que é importante levar em conta ao escrever o código. Vamos olhar um exemplo:

user_language = input('Your languages:')
ex_language =['en','fr', 'jp', 'kz']

while user_language in ex_language:
if user_language == 'jp':
user_language='0'
continue
print (f'Language found in the list: {user_language}')
break
else: print ('The language could not be found!')

Screenshot №6 - Continue e break

Se o usuário inserir a linguagem 'jp', ao passar o controle para 'while', ele logo passará para a construção condicional 'if', onde a expressão lógica também é verificada. No caso do valor atual ser 'jp', a condição está correta e as ações da construção condicional serão executadas, ou seja, zerando 'user_language' e 'continue', o que encerrará a iteração atual e passará para a nova. Isso significa que a condição será verificada novamente é exibida na tela:

Your languages: jp
Language not found in the list!

No entanto, se você inserir outro valor da lista de idiomas, por exemplo, 'en', o loop funcionará com a saída:

Your languages: en
Found language in the list: en

Como após passar o controle para 'break', o loop é encerrado sem verificar novamente e 'else' não é executado porque faz parte do loop. Entender e usar corretamente o loop 'while' permite resolver eficientemente problemas relacionados a processos repetitivos e ao processamento de dados em Python, tornando seu código mais flexível e poderoso.