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

Diferenças para "CategorizarNadador"

Diferenças entre as versões de 2 e 3
Revisão 2e 2004-04-21 20:41:04
Tamanho: 2332
Comentário: como resolver o mesmo problema usando o módulo bisect
Revisão 3e 2005-09-20 03:23:00
Tamanho: 2436
Editor: docles
Comentário:
Deleções são marcadas assim. Adições são marcadas assim.
Linha 94: Linha 94:
Ruivaldo Neto

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 >= 5 and idade_nadador <= 7:
   9     print 'infantil A'
  10     
  11 elif idade_nadador >= 8 and idade_nadador <= 10:
  12     print 'infantil B'
  13     
  14 elif idade_nadador >= 11 and idade_nadador <= 13:
  15     print 'Juvenil A'
  16     
  17 elif idade_nadador >= 14 and idade_nadador <=17:
  18     print 'juvenil B'
  19     
  20 elif idade_nadador <= 4:
  21     print 'indefinido.'
  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 >= 5 and idade_nadador <= 7:
  11     print 'infantil A'
  12     
  13 elif idade_nadador >= 8 and idade_nadador <= 10:
  14     print 'infantil B'
  15     
  16 elif idade_nadador >= 11 and idade_nadador <= 13:
  17     print 'Juvenil A'
  18     
  19 elif idade_nadador >= 14 and idade_nadador <=17:
  20     print 'juvenil B'
  21     
  22 elif idade_nadador <= 4:
  23     print 'indefinido.'
  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://pydoc.org/2.3/bisect.html

-- RicardoNiederberger


Volta para CookBook.