Fundamentos del Control de Flujo en Python

Ejecución secuencial

x = 5
y = 3
resultado = x + y
print(resultado)
## 8

Valores lógicos (booleanos)

verdadero = True
falso = False

print(type(True))
## <class 'bool'>
print(type(False))
## <class 'bool'>

Operadores de comparación

print(5 == 5)
## True
print(5 != 3)
## True
print("hola" == "Hola")
## False
print(10 > 5)
## True
print(2 < 7)
## True
print(5 >= 5)
## True
print(4 <= 3)
## False
edad = 25
limite = 18
print(edad > limite)
## True

Operadores lógicos

print(True and False)
## False
print(True or False)
## True
print(not True)
## False
edad = 25
tiene_licencia = True
puede_alquilar = (edad >= 21) and tiene_licencia
print(puede_alquilar)
## True

Condicionales (if, elif, else)

temperatura = 30

if temperatura > 25:
    print("Hace calor hoy")
## Hace calor hoy
edad = 16
if edad >= 18:
    print("Eres mayor de edad")
else:
    print("Eres menor de edad")
## Eres menor de edad
nota = 85
if nota >= 90:
    calificacion = "A"
elif nota >= 80:
    calificacion = "B"
elif nota >= 70:
    calificacion = "C"
else:
    calificacion = "F"

print("Calificación:", calificacion)
## Calificación: B

Estructura equivalente a ifelse()

numeros = [-3, -1, 0, 2, 5, -7, 8]
signos = ["No negativo" if n >= 0 else "Negativo" for n in numeros]

print(list(zip(numeros, signos)))
## [(-3, 'Negativo'), (-1, 'Negativo'), (0, 'No negativo'), (2, 'No negativo'), (5, 'No negativo'), (-7, 'Negativo'), (8, 'No negativo')]

switch en Python (match-case desde 3.10)

mes = "febrero"
año = 2024

match mes:
    case "enero": dias = 31
    case "febrero":
        dias = 29 if (año % 4 == 0 and (año % 100 != 0 or año % 400 == 0)) else 28
    case "marzo": dias = 31
    case "abril": dias = 30
    case _: dias = None

print(f"{mes} de {año} tiene {dias} días")
## febrero de 2024 tiene 29 días

Bucles (for)

numeros = [10, 20, 30]
for numero in numeros:
    resultado = numero * 2
    print(f"Número: {numero} - Doble: {resultado}")
## Número: 10 - Doble: 20
## Número: 20 - Doble: 40
## Número: 30 - Doble: 60