15.12.2022 Views

Python Eficaz

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

pode entender erradamente que o else presente num loop for/else significa, “faça

isso se o loop não puder ser completado”. Na realidade, ele faz o oposto! Inserir

um comando break em um laço faz com que o bloco else seja completamente

ignorado.

for i in range(3):

print('Loop %d' % i)

if i == 1:

break

else:

print('Else block!')

>>>

Loop 0

Loop 1

Outra surpresa é que o bloco else roda imediatamente caso o laço tente varrer

uma sequência vazia.

for x in []:

print('Never runs')

else:

print('For Else block!')

>>>

For Else block!

O bloco else também roda mesmo que um laço while seja inicialmente falso.

while False:

print('Never runs')

else:

print('While Else block!')

>>>

While Else block!

A explicação dada pelos desenvolvedores do Python para esse comportamento é

que os blocos else são úteis em laços que procuram por algo. Por exemplo,

imagine que se queira determinar se dois números são primos entre si, os

chamados coprimos (seu único divisor comum é 1). No trecho de código a

www.full-ebook.com

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!