2332
Comentário: como resolver o mesmo problema usando o módulo bisect
|
2436
|
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
Volta para CookBook.