Python 07: Frío, quente...

O que vas aprender:

Neste apartado imos profundizar un chisco nas sentenzas condicionais, ampliando a sentenza que xa coñecemos if co a sentenza else. Para iso imos facer un programiña moi sinxelo, que engada algunhas opcións ao que temos feito até o de agora. Neste caso, que pregunte algún dato ao xogador/a e que varíe a contestación en función duns rangos que determinaremos. Os rangos son intervalos de valores que definimos, de xeito que podemos adxudicar despois algunha variable a cada un deles.

P.ex- podería ser o caso da puntuación nun xogo, no que definiríamos uns intervalos e unha mensaxe de felicitación correspondente a cada un deles, ou os intervalos polos que se adxudican as notas (nota<5 - insuficiente, 5<=nota<6 - suficiente, 6<=nota<7 - ben, 7<=nota<9 - notable, 9<=nota<=10 - sobresaínte)

Código do programa:

1. #Un programa para falar da idade

2.

3. print ('Ola, como te chamas?')

4. meuNome=input()

5.

6. print('Ola, '+meuNome+', cantos anos tes?')

7. idade=input()

8. idade=int(idade)

9.

10. if idade<6:

11. print(meuNome+', ti estarás en infantil!')

12. else:

13. if idade<12:

14. print(meunome+', ti estarás en primaria!')

15. else:

16. if idade<16:

17. print(meuNome+', ti estarás en secundaria!')

18. else:

19. print (meuNome+', ti que fas aínda no colexio?')

O resultado:

O resultado debera ser algo coma isto:

Por partes:

As liñas 1 a 4 xa non deberían ter problema para ti, xa sabemos de sobra que son a presentación e a introdución de nome por parte do usuario/a.

1. #Un programa para falar da idade

2.

3. print ('Ola, como te chamas?')

4. meuNome=input()

As liñas 6-8 tamén che serán coñecidas, empregamos exactamente o mesmo código no apartado anterior, só lembraremos a importancia de executar a función idade=int(idade), que servía para transformar o valor introducido polo xogador/a nun enteiro. Lembra que o resultado da función input() sempre é unha cadea/string, é dicir un cacho de texto, que pode conter números, pero que o ordenador tratará como texto. Se non facemos a transformación de cadea a enteiro/integer, Python non será capaz de executar operacións matemáticas con valor introducido.

6. print('Ola, '+meuNome+', cantos anos tes?')

7. idade=input()

8. idade=int(idade)

As liñas 10-19 son as que conteñen todo o "mondongo" do programa, xa que comparan a idade introducida pola usuaria/o cos valores que nós lle definimos e, en función deles, dan un resultado.

10. if idade<6:

11. print(meuNome+', ti estarás en infantil!')

12. else:

13. if idade<12:

14. print(meunome+', ti estarás en primaria!')

15. else:

16. if idade<16:

17. print(meuNome+', ti estarás en secundaria!')

18. else:

19. print (meuNome+', ti que fas aínda no colexio?')

If quere dicir "si", e else quere dicir algo como "en calquera outro caso", e a maneira de "pensar" de Python funciona, máis ou menos, do seguinte xeito:

Xa que logo, Python vai escollendo entre dous valores de xeito escalonado, e nós temos que definirlle eses valores. Repara en que o último else non leva if asociado, xa que chega un punto en que, por así decilo, se non é boi, nin vaca, nin xato, terá que ser outra cousa.

Nos bloques if...else é moi importante respectar a indentación, xa que, do contrario, darános erro.

En realidade, a maneira correcta de escribir os programas que levamos feitos até agora, tería sido empregar sempre sentenzas if...else onde isto fora posible... podes revisar os teus scripts anteriores e transformalos?

Exercicios:

- Escribe comentarios no teu programa para explicar que fai cada bloque.

- Debuxa o fluxograma.

- Modifica os rangos e mensaxes do programa.

- Poderías facer un programa que che dese mensaxes (es un pouco pequeno, tes unha estatura media, es moi alto) sobre a túa altura en cm?

- Poderías modificar o programa do apartado anterior para que, en vez de dar a pista de "demasiado alto" ou "demasiado baixo", dera a pista "quente", "temperado" ou "frío" según estexa de cerca o número introducido do número secreto? Seguramente precisarás do operador abs(x), que devolve o valor absoluto (sen ter en conta signo) de x.

- Novo: Algo así sería exemplo dun exercicio de exame: "Deseña un programa que sirva para que o xogador/a poida facer cantas tiradas de dados queira, con dados do número de caras que o xogador/a queira. Despois o programa deberá informar ao xogador da puntuación obtida en cada tirada. O programa deberá saudar ao xogador e dirixirse a el polo seu nome". Este sería o resultado de exemplo: