Baixe o app para aproveitar ainda mais
Prévia do material em texto
Aula 9 – Estrutura de Repetição com While Computação I - 2012/2 2 Estrutura de repetição Permite que o programador especifique que o programa deve repetir um conjunto de comandos enquanto uma dada condição for verdadeira. O que fazer para fornecer mais de um número antes do programa terminar ? def main(): X= input("Me forneça um inteiro: ") if X > 0 : print "%d é um inteiro positivo" % X else : if X < 0 : print "%d é um inteiro negativo" % X else : print "%d é zero" % X if __name__ == "__main__": main() Computação I - 2012/2 3 Estrutura de repetição def main(): X = raw_input("Me forneça um inteiro: ") while X != “fim”: X = int(X) if X > 0 : print "%d é um inteiro positivo" % X else : if X < 0 : print "%d é um inteiro negativo" % X else : print "%d é zero" % X X = raw_input("Me forneça um inteiro: “) if __name__ == "__main__": main() Permite que o programador especifique que o programa deve repetir um conjunto de comandos enquanto uma dada condição for verdadeira. while expressão : comandos Computação I - 2012/2 4 Estrutura de repetição def main(): X = raw_input("Me forneça um inteiro: “) while X != “fim”: X = int(X) if X > 0 : print "%d é um inteiro positivo" % X else : if X < 0 : print "%d é um inteiro negativo" % X else : print "%d é zero" % X X = raw_input("Me forneça um inteiro: ") print “Tchau :~)” if __name__ == "__main__": main() while expressão : comandos Permite que o programador especifique que o programa deve repetir um conjunto de comandos enquanto uma dada condição for verdadeira. Computação I - 2012/2 5 Estrutura de repetição - while While condição: comandos ● A condição é similar a usada no IF, incluindo and e or. ● Repete os comandos enquanto a condição for verdadeira. ● Deve haver algum processo dentro do bloco de comandos que torne a condição falsa e a repetição seja encerrada. Computação I - 2012/2 6 Estrutura de repetição - while Exemplo: def main(): contador = 0 while contador < 10 : print contador contador = contador + 1 if __name__ == "__main__": main() Variável contadora Computação I - 2012/2 7 Estrutura de repetição - while Formas de encerrar o “loop” : ●Quando usamos um contador para encerrar o processo de repetição. While contador < 10: ●Quando usamos um valor lido para encerrar o processo de repetição (Flag). While X != “Fim”: Computação I - 2012/2 8 Estrutura de repetição - while Exercício: Faça um programa que leia 10 números inteiros e imprima a sua soma. def main(): contador = 0 soma = 0 while contador < 10: num = input("Digite um número:") soma = soma + num contador = contador + 1 print "Soma dos 10 números: %d" %soma if __name__ == "__main__": main() Variável acumuladora Um contador encerra a repetição Computação I - 2012/2 9 Estrutura de repetição - while Exercício: Faça um programa que leia um conjunto de números até que seja digitado um número negativo. Imprima a soma dos números sem considerar o número negativo digitado. def main(): soma = 0 num = input("Digite um número:") while num >= 0: soma = soma + num num = input("Digite um número:") print "Soma dos 10 números: %d" %soma if __name__ == "__main__": main() Um flag (num >= 0) encerra a repetição O número é lido pelo menos uma vez antes, pois é testado na condição do While. Computação I - 2012/2 10 Estrutura de repetição - While Faça um programa que determina a soma de todos os números pares desde 100 até 200. def main(): Soma = 0 Par = 100 while Par <= 200 : Soma = Soma + Par Par = Par + 2 print Soma if __name__ == "__main__": main() O Contador não precisa começar de 0, e nem ir de 1 em 1. Computação I - 2012/2 11 Estrutura de repetição - While O programa abaixo apresenta algum problema? def main(): X = 10 while X > 8 : print X X = X + 2 if __name__ == "__main__": main() Computação I - 2012/2 12 Estrutura de repetição - While O programa abaixo apresenta algum problema? def main(): X = 10 while X > 8 : print X X = X + 2 if __name__ == "__main__": main() Cuidado para o programa não entrar num loop infinito!!! Computação I - 2012/2 13 Estrutura de repetição - While Validando Dados: Faça um programa que leia duas notas e calcule a sua média. Use uma função separada para calcular a média. Caso o usuário digite notas inválidas ( < 0 ou > 10), o programa deve mostrar uma mensagem de “nota inválida” e pedir para o usuário digitar novamente. O programa deve se repetir até que notas válidas sejam digitadas. Computação I - 2012/2 14 Estrutura de repetição - While Resposta: def media(n1,n2): return (n1+n2)/2.0 def main(): p1,p2 = input("Digite as notas da p1 e da p2: ") while p1 < 0 or p1 > 10.0 or p2 < 0 or p2 > 10.0: print "Uma das notas está inválida. A nota deve estar entre 0 e 10." p1,p2 = input("Digite novamente as notas: ") print "A média das notas é %.1f" %media(p1,p2) if __name__ == "__main__": main() Computação I - 2012/2 15 Estrutura de repetição - While Criando Menus: Faça um programa que apresente na tela o seguinte menu: 1 – Somar dois números 2 – Multiplicar dois números 3 – Sair Digite a sua opção: A opção 1 soma dois números digitados e imprime a soma na tela. A opção 2 multiplica dois números digitados e imprime a multiplicação na tela. A opção 3 encerra o programa. O programa deve se repetir até que seja digitada a opção 3. Computação I - 2012/2 16 Resposta 1 def main(): print "1 - Somar os dois números" print "2 - Multiplicar os dois números" print "3 - Sair" op = input("Digite a sua opção: ") while op != 3: if op == 1 or op == 2: n1,n2 = input("Digite dois números:") if op == 1: print "Soma: %d\n" %(n1+n2) else: print "Multiplicação: %d\n" %(n1*n2) else: print "opção inválida\n" print "1 - Somar os dois números" print "2 - Multiplicar os dois números" print "3 - Sair" op = input("Digite a sua opção: ") if __name__ == "__main__": main() O menu é obrigatoriamente colocado antes, pois a variável op vai ser testada na condição. Computação I - 2012/2 17 Resposta 2 def main(): op = 4 while op != 3: print "1 - Somar os dois números" print "2 - Multiplicar os dois números" print "3 - Sair" op = input("Digite a sua opção: ") if op == 1 or op == 2: n1,n2 = input("Digite dois números:") if op == 1: print "Soma: %d\n" %(n1+n2) else: print "Multiplicação: %d\n" %(n1*n2) elif op != 3: print "opção inválida\n" if __name__ == "__main__": main() A variável op é inicializada com qualquer valor diferente de 3,só para entrar no while. O menu é colocado uma única vez no Início do while. Computação I - 2012/2 18 Resposta 3 def main(): while True: print "1 - Somar os dois números" print "2 - Multiplicar os dois números" print "3 - Sair" op = input("Digite a sua opção: ") if op == 1 or op == 2: n1,n2 = input("Digite dois números:") if op == 1: print "Soma: %d\n" %(n1+n2) else: print "Multiplicação: %d\n" %(n1*n2) elif op != 3: print "opção inválida\n" else: break if __name__ == "__main__": main() Executa os comandos indefinidamente, até que alguma coisa interrompa a execução Comando que interrompe a execução de uma estrutura de repetição Computação I - 2012/2 19 Aula 9 – Estrutura de Repetição - While Slide Number 1 Estrutura de repetição Estrutura de repetição Estrutura de repetição Estrutura de repetição - while Estrutura de repetição - while Estrutura de repetição - while Estrutura de repetição - while Estrutura de repetição - while Estrutura de repetição - While Estrutura de repetição - While Estrutura de repetição - While Estrutura de repetição - While Estrutura de repetição - While Estrutura de repetição - While Resposta 1 Resposta 2 Resposta 3 Slide Number 19
Compartilhar