Bem vindos á nona aula de programação em PythonEste artigo faz parte do curso de programação em Python do Techmoz. Para acessar outras aulas do curso, por favor visite o índice do curso de programação em Python .
OBJECTIVOS DA AULA
- Estrturas de controle e repetição ou ciclos(for, while)
- Um jogo “jogável”
Vamos nesta aula continuar com o estudo das estruturas de controle em Python, introduzindo desta vez as estruturas de repetição.Em programação, estruturas de repetição servem, como o próprio nome diz, para repetir instruções sem ter que escreve-las varias vezes.Para entender melhor estas estruturas, vamos a um exemplo lógico da sua utilização: Imagina que pretende-se criar um programa que calcula a área de 10 triangulos, sem o uso de um ciclo, teriamos de escrever 10 vezes a seguinte instrução:
base=float(raw_input(”Introduza o valor da base do triangulo 1:”))altura=float(raw_input(”Introduza o valor da altura do triangulo 1:”))area=base*altura/2print “A area do triangulo 1 é %f” %(area)
Nota que não estou usando o Python3000, mas sim o 2.6 no IDLE. Acho bom variar de ambiente, porque assim você se familiariza com todos eles. Uma das vantagens da versão 2.6 deve-se ao facto de esta versão ser compatível tanto com as versões 2.x e com a versão 3000.Mas com o uso de ciclos, não é necessário repetir as instruções, pois nós podemos fazer o interpretador executar as mesmas instruções quantas vezes necessitarmos, como veremos a seguir.
O ciclo for
O ciclo for é, talvez, o ciclo mais usado em programação, por ser o mais eficiente. A sua sintaxe em Python é:
for x in <intervalo>: <instruções>; ... …Continua o programa…
No lugar de x, indicamos a variável que irá controlar o ciclo. A variável vai tomar todos os valores do intervalo especificado, e a cada tomada, vai executar-se as instruções indicadas dentro do ciclo, ou seja, as que estão identadas( esqueceu do conceito de identação???, não é possivel!!! Mas ok! faça uma revisão da aula 6 que ai você lembra…).No lugar de intervalo, indicamos os valores que a variável irá tomar. Aqui podemos especificar um intervalo de números, uma lista, etc…Introduziremos também aqui uma nova palavra reservada, que é: range, e serve para especificar o intervalo. Veja o exemplo abaixo:
for idade in range(0,90): print(“ Este ano tenho”,i,” anos”)
A instrução acima quer dizer, para idade partir de 0 até 90, imprime a mensagem abaixo. Nota também que a primeira linha sempre termina com ‘:’, e que ao terminar com ‘:’, a linha a seguir é automaticamente identada, lembra-se do if né? Se o seu editor não tiver capacidade de auto-identação, faça isso manualmente.Outro facto importante, é que o ciclo for, por padrão, atualiza a variável em uma unidade em cada iteração. Mas e se quisermos atualizar em 2 ou 3, ou 1.5 ou ainda 0.1? Ai acrescentamos mais um parámetro ao range(). Já deves ter notado que os dois valores do range indicam o valor inicial e o valor final da iteração do ciclo. Então o terceiro valor que iremos acrescentar, indicará o valor da iteração. veja o exemplo a seguir:
#Imprime numeros pares de 0 á 50for numero in range(0,50,2): print(numero,” um numero par”)
Como já havia dito acima, em vez de um range, podemos também especificar uma lista, como se segue:
#Imprime a lista de nomes indicada no forlista_nomes=['Jose','Carlos','Antonio']for nome in lista_nomes: print(nome)
Isto é importante quando em vez de números, queremos interagir com strings e outros tipode de dados não numéricosAh! então podemos também usar strings em vez de range ou listas?!?! Isso fica para você investigar…
O ciclo While
Outro ciclo usado em Python é o while. A diferença entre for e while, é que enquanto no for especificamos um intervalo, no while nós indicamos uma condição e o ciclo repete-se enquanto aquela condição for verdadeira. A sua sintaxe em Python é:
while <condição>: instrucões… …Continua o programa
A condição é uma expressão booleana, isto é, sempre terá um dos valores: True ou False.Ex:
#Imprime todos os numeros naturais menores que dez.Num=1while num<10: print(num) num=num+1print(“O ciclo terminou”)
Nota que o ciclo while não atualiza automaticamente o valor da variável de iteração como no caso do for, dai a instrução num=num+1.O ciclo while é interessante quando pretendemos criar um loop infinito. Para isso é só indicarmos uma instrução que será sempre verdadeira, veja alguns exemplos: while True:, while 1:, while 1+1=2:, etc…
Corte de ciclos(break) e ciclos vazios(pass)
É possivel forçar a paragem dum ciclo numa dada iteração, usando a instrução break. Veja no exemplo que se segue:
#Le numeros introduzidos pelo teclado ate que o utilizador introduza 0while True: num=int(input(“Introduza um numero ou zero para parar”)) if num==0: break else: print(num)
Veja que foi possivel parar o ciclo mesmo a condição sendo ainda verdadeira. Tente fazer o mesmo com o ciclo for e verá que também é possivel. No caso de ciclos que estão dentro de outros ciclos( encadeados), a instrução break para apenas o ciclo mais próximo. Experimente e verás… Uma das dores de cabeça em Python por causa da identação, costuma ser a seguinte: e se eu quero fazer um ciclo que não faz nada? isto é importante para que o programa não faça nada( aparentemente) durante certo tempo. Já deve ter notado que ao se criar um ciclo ou uma instrução if, o Python exige que a linha a seguir seja identada e as instruções que nela forem escritas passarão a fazer parte do bloco. O problema é que nós queremos um bloco vazio, que não faça nada. Para isso existe a instrução pass, que não faz nada he he he. Note também que depois do break e pass, o Python fecha automaticamente o bloco. Veja o exemplo:
for nada in range(0,10000): pass
Depois desta aula, já podemos criar o nosso primeiro jogo ‘jogável’, trata-se do famoso adivinha o número. Aqui vai o código( Vou omitir a parte de tratamento de erros para não ficar muito complicado, mas você pode implementar isso…):
#Jogo de adivinha o numero#Versao Techmoz 10-01-2009#Por Elisio Leonardotentativas=6numero=23while tentativas>0: num=int(input("Adivinha que numero eu escondo: ")) if num==numero: print("Adivinhou parabens! O jogo terminou") break else: print("Infelizmente errou!!! Tente novamente(",tentativas," restantes") tentativas=tentativas-1input("Pressione qualquer tecla para sair")
Como vê aos poucos vamos fazendo coisas mais interessantes.Chegamos ao fim da nossa aula! Comentários são bem vindosPara a próxima aula trataremos de um tema um pouco mais complexo em programação: Funções. Mas isso é assunto da próxima aula mesmo!Nos vemos na aula 10!!!
Comentários Recentes