associação pythonbrasil[11] django zope/plone planet Início Logado como (Entrar)

Revisão 5e 2006-01-26 19:29:04

Excluir mensagem

CategorizarNadador

Receita: CategorizarNadador

Simples codigo para resolver a questão:

12. Elabore um algoritmo que dada a idade de um nadador classifica-o em uma das seguintes categorias:

infantil A = 5 - 7 anos

infantil B = 8-10 anos

juvenil A = 11-13 anos

juvenil B = 14-17 anos

adulto = maiores de 18 anos

Muito simples porém faz bom uso do if, elif e else.

Abraços.

Código

   1 # Exercicio 12 da lista
   2 # Definir categoria do nadador
   3 
   4 #pega a idade do nadador
   5 idade_nadador = input('Entre com a idade do nadador: ')
   6 
   7 # Ifs para verificar entre qual faixa de idade se encontra o nadador
   8 if idade_nadador <= 4:
   9     print 'indefinido.'
  10 
  11 elif 5 <= idade_nadador <= 7:
  12     print 'infantil A'
  13     
  14 elif 8 <= idade_nadador <= 10:
  15     print 'infantil B'
  16     
  17 elif 11 <= idade_nadador <= 13:
  18     print 'Juvenil A'
  19     
  20 elif 14 <= idade_nadador <=17:
  21     print 'juvenil B'
  22     
  23 else:
  24     print 'adulto'
  25     

Exemplo de uso

   1 # Exercicio 12 da lista
   2 # Definir categoria do nadador
   3 
   4 #pega a idade do nadador
   5 # comentei a linha abaixo pra exemplificar o uso
   6 #idade_nadador = input('Entre com a idade do nadador: ')
   7 idade_nadador = 7 # defini a variavel idade_nadador..
   8  
   9 # Ifs para verificar entre qual faixa de idade se encontra o nadador
  10 if idade_nadador <= 4:
  11     print 'indefinido.'
  12 
  13 elif 5 <= idade_nadador <= 7:
  14     print 'infantil A'
  15     
  16 elif 8 <= idade_nadador <= 10:
  17     print 'infantil B'
  18     
  19 elif 11 <= idade_nadador <= 13:
  20     print 'Juvenil A'
  21     
  22 elif 14 <= idade_nadador <=17:
  23     print 'juvenil B'
  24     
  25 else:
  26     print 'adulto'


Usando o módulo bisect

   1 categs = [('indefinido' , 5),
   2           ('infantil A', 8),
   3           ('infantil B', 11),
   4           ('juvenil A', 14),
   5           ('juvenil B', 18),
   6           ('adulto',200),
   7           ]
   8 
   9 from bisect import bisect
  10 idade_nadador = input('Entre com a idade do nadador: ')
  11 valores = [i[1] for i in categs]
  12 posicao = bisect(valores, int(idade_nadador))
  13 print categs[posicao][0]

Mais sobre o módulo bisect em http://python.org/doc/2.4.2/lib/module-bisect.html

-- RicardoNiederberger


Volta para CookBook.