Ver Feed RSS

root@blog:/# chmod o+r *

[Curso de Python] Exercícios com o While (correção)

Avalie este Post de Blog

Antes de prosseguir leia os artigos anteriores aqui



No último post deixei 3 exercícios interessantes sobre a estrutura while, vamos agora ver a solução desses exercícios!


Exercícios com o While (correção)



O nosso colega lord4rk postou algumas soluções. Como ele se esforçou muito e todos as soluções que ele postou estão corretas vou pegar (emprestado) o código dele e fazer algumas alterações para termos uma solução mais "otimizada".

Antes de começar, quero ressaltar que não há certo ou errado, melhor ou pior. As sugestões e códigos que vou postar aqui são baseadas em simplicidade e facilidade de leitura do código. Existem centenas de soluções diferentes, as que eu posto aqui são somente sugestões que eu acho que são mais claras para pessoas que estão começando em python.

Vamos lá....


1 - Faça um programa que calcule a média de 4 números informados (tem que usar o while). Lembrando que a média de 4 números é calculado da seguinte forma: n1+n2+n3+n4/4

O código postado pelo nosso colega lord4rk:
Código :
media = 0
count = 4
while count != 0:
    valor = int(raw_input('Digite um valor: '))
    media = media + valor
    if count == 1:
        media /= 4
    count -= 1
print 'A media dos valores e %i' %(media)
A lógica dele está perfeita:

  1. Um loop com quatro iterações;
  2. somar todos os 4 valores passados;
  3. dividir tudo por 4 no final.


Só tenho duas pequenas correções a serem feitas, uma é no ponto em que o nosso colega usa o if count == 1 e a outra e converter os valores para int. Como o while vai acabar quando count for igual a um podemos realizar a divisão fora do while. A divisão com int sempre despreza as casas decimais, como estamos calculando médias as casas decimais são fundamentais. O resultado fica o seguinte código:

Código :
media = 0
count = 4
while count != 0:
    valor = float(raw_input('Digite um valor: '))
    media = media + valor
    count -= 1
media /= 4.0
print 'A media dos valores e %f' %(media)
2 - Faça um programa que receba uma palavra e imprime cada letra dessa palavra separadamente. Para isso utilize a função len que informa o comprimento de uma string: len(palavra)

Código :
palavra = raw_input('Digite uma palavra: )
palavra = palavra[::-1]
size = len(palavra)
while size > 0:
    size -= 1
    print palavra[size]
Eu, pessoalmente, achei a solução do lord4rk muito interessante. A idéia de inverter a string e decrementar o comprimento foi uma sacada e tanto! Eu não ia nem sugerir alterações, mas como nosso colega (quando postou a solução) disse que teve que inverter a string para fazer o código, vou mostrar outra forma que não necessariamente precisa inverter a string:
Código :
palavra = raw_input('Digite uma palavra: ')
fim = len(palavra)
posicao = 0
while posicao < fim:
    print palavra[posicao]
    posicao += 1
Ao utilizar um 'contador' de zero até o comprimento da palavra eu posso usar ele como índice da string para fazer o slicing.


3 - Faça um programa que receba uma frase e conte quantos espaços existem nessa frase.
Código :
frase = raw_input('Digite uma frase ')
count = 0
continuar = True
while continuar:
    for caracter in frase:
        if ' ' in caracter:
            count += 1
    continuar = False
 
print '\nEspacos vazios = %i, total de caracteres = %i ' % (count, len(frase)-count )
Da pra ver que nosso colega já conhece um pouco mais de python!! Ele acabou usando nosso próximo assunto que é a interação com for e colocou o while lá só porque eu disse que tem que usar o while . Como o for ainda não explicado no nosso curso, vou postar uma solução somente com o while, que segue a lógica do exercício anterior.
Código :
frase = raw_input('Digite uma frase: ')
pos = 0
count = 0
while pos < len(frase):
    if ' ' in frase[pos]:
        count += 1
    pos += 1
print '\nEspacos vazios = %i' % (count)
É isso ai pessoal!!! Fiquem atentos que o próximo post sai em breve!!
Até mais...

Atualizado 01-09-2010 em 09:13 por Magnun

Categorias
Python , Artigos , Cursos , Curso de Python

Comentários

  1. Avatar de fabraga
    Eu não consegui encontrar onde você postou esses exercícios de média, palavra e frase. Acho que essa aula está fora do índice!
    Atualizado 07-06-2011 em 15:58 por fabraga
  2. Avatar de gpzim98
  3. Avatar de deathglory
    Curso muito bacana. As aulas são bem rápidas, mas o conteúdo é bem tranquilo, principalmente para quem já teve aulas de programação há muito tempo. parabéns

+ Enviar Comentário