Grande Final de semana! 100% de aprovação na faculdade! Enfim "férias"!
Bem vamos falar de Python então!
Hoje veremos o for.
Vamos começar com um exemplo simples:
l = [1,2,3,4,5]
for i in l:
print i
Aqui, inicialmente, começamos com algo que ainda não vimos: listas.
Começamos criando l como uma lista que contém uma sequência de números.
Então, esta lista é usada dentro do for.
*** Nota para programadores de outra linguagem ***
Em outras linguagens, determinamos o valor inicial da variável contadora, seu limite e o passo de iteração. Em python isso não acontede. Aqui, o for somente itera sobre listas. Isto traz várias vantagens, como por exemplo, iterar sobre strings, ou listas de elementos variados.
Será mostrado adiante porque este for não está em desvantagem frente ao for das outras linguagens.
*** Fim da Nota ***
Então, a cada iteração, a variável de iteração, neste caso i, recebe uma posição da lista.
Assim, este trecho acima imprime na tela todos os valores contidos na lista l.
Vamos ver agora este trecho de código:
d = ['arroz', 'feijao', 'carne', 'batata']
for i in d:
print 'Estou cozinhando ', i
Este exemplo demonstra a utilização do for com listas que contém strings, mostrando que pode-se usar listas com qualquer objeto num for.
No for também podemos usar break e continue. Assim, podemos controlar ainda mais o comportamento do laço. Além disso, há uma particularidade no for do Python que o deixa muito poderoso: podemos usar um else ao final do for como no exemplo a seguir:
for i in ['a', 'b', 'c', 'd', 'e', 'f', 'g']:
if i >= 'd':
continue
print i
else:
print 'd'
Usando o else no final, podemos controlar o que será executado ao final de um execução completa do for e o que será executado se o laço for quebrado por um break.
Neste exemplo, serão mostradas sempre as letras a, b, c e d, mas d não será impresso dentro do for, mas dentro do else!
Isto é muito importante, pois evita que tenhamos que fazer testes complicados para detectar quando um for for quebrado por um break que será chamado em condições complexas.
Finalmente, muitos devem estar se perguntando: "Como este for pode ser tão poderoso se temos que definir as listas manualmente?"
O fato é que não temos que fazer manualmente se for uma lista de números (assim como não precisamos em outras linguagens).
Existe uma função em Python, range, que retorna uma lista de números no intervalo especificado. Veja o exemplo:
for i in range(50):
if i%2 == 0:
print i, 'é par'
else:
print i, 'é impar'
Quando fazemos range(50), teremos uma lista de inteiros de 0 a 49. (experimente no shell).
Bem, pessoal! Por hoje é isso!
Espero que tenhm gostado! Agora falta pouco para iniciarmos uma programação efetiva em Python!
Nos Próximos Posts, tipos de dados nativos do Python!
Comentem!
Assinem o Feed e não percam nenhum post do Programe em Python!
Abraço!
Até próxima!
kra axo o python um pouco complikdo........
ResponderExcluirHehe, bem, talvez você esteja habituado com outra linguagem, mas ser complicado ou não é relativo, eu, por exemplo acho complicado entender quando alguém escreve complikdo... rsrs
ResponderExcluirValeu pelo comentário! Pode deixar teu nome na próxima vez!
Valeu!
Esta certo isso?? 0o
ResponderExcluir"Quando o break quebra o laço, a execução segue pra dentro do else!"
Este comentário foi removido pelo autor.
ExcluirOlá Igor! Mil desculpas pela última resposta! Realmente estava errado no texto! A execução só segue para dentro do else quando o laço não é quebrado por um break.
ExcluirMuito obrigado pelo comentário!
Abraços!
''Neste exemplo, serão mostradas sempre as letras a, b, c e d, mas d não será impresso dentro do for, mas dentro do else!''
ResponderExcluirNão entendi essa parte, o meu programa mostrou apenas a,b e c... não foi impresso nenhum d, nem no else... não entendi essa parte... desculpe , sou iniciante =)
Foi impresso apenas isso :
a
b
c
Heitor, muito obrigado! Acabei realmente cometendo um engano. O else é chamado quando o for sai normalmente, se for com break, ele executa o que houver após o for
ExcluirPor exemplo, Lá, deveria se assim:
for i in ['a', 'b', 'c', 'd', 'e', 'f', 'g']:
if i >= 'd':
continue
print i
else:
print 'd'
Neste caso o else funciona como falei acima. Vou corrigir no post!
Muito obrigado!