Fundamentos del Control de Flujo

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

##Valos logicos

verdadero = True
falso = False

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

tambien_verdadero = True
tambien_falso = False

##Operaciones de comparacion

#Igualdad 
print(5 == 5)    #True   
## True
print(5 == 3)    #False   
## False
print("hola" == "hola")  #True
## True
print("Hola" == "hola")  #False
## False
#Desigualdad
print(5 != 3)   #True    
## True
print(5 != 5)   #False
## False
#Mayor que
print(10 > 5)   #True
## True
print(3 > 8)    #False
## False
#Menor que
print(2 < 7)    #True
## True
print(9 < 4)    #False
## False
 
#Mayor igual que
print(5 >= 5)   #True
## True
print(2 >= 6)   #False
## False
#Menor igual que
print(4 <= 4)   #True 
## True
print(8 <= 2)   #False
## False
# Comparaciones con variables
edad = 25
limite = 18
print(edad > limite)   #True
## True
print(edad == limite)  #False
## False
print(edad >= limite)  #True
## True
precio = 150.00
descuento_minimo = 100.00
print(precio >= descuento_minimo)  #True
## True

##Operadores logicos

# AND
print(True and True)   #True
## True
print(True and False)  #False
## False
print(False and False) #False
## False
edad = 25
tiene_licencia = True
puede_alquilar = (edad >= 21) and tiene_licencia
print(puede_alquilar)  # True
## True
# OR
print(True or True)    #True
## True
print(True or False)   #True
## True
print(False or False)  #False
## False
es_estudiante = False
es_senior = True
# ¿Tiene descuento? (si es estudiante O es senior)
tiene_descuento = es_estudiante or es_senior
print(tiene_descuento)  #True}
## True
# NOT
esta_lloviendo = False
salir_sin_paraguas = not esta_lloviendo
print(salir_sin_paraguas)  #True
## True

##Estructuras Condicionales

#if en python es lo mismo que en R
temperatura = 30
if temperatura > 25:
    print("Hace calor hoy")
## Hace calor hoy
edad = 18
if edad >= 18:
    print("Puedes votar en las elecciones")
    print("También puedes obtener una licencia de conducir")
## Puedes votar en las elecciones
## También puedes obtener una licencia de conducir

##Declaraciones else

#else en python es lo mismo que en R
edad = 16
if edad >= 18:
    print("Eres mayor de edad")
    print("Puedes votar")
else:
    print("Eres menor de edad")
    print("Aún no puedes votar")
## Eres menor de edad
## Aún no puedes votar

##Múltiples Condiciones con if-else if-else

nota = 85
if nota >= 90:
    calificacion, comentario = "A", "Excelente trabajo"
elif nota >= 80:
    calificacion, comentario = "B", "Muy buen trabajo"
elif nota >= 70:
    calificacion, comentario = "C", "Trabajo satisfactorio"
elif nota >= 60:
    calificacion, comentario = "D", "Necesita mejorar"
else:
    calificacion, comentario = "F", "Debe repetir el curso"

print("Calificación:", calificacion)
## Calificación: B
print(comentario)
## Muy buen trabajo

##Funcion switch

def dias_en_mes(mes, anio):
    mes = mes.lower()

    def es_bisiesto(y):
        return (y % 4 == 0) and (y % 100 != 0 or y % 400 == 0)

    dias = {
        "enero": 31,
        "febrero": 29 if es_bisiesto(anio) else 28,
        "marzo": 31,
        "abril": 30,
        "mayo": 31,
        "junio": 30,
        "julio": 31,
        "agosto": 31,
        "septiembre": 30,
        "octubre": 31,
        "noviembre": 30,
        "diciembre": 31}

    return dias.get(mes, None)

#Para su uso
mes = "febrero"
anio = 2024
dias_en = dias_en_mes(mes, anio)

if dias_en is not None:
    print(f"{mes} de {anio} tiene {dias_en} días")
else:
    print("Mes no válido")
## febrero de 2024 tiene 29 días

##Bucles for

``` python
# Ejemplo de seguimiento paso a paso
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
for i in range(1, 11):
    print(f"Hola persona {i}")
## Hola persona 1
## Hola persona 2
## Hola persona 3
## Hola persona 4
## Hola persona 5
## Hola persona 6
## Hola persona 7
## Hola persona 8
## Hola persona 9
## Hola persona 10
for i in range(1, 11):
    if i % 2 == 0:
        continue
    print(f"Número impar: {i}")
## Número impar: 1
## Número impar: 3
## Número impar: 5
## Número impar: 7
## Número impar: 9
for i in range(1, 4):
    print(f"Fila {i}")
    for j in range(1, 4):
        if i == 2 and j == 2:
            print("Saltando elemento (2,2)")
            continue
        print(f" Columna {j}")
## Fila 1
##  Columna 1
##  Columna 2
##  Columna 3
## Fila 2
##  Columna 1
## Saltando elemento (2,2)
##  Columna 3
## Fila 3
##  Columna 1
##  Columna 2
##  Columna 3

##Bucles while

contador = 1
while contador <= 3:
    print(f"Iteración: {contador}")
    contador += 1
## Iteración: 1
## Iteración: 2
## Iteración: 3

##Bucles repeat

contador = 1
while True:
    print(f"Iteración: {contador}")
    contador += 1
    if contador > 3:
        break
## Iteración: 1
## Iteración: 2
## Iteración: 3