UIFCITO saludando
Introducción a Python y R · Sesión 2

Tomar decisiones

Nombre del monitor(a)
Estudiante Auxiliar
Curso:Introducción a Python y R
Sesión 2:Condicionales y lógica
Correo: uniic_bog@unal.edu.co
Tel: 3165000   Ext: 12301

Contenido

Sesión 2 · Python en Google Colab

1

Repaso activo

2

Comparaciones

3

if / else e indentación

4

elif: varias opciones

5

and, or, not

6

¡A practicar!

1

Repaso activo

Lo que vimos en la sesión 1

Tres preguntas rápidas

Piénsalo, respóndelo en voz alta y luego revisamos

¿Qué tipo de dato es "25"?
Clic para ver la respuesta
str (texto). Las comillas lo convierten en texto, aunque parezca un número.
¿Qué hace el =?
Clic para ver la respuesta
Guarda un valor en una variable. No es la igualdad de matemáticas.
¿Qué error da print(Hola)?
Clic para ver la respuesta
NameError: faltan las comillas, así que Python busca una variable llamada Hola.
UIFCITO pensando
2

Comparaciones

Preguntas que se responden con sí o no

Una comparación da True o False

SímboloPreguntaCon nota = 3.5
==¿Es igual?nota == 5 → False
!=¿Es distinto?nota != 5 → True
>¿Es mayor?nota > 4 → False
<¿Es menor?nota < 4 → True
>=¿Mayor o igual?nota >= 3.0 → True
<=¿Menor o igual?nota <= 3.5 → True

El resultado es siempre un bool: True o False.

Ojo: >= se escribe en ese orden, nunca =>.

UIFCITO explicando

= guarda, == compara

= asigna

“Guarda 3.5 en nota”

nota = 3.5

== pregunta

“¿nota es igual a 3.5?”

print(nota == 3.5)  # True
nota = 3.5
print(nota >= 3.0)   # True
print(nota == 5)     # False
UIFCITO alerta
3

if / else

Tomar un camino u otro

Un programa que decide

nota = 2.8 nota >= 3.0 Sí No "Aprobó" "Reprobó" Fin
nota = 2.8
if nota >= 3.0:
    print("Aprobó")
else:
    print("Reprobó")

Como 2.8 no es mayor o igual a 3.0, la condición da False y el programa toma el camino del else.

Anatomía de un if

if1 nota >= 3.02:3
    print("Aprobó")4
else:
    print("Reprobó")
  1. 1La palabra if (“si”, en inglés).
  2. 2La condición: algo que da True o False.
  3. 3Los dos puntos. Se olvidan mucho.
  4. 4La indentación: 4 espacios que marcan qué va dentro del if.
UIFCITO señalando

La indentación no es decoración

Sin indentación

if nota >= 3.0:
print("Aprobó")
IndentationError:
expected an indented
block after 'if'

Python no sabe qué va dentro del if.

if nota >= 3.0:
    print("Aprobó")

Sin dos puntos

if nota >= 3.0
    print("Aprobó")
SyntaxError:
expected ':'

Al if le faltan los : al final.

if nota >= 3.0:
    print("Aprobó")

¿Dentro o fuera?

if nota >= 3.0:
    print("Aprobó")
print("Fin")

No da error: "Fin" está fuera del if, así que se imprime siempre.

La sangría define la estructura del programa.

Práctica en parejas

¿Aprueba o reprueba?

Reto

Escribe un programa que diga si una nota aprueba (mayor o igual a 3.0) o reprueba. Completa los espacios:

nota = 3.2
if ______:
    print(______)
else:
    print(______)

Bonus: pruébalo con 3.0 exacto. ¿Aprueba? ¿Por qué?

UIFCITO feliz

Pausa

Estírate y toma agua.

10:00
UIFCITO
4

elif

Cuando hay más de dos caminos

Varias opciones con elif

nota = 4.6 nota >= 4.5 Sí "Excelente" No nota >= 3.0 Sí "Aprobó" No "Reprobó"
nota = 4.6
if nota >= 4.5:
    print("Excelente")
elif nota >= 3.0:
    print("Aprobó")
else:
    print("Reprobó")

Python revisa las condiciones en orden y se detiene en la primera verdadera.

El orden importa

Con nota = 4.6, ¿qué imprime este programa?

if nota >= 3.0:
    print("Aprobó")
elif nota >= 4.5:
    print("Excelente")
¿“Aprobó” o “Excelente”?
Clic para ver la respuesta
Imprime “Aprobó”. La primera condición ya es verdadera, así que Python nunca llega a revisar el elif. Las condiciones más exigentes van primero.
UIFCITO pensando
5

and, or, not

Combinar condiciones

Condiciones combinadas

and

“y”

True solo si las dos condiciones son verdaderas.

or

“o”

True si al menos una es verdadera.

not

“no”

Invierte el valor: True pasa a False.

edad = 20
tiene_documento = True
if edad >= 18 and tiene_documento:
    print("Puede votar")
UIFCITO explicando

¿Puede votar?

edad >= 18 and tiene_documento

Personaedad >= 18tiene_documentoandor
20 años, con documentoTrueTrueTrueTrue
20 años, sin documentoTrueFalseFalseTrue
15 años, con documentoFalseTrueFalseTrue
15 años, sin documentoFalseFalseFalseFalse
UIFCITO feliz

Para votar se necesitan las dos cosas: por eso usamos and.

6

¡A practicar!

Pedir datos y tomar decisiones

Pedir datos al usuario

input() siempre devuelve texto. Para comparar con números hay que convertirlo con int() o float().

Sin convertir
edad = input("¿Cuántos años tienes? ")
if edad >= 18:
    print("Eres mayor de edad")
TypeError: '>=' not supported between
instances of 'str' and 'int'
Convirtiendo
edad = int(input("¿Cuántos años tienes? "))
if edad >= 18:
    print("Eres mayor de edad")

Usa int() para enteros y float() para decimales, como una nota de 3.5.

UIFCITO alerta

Ejercicios

Avanza hasta donde llegues

Básico Todos
  1. Pide un número y di si es positivo, negativo o cero.
  2. Pide la nota de un estudiante y muestra “Aprobó” o “Reprobó”.
Intermedio
  1. Clasificador de IMC: pide peso y estatura, calcula peso / estatura**2 y muestra la categoría.
  2. Una tienda da 10 % de descuento si la compra supera $100.000 y 20 % si supera $200.000. Calcula el valor final.
Reto
  1. Pide un año y di si es bisiesto (divisible entre 4, excepto los divisibles entre 100 que no lo sean entre 400). Pista: usa %.
  2. Mini “piedra, papel o tijera” entre dos jugadores que escriben su elección.
UIFCITO señalando

Tres ideas clave de hoy

  1. Una condición siempre se evalúa como True o False.
  2. if / elif / else permite que el programa tome caminos distintos.
  3. En Python la indentación no es decoración: define la estructura.

Tarea corta

Ejercicios 1 a 4.

Nivelación

Notebook con los ejemplos resueltos y un diagrama de flujo de cada condicional.

UIFCITO feliz

¡Gracias!

Próxima sesión: Listas, bucles y funciones. ¿Y si quisiéramos repetir algo cien veces?

Correo: uniic_bog@unal.edu.co
Tel: 3165000   Ext: 12301
UIFCITO despidiéndose