Get started learning Python with DataCamp's free Intro to Python tutorial. Learn Data Science by completing interactive coding challenges and watching videos by expert instructors. Start Now!

This site is generously supported by DataCamp. DataCamp offers online interactive Python Tutorials for Data Science. Join 11 million other learners and get started learning Python for data science today!

Good news! You can save 25% off your Datacamp annual subscription with the code LEARNPYTHON23ALE25 - Click here to redeem your discount

Laços


Existem dois tipos de loops em Python, for e while.

O loop "for"

Loops for iteram sobre uma sequência dada. Aqui está um exemplo:

primes = [2, 3, 5, 7]
for prime in primes:
    print(prime)

Loops for podem iterar sobre uma sequência de números usando as funções "range" e "xrange". A diferença entre range e xrange é que a função range retorna uma nova lista com números daquele intervalo especificado, enquanto xrange retorna um iterador, que é mais eficiente. (Python 3 usa a função range, que age como xrange). Note que a função range é baseada em zero.

# Imprime os números 0,1,2,3,4
for x in range(5):
    print(x)

# Imprime 3,4,5
for x in range(3, 6):
    print(x)

# Imprime 3,5,7
for x in range(3, 8, 2):
    print(x)

Loops "while"

Loops while repetem enquanto uma certa condição booleana é satisfeita. Por exemplo:

# Imprime 0,1,2,3,4

count = 0
while count < 5:
    print(count)
    count += 1  # Isso é o mesmo que count = count + 1

Instruções "break" e "continue"

break é usado para sair de um loop for ou de um loop while, enquanto continue é usado para pular o bloco atual e retornar à instrução "for" ou "while". Alguns exemplos:

# Imprime 0,1,2,3,4

count = 0
while True:
    print(count)
    count += 1
    if count >= 5:
        break

# Imprime apenas os números ímpares - 1,3,5,7,9
for x in range(10):
    # Verifica se x é par
    if x % 2 == 0:
        continue
    print(x)

Podemos usar cláusula "else" para loops?

Diferente de linguagens como C, CPP, podemos usar else em loops. Quando a condição do loop da instrução "for" ou "while" falha, então a parte do código em "else" é executada. Se uma instrução break for executada dentro do loop for, então a parte "else" é pulada. Note que a parte "else" é executada mesmo que haja uma instrução continue.

Aqui estão alguns exemplos:

# Imprime 0,1,2,3,4 e então imprime "count value reached 5"

count=0
while(count<5):
    print(count)
    count +=1
else:
    print("count value reached %d" %(count))

# Imprime 1,2,3,4
for i in range(1, 10):
    if(i%5==0):
        break
    print(i)
else:
    print("isso não é impresso porque o loop for é terminado por causa do break mas não por falha na condição")

Exercício

Percorra e imprima todos os números pares da lista de números na mesma ordem em que são recebidos. Não imprima nenhum número que venha após 237 na sequência.

numbers = [ 951, 402, 984, 651, 360, 69, 408, 319, 601, 485, 980, 507, 725, 547, 544, 615, 83, 165, 141, 501, 263, 617, 865, 575, 219, 390, 984, 592, 236, 105, 942, 941, 386, 462, 47, 418, 907, 344, 236, 375, 823, 566, 597, 978, 328, 615, 953, 345, 399, 162, 758, 219, 918, 237, 412, 566, 826, 248, 866, 950, 626, 949, 687, 217, 815, 67, 104, 58, 512, 24, 892, 894, 767, 553, 81, 379, 843, 831, 445, 742, 717, 958, 609, 842, 451, 688, 753, 854, 685, 93, 857, 440, 380, 126, 721, 328, 753, 470, 743, 527 ] # your code goes here for number in numbers: numbers = [ 951, 402, 984, 651, 360, 69, 408, 319, 601, 485, 980, 507, 725, 547, 544, 615, 83, 165, 141, 501, 263, 617, 865, 575, 219, 390, 984, 592, 236, 105, 942, 941, 386, 462, 47, 418, 907, 344, 236, 375, 823, 566, 597, 978, 328, 615, 953, 345, 399, 162, 758, 219, 918, 237, 412, 566, 826, 248, 866, 950, 626, 949, 687, 217, 815, 67, 104, 58, 512, 24, 892, 894, 767, 553, 81, 379, 843, 831, 445, 742, 717, 958, 609, 842, 451, 688, 753, 854, 685, 93, 857, 440, 380, 126, 721, 328, 753, 470, 743, 527 ] # your code goes here for number in numbers: if number == 237: break if number % 2 == 1: continue print(number) test_object("number", undefined_msg="Define a object `number` using the code from the tutorial to print just the desired numbers from the exercise description.",incorrect_msg="Your `number` object is not correct, You should use an `if` statement and a `break` statement to accomplish your goal.") success_msg("Great work!")

This site is generously supported by DataCamp. DataCamp offers online interactive Python Tutorials for Data Science. Join over a million other learners and get started learning Python for data science today!

Previous Tutorial Next Tutorial Take the Test
Copyright © learnpython.org. Read our Terms of Use and Privacy Policy