Python Condiciones

Enviado por jalemany el Mar, 01/10/2019 - 19:42

Este manual está escrito en formato teatral entre PyBOT, un robot profesor de Python y Marcos, un estudiante interesado en aprender Python. 

Marcos: Hasta ahora he aprendido a escribir por pantalla, pero aún no he aprendido a procesar las variables.

PyBOT: Ok, vamos a intentar hacer un programa para contar las "a" en una palabra.

¿Serías capaz de recorrer todas las letras de la palabra?

Marcos: ¡Sí! Esto lo he visto en el manual "Variables y repeticiones". Puedo hacer el siguiente programa:

palabra="patata"
for c in palabra:
  print c

PyBOT: Muy bien, con esto puedes pasar por cada letra. Ahora queremos hacer un programa que cuente cuántas letras son a. Para hacerlo usaremos la instrucción if.

La traducción de if es si. Nosotros queremos implementar: Si la letra es una a, cuéntala.

Mira este programa y observa cómo funcionan las condiciones:

total = 0
palabra = "patata"
for c in palabra:
  if c=="a":
    total=total+1
print (total)

Aquí podemos ver el funcionamiento del if. Para preguntar si son iguales usamos un doble igual, ya que uno solo sería la asignación. También puedes ver la fórmula:

total=total+1

Este es una manera para incrementar el valor de total en una unidad. Fíjate que está cambiando el valor de total. No es una ecuación matemática.

Marcos: ¿Qué otras condiciones podemos hacer?

PyBOT: Podemos hacer comparaciones: <, >, <=, >=, !=. Esta última significa distinto. También podemos preguntar si un número es par o impar usando su resto al dividirlo por 2. Esto se hace con: 

i%2==0. Si el resto al dividir por 2 es 0 entonces ya sabemos que es par.

Prueba de hacer un programa que escriba todos los números pares de 0 a 8.

Marcos: A ver....

for i in range (0,9,2):
  print (i)

PyBOT: ¡Muy bien! ¡Ahora inténtalo usando condicionales!

Marcos: Ok, voy a pasar por los números del 0 al 9 y mirar si cada uno es par.

for i in range (10):
  if i%2==0:
   print (i)

PyBOT: Lo estás haciendo muy bien. Te voy a explicar otra cosa: puedes usar la instrucción else (que signifino sino) para que haga algo cuando no se cumple la condición del if.

Marcos: Déjame probar... si lo que dices es cierto debería poder decir para cada número si es par o impar:

for i in range (10):
  if i%2==0:
   print (i, "es par")
  else:
   print (i, "es impar")

¡Funciona! ¿Y si quisiera hacer varias preguntas y para cada pregunta dar un resultado diferente... y si no se cumple ninguna de las preguntas dar otro resultado?

PyBOT: Eso es fácil también. La primera pregunta, como ya has visto, la haces con la instrucción if, las siguientes las haces con la instrucción elif (que viene de else if, es decir, sino si), y finalmente, si quieres, usas la instrucción else para indicar qué hacer si no se cumple ninguna de las condiciones. Por ejemplo:

for i in range (25):
  if i <= 5:
   print (i, "es muy pequeño")
  elif i <= 15:
   print (i, "es pequeño")
  elif i <= 20:
   print (i, "es grande")
  else:
   print (i, "es muy grande")

Fíjate que en esta lista de if-elif-else el primer if que se cumpla será el que se ejecutará. Por ejemplo, 9 no es menor que 5, por lo que no entra en el primer if, pero sí es menor que 15 por lo que entra en el primer elif y muestra "es pequeño". Como ya ha cumplido una condición no entrará en el siguiente elif a pesar de que también es más pequeño que 20.

Marcos: Genial, me ha costado un poco seguir esto último, pero he hecho varias pruebas cambiando valores y ya lo he entendido. Aunque me sale todo en una columna, ¿cómo puedo hacerlo para que salga en una línea?

PyBOT: Buena pregunta. ¡Esto lo veremos en el siguiente manual: Entrada y Salida!

Printer Friendly, PDF & Email

Añadir nuevo comentario

Texto sin formato

  • No se permiten etiquetas HTML.
  • Saltos automáticos de líneas y de párrafos.
  • Las direcciones de correos electrónicos y páginas web se convierten en enlaces automáticamente.