Trabalhando com flags em Python
Flag - é uma variável especial,
que só pode assumir dois valores:
True ou False. Com a ajuda
de flags, você pode resolver problemas que verificam
a ausência de algo: por exemplo, você pode
verificar se não há um elemento com
um determinado valor em uma lista.
Vamos resolver o seguinte problema: dada uma lista
de números, verifique se todos os elementos
nela são positivos. Para isso,
definiremos uma variável especial flag,
que será verdadeira antes do início do loop. E
ao encontrar um número negativo durante o loop,
mudaremos seu valor para False. Para
conhecer o resultado da verificação,
exiba a variável flag após o loop
no console:
lst = [1, 2, 3, 4, 5]
flag = True
for el in lst:
if el < 0:
flag = False
print(flag) # exibirá True, pois todos os números são positivos
É uma boa prática nomear a
variável de flag com um nome que reflita
a condição definida. Vamos renomear flag
para isAllPositive. E para maior clareza,
vamos mudar um número da lista para negativo:
lst = [1, 2, 3, -4, 5]
isAllPositive = True
for el in lst:
if el < 0:
isAllPositive = False
print(isAllPositive) # exibirá False, pois há um número negativo
Se a lista que está sendo percorrida tem muitos valores
e é necessário parar o loop após detectar
o primeiro número negativo, então deve-se
aplicar a instrução break:
for el in lst:
if el < 0:
isAllPositive = False
break
Ao trabalhar com flags, para saber o resultado
da execução do loop, você pode exibir não o valor
da flag, mas uma mensagem personalizada usando
um if adicional.
Vamos reescrever o exemplo anterior. Se
todos os elementos forem positivos, então
exiba '+++', caso contrário -
'---':
for el in lst:
if el < 0:
isAllPositive = False
break
if isAllPositive:
print('+++')
else:
print('---') # exibirá '---'
Dada uma lista. Verifique se todos os seus elementos são números positivos.
Dado um número inteiro. Verifique se ele é primo, ou seja, divisível apenas por um e por ele mesmo.