2.1.2 Sintaxis Python

2.1.2 Sintaxis Python#

En Python, una variable es un contenedor para almacenar un valor. Piensa en ella como una caja etiquetada donde guardas datos.

Cuando asignas un valor a una variable, Python automáticamente entiende qué tipo de dato es.

Tipos Numéricos#

Se usan para números.

Enteros (int)#

Números completos, sin parte decimal.

# Un entero positivo
edad = 30

# Un entero negativo
deuda = -500

Flotantes (float) Números que tienen una parte decimal.

# Un número decimal
precio_producto = 149.95

# Otro número decimal
tasa_interes = 0.05


decimal=1.0

Cadenas (str) Se usan para guardar texto. El texto debe ir entre comillas simples (”) o dobles («)

# Una cadena con comillas dobles
nombre_usuario = "Sergio"

# Una cadena con comillas simples
mensaje = 'Bienvenido'

Booleanos (bool) Representan un valor de verdad. Solo pueden ser True (Verdadero) o False (Falso). Se usan para tomar decisiones.

# Un valor booleano verdadero
esta_activo = True

# Un valor booleano falso
tiene_permiso = False

Nulo (NoneType) Se usa para representar la ausencia de un valor. Su único valor es None.

# Una variable que intencionalmente no tiene valor
resultado_consulta = None
#mostrar valores por consola
print("Hola mundo, estoy programando")
Hola mundo, estoy programando
nombre="sergio"
estudiante="Programación para analitica de datos"
print("Hola mi nombre es", nombre, "Y estoy en el curso de ", estudiante)
Hola mi nombre es sergio Y estoy en el curso de  Programación para analitica de datos

Operaciones Matemáticas Básicas#

Python puede usarse como una potente calculadora. Puedes sumar, restar, multiplicar y dividir números directamente.

# Suma (+)
print(15 + 7)

# Resta (-)
print(20 - 8)

# Multiplicación (*)
print(5 * 6)

# División (/)
# Nota: La división normal (/) siempre devuelve un número decimal (float).
print(50 / 5)
print(7 / 2)
22
12
30
10.0
3.5

Guardando resultados en variables#

Para que nuestro programa sea útil, generalmente guardamos los números en variables (un espacio en la memoria con un nombre) y operamos con ellas.

a = 20
b = 4

suma = a + b
resta = a - b
multiplicacion = a * b
division = a / b

print("La suma es:", suma)
print("La resta es:", resta)
print("La multiplicación es:", multiplicacion)
print("La división es:", division)
La suma es: 24
La resta es: 16
La multiplicación es: 80
La división es: 5.0

Operaciones Avanzadas#

Existen otras operaciones muy comunes en programación:

  • División Entera (//): Realiza la división pero descarta (elimina) la parte decimal.

  • Módulo o Residuo (%): Devuelve el resto que sobra de una división entera.

  • Potencia (**): Eleva un número a la potencia de otro (exponente).

# División Entera (//)
# Compara 7 / 2 (que dio 3.5) con 7 // 2
print("División Entera:", 7 // 2)
print("División Entera:", 10 // 3)

# Módulo o Residuo (%)
# 7 dividido 2 es 3, con 1 de residuo.
print("Módulo:", 7 % 2)

# 10 dividido 3 es 3, con 1 de residuo.
print("Módulo:", 10 % 3)

# El módulo es muy útil para saber si un número es par (residuo 0) o impar (residuo 1)
print("¿Es 10 par?", 10 % 2)
print("¿Es 9 par?", 9 % 2)

# Potencia (**)
print("Potencia (5^2):", 5 ** 2)  # 5 elevado a la 2 (5x5)
print("Potencia (2^3):", 2 ** 3)  # 2 elevado a la 3 (2x2x2)
División Entera: 3
División Entera: 3
Módulo: 1
Módulo: 1
¿Es 10 par? 0
¿Es 9 par? 1
Potencia (5^2): 25
Potencia (2^3): 8

Orden de Operaciones (PEMDAS)#

Python respeta el orden matemático estándar para resolver las operaciones, a veces recordado como PEMDAS:

  1. Paréntesis ()

  2. Exponentes **

  3. Multiplicación * y División / (junto con // y %)

  4. Adición + y Sustracción -

Si tienes dudas sobre el orden, ¡usa paréntesis! Hacen que el código sea más fácil de leer.

# Sin paréntesis
# Python primero hace 5 * 3, y luego suma 10
operacion_1 = 10 + 5 * 3
print("Sin paréntesis (10 + 5 * 3):", operacion_1)

# Con paréntesis
# Python primero resuelve el (10 + 5), y luego multiplica por 3
operacion_2 = (10 + 5) * 3
print("Con paréntesis ((10 + 5) * 3):", operacion_2)

# Ejemplo complejo
# 1. Paréntesis: (5 + 1) = 6
# 2. Exponente: (2**2) = 4
# 3. Multiplicación/División: (4*6) = 24  y  (10 / 4) = 2.5
# 4. Resta: 24 - 2.5 = 21.5
resultado_complejo = 4 * (5 + 1) - 10 / (2 ** 2)
print("Resultado complejo:", resultado_complejo)
Sin paréntesis (10 + 5 * 3): 25
Con paréntesis ((10 + 5) * 3): 45
Resultado complejo: 21.5

Condicionales (if, elif, else)#

Los condicionales le permiten a tu programa tomar decisiones. El código se ejecuta (o no) dependiendo de si una condición es verdadera (True) o falsa (False).

Operadores de Comparación#

Para crear condiciones, usamos operadores de comparación. Los más importantes son:

  • == : ¿Es igual a?

  • != : ¿Es diferente de?

  • > : ¿Es mayor que?

  • < : ¿Es menor que?

  • >= : ¿Es mayor o igual que?

  • <= : ¿Es menor o igual que?

Estos operadores siempre devuelven un valor Booleano (True o False).

edad = 18
nota = 75

# Ejemplos de comparaciones
print("¿La edad es igual a 18?", edad == 18)
print("¿La nota es diferente de 80?", nota != 80)
print("¿La edad es mayor que 20?", edad > 20)
print("¿La nota es menor o igual a 75?", nota <= 75)
¿La edad es igual a 18? True
¿La nota es diferente de 80? True
¿La edad es mayor que 20? False
¿La nota es menor o igual a 75? True

1. La declaración if (Si…)#

El if es la estructura más simple. Si la condición es True, el código indentado (con espacio) debajo de él se ejecuta. Si es False, se salta.

¡Importante! Python usa la indentación (el espacio al inicio de la línea) para saber qué código pertenece al if.

edad_usuario = 17

# Si el usuario es mayor o igual a 18, se ejecuta el print.
if edad_usuario >= 18:
 print("Eres mayor de edad, puedes entrar.")

print("Esta línea se ejecuta siempre, porque no está indentada.")
Esta línea se ejecuta siempre, porque no está indentada.

2. La declaración else (Si no…)#

El else se usa para ejecutar un bloque de código si la condición del if fue False. No lleva condición propia, simplemente captura todos los demás casos.

nota_estudiante = 78

# Si la nota es 70 o más, aprueba.
if nota_estudiante >= 70:
  print("¡Felicidades! Aprobaste.")
# De lo contrario (si la nota NO fue >= 70), reprueba.
else:
  print("Lo sentimos, no aprobaste. Sigue intentando.")
¡Felicidades! Aprobaste.

3. La declaración elif (Si no, si…)#

El elif (contracción de «else if») nos permite revisar múltiples condiciones en orden.

Python revisa el if. Si es False, revisa el primer elif. Si es False, revisa el siguiente elif, y así sucesivamente. Si todos son False, ejecuta el else (si existe).

numero = -5

if numero > 0:
    print("El número es positivo.")
elif numero < 0:
    print("El número es negativo.")
else:
    print("El número es cero.")
El número es negativo.
# Ejemplo de un menú simple
opcion = "A"

if opcion == "A":
    print("Seleccionaste la Opción A.")
elif opcion == "B":
    print("Seleccionaste la Opción B.")
elif opcion == "C":
    print("Seleccionaste la Opción C.")
elif opcion =="D":
    print("Seleccionaste la Opción D.")
else:
    print("Opción no válida.")
Seleccionaste la Opción A.

Operadores Lógicos (and, or, not)#

A veces necesitas revisar más de una condición a la vez en un if. Para esto usamos los operadores lógicos, que nos permiten combinar expresiones booleanas (Verdadero/Falso).

1. and (Y)#

El operador and devuelve True solamente si ambas condiciones son True. Si una sola (o ambas) es False, el resultado total es False.

  • True and True -> True

  • True and False -> False

  • False and True -> False

  • False and False -> False

# Ejemplo de 'and': ¿Es un adulto en edad de trabajar?
edad = 25
tiene_trabajo = False

# Ambas condiciones deben ser verdaderas para que se ejecute el 'if'
if edad >= 18 and edad <= 65: #& PARA UNIR CONDICIONES TAMBIEN SE USA EL & Y TAMBIÉN ES UN AND
    print("Está en el rango de edad laboral.")
else:
    print("No está en el rango de edad laboral.")

# Ejemplo con dos variables booleanas
if tiene_trabajo and edad >= 18:
    print("Es un adulto que trabaja.")
elif tiene_trabajo and edad < 18:
    print("Es un menor que trabaja.")
elif not tiene_trabajo and edad >=18:
  print("es un mayor que no tiene trabajo")
Está en el rango de edad laboral.
es un mayor que no tiene trabajo

2. or (O)#

El operador or devuelve True si al menos una de las condiciones es True. Solo devuelve False si ambas son False.

  • True or True -> True

  • True or False -> True

  • False or True -> True

  • False or False -> False

# Ejemplo de 'or': ¿Puede entrar gratis al parque?
es_estudiante = False
es_adulto_mayor = True

# Solo una de las dos necesita ser verdadera
if es_estudiante or es_adulto_mayor:
    print("Puede entrar gratis.")
else:
    print("Debe pagar la entrada.")

# Ejemplo donde ambas son falsas
es_estudiante = False
es_adulto_mayor = False

if es_estudiante or es_adulto_mayor:
    print("Puede entrar gratis.")
else:
    print("Debe pagar la entrada.")
Puede entrar gratis.
Debe pagar la entrada.

3. not (No)#

El operador not es más simple: invierte el valor booleano. True se convierte en False y False se convierte en True.

Es útil para verificar si algo no es verdadero.

  • not True -> False

  • not False -> True

# Ejemplo de 'not':
esta_lloviendo = False

# 'not esta_lloviendo' se traduce a 'not False', que es True.
if not esta_lloviendo:
    print("El día está soleado, ¡vamos a caminar!")
else:
    print("Está lloviendo, mejor nos quedamos en casa.")


# Otro ejemplo
puerta_cerrada = True

if not puerta_cerrada:
    print("La puerta está abierta.")
else:
    print("La puerta está cerrada.")
El día está soleado, ¡vamos a caminar!
La puerta está cerrada.

4. Combinando Operadores#

Puedes usar múltiples operadores juntos. Al igual que en matemáticas, puedes usar paréntesis () para agrupar y definir el orden en que se revisan las condiciones.

# Ejemplo de combinación: ¿Puede conducir un vehículo?
edad_conductor = 19
tiene_licencia = True
esta_sobrio = True

# ( (Debe ser >= 18 Y tener licencia) Y (debe estar sobrio) )
if (edad_conductor >= 18 and tiene_licencia) and esta_sobrio:
    #true and true
    #True
    print("Puede conducir.")
else:
    print("No cumple los requisitos para conducir.")


# Ejemplo con 'or' y 'and'
# ¿Aprueba el curso? Necesita nota >= 70 Y (asistencia >= 80 O presentar excusa)
nota_final = 85
asistencia = 75
presento_excusa = True

if nota_final >= 70 and (asistencia >= 80 or presento_excusa):
    print("Felicidades, aprobaste el curso.")
else:
    print("No aprobaste el curso.")
Puede conducir.
Felicidades, aprobaste el curso.

Bucles o Ciclos (while y for)#

Los bucles nos permiten repetir un bloque de código varias veces. Hay dos tipos principales en Python: while y for.

1. El Bucle while (Mientras)#

El bucle while repite un bloque de código mientras una condición específica sea True. Es como un if que se ejecuta una y otra vez.

¡Importante! Necesitas asegurarte de que la condición en algún momento se vuelva False, de lo contrario, crearás un bucle infinito. Generalmente, esto se hace con una variable «contador».

# Usaremos un contador para controlar el bucle
contador = 0

# Mientras el contador sea menor que 5, ejecuta el código
while contador < 5:
    print("El contador es:", contador)
    # ¡Línea crucial! Incrementamos el contador.
    # Si olvidas esto, contador siempre será 0 y el bucle nunca terminará.
    contador = contador + 1

print("Fin del bucle while.")
El contador es: 0
El contador es: 1
El contador es: 2
El contador es: 3
El contador es: 4
Fin del bucle while.
Ingrese el codigo5647
Acceso denegado
Ingrese el codigo7894
Acceso denegado
Ingrese el codigo1234
Acceso denegado
Bienvenido

2. El Bucle for (Para)#

El bucle for se usa para iterar (recorrer) una secuencia. Para empezar, la forma más común de usarlo es para repetir algo un número exacto de veces usando la función range().

Usando range()#

La función range() genera una secuencia de números que el for puede recorrer.

  • range(5) genera una secuencia de números del 0 al 4 (5 números en total).

  • range(inicio, fin) genera números desde inicio hasta fin - 1.

  • range(inicio, fin, paso) genera números desde inicio hasta fin - 1, saltando de paso en paso.

# range(5) genera los números 0, 1, 2, 3, 4
# La variable 'i' (de "iteración") tomará cada uno de esos valores
print("Bucle for con range(5):")
for i in range(5):
    print(i)

# range() también puede recibir un inicio y un fin: range(inicio, fin)
# El 'fin' no se incluye.
print("\nBucle for con range(2, 6):")
for numero in range(2, 6): # Genera 2, 3, 4, 5
    print(numero)

# También puedes agregar un "paso" (step)
# range(inicio, fin, paso)
print("\nBucle for contando de 2 en 2 (del 0 al 10):")
for num in range(0, 11, 2): # Genera 0, 2, 4, 6, 8, 10
    print(num)
Bucle for con range(5):
0
1
2
3
4

Bucle for con range(2, 6):
2
3
4
5

Bucle for contando de 2 en 2 (del 0 al 10):
0
2
4
6
8
10

3. Controlando el Bucle: break y continue#

A veces quieres alterar el comportamiento normal de un bucle.

  • break (Romper): Detiene y sale del bucle inmediatamente.

  • continue (Continuar): Salta el resto del código de la iteración actual y pasa a la siguiente.

# Ejemplo de 'break'
# Buscar el número 7 en un rango del 0 al 9
print("Ejemplo de break:")
for num in range(10):
    if num == 7:
        print("¡Encontré el 7! Saliendo del bucle...")
        break # Termina el bucle
    print(num)

# Ejemplo de 'continue'
# Imprimir solo los números pares de un rango
print("\nEjemplo de continue:")
for num in range(10):
    # Si el número es impar (el residuo de dividir por 2 es 1)...
    if num % 2 == 1:
      continue # ...salta esta iteración y no ejecutes el print

    # Este print solo se ejecuta si el 'continue' no se activó
    print(num)
Ejemplo de break:
0
1
2
3
4
5
6
¡Encontré el 7! Saliendo del bucle...

Ejemplo de continue:
0
2
4
6
8
for num in range(100):
  if num % 2 == 1:
    print("El ",num," es impar ")
    if num %3==0:
      print("y multiplo de 3")
      if num %9==0:
        print(" y multiplo de 9")
El  1  es impar 
El  3  es impar 
y multiplo de 3
El  5  es impar 
El  7  es impar 
El  9  es impar 
y multiplo de 3
 y multiplo de 9
El  11  es impar 
El  13  es impar 
El  15  es impar 
y multiplo de 3
El  17  es impar 
El  19  es impar 
El  21  es impar 
y multiplo de 3
El  23  es impar 
El  25  es impar 
El  27  es impar 
y multiplo de 3
 y multiplo de 9
El  29  es impar 
El  31  es impar 
El  33  es impar 
y multiplo de 3
El  35  es impar 
El  37  es impar 
El  39  es impar 
y multiplo de 3
El  41  es impar 
El  43  es impar 
El  45  es impar 
y multiplo de 3
 y multiplo de 9
El  47  es impar 
El  49  es impar 
El  51  es impar 
y multiplo de 3
El  53  es impar 
El  55  es impar 
El  57  es impar 
y multiplo de 3
El  59  es impar 
El  61  es impar 
El  63  es impar 
y multiplo de 3
 y multiplo de 9
El  65  es impar 
El  67  es impar 
El  69  es impar 
y multiplo de 3
El  71  es impar 
El  73  es impar 
El  75  es impar 
y multiplo de 3
El  77  es impar 
El  79  es impar 
El  81  es impar 
y multiplo de 3
 y multiplo de 9
El  83  es impar 
El  85  es impar 
El  87  es impar 
y multiplo de 3
El  89  es impar 
El  91  es impar 
El  93  es impar 
y multiplo de 3
El  95  es impar 
El  97  es impar 
El  99  es impar 
y multiplo de 3
 y multiplo de 9

Clasificación clínica: Escribe un programa que reciba la temperatura corporal de un paciente ingresada por el usuario e imprima su estado: hipotermia (menor a 35°C), temperatura normal (35°C - 37.5°C) o fiebre (mayor a 37.5°C).

Monitoreo de presión: Desarrolla un sistema de alerta para la presión de las llantas de una motocicleta. Si la presión está por debajo de 28 psi, el programa debe indicar «Presión baja». Si está entre 28 y 32 psi, indica «Presión óptima». Si supera los 32 psi, advierte «Presión alta».

Descuentos en facturación: Crea un programa que calcule el total a pagar en la cuenta de un restaurante. Si la cuenta supera los $100.000, aplica un 10% de descuento. Adicionalmente, si el usuario indica mediante una variable booleana que es «cliente frecuente», aplica un 5% extra sobre el valor que ya tiene el primer descuento.

Categorización de datos: Un algoritmo debe etiquetar un tumor según su tamaño en centímetros. Si mide menos de 2 cm, se clasifica como «T1». Si mide entre 2 cm y 5 cm, es «T2». Si mide más de 5 cm, es «T3». Escribe el código que solicite la medida y muestre la etiqueta correspondiente.

Año bisiesto: Escribe un programa que solicite un año al usuario y determine si es bisiesto. La regla matemática es: un año es bisiesto si es divisible entre 4, excepto si es divisible entre 100, a menos que también sea divisible entre 400.

Temperatura=int(input("Ingrese su temperatura: "))
if Temperatura<35:
    print("Tienes hipotermia, ponte un saco")
elif Temperatura>=35 and Temperatura <=37:
    print("Estás melo")
else:
    print("Estas caliente")
tumor=int(input("Ingrese el tamaño de su tumor en cm"))
if tumor<2:
    print("T1")
elif tumor >=2 and tumor<=5:
    print("T2")
elif tumor>5:
    print("T3")
Ano=int(input("Ingrese un año: "))
if Ano%4==0 and Ano%100!=0:
    print("El año ",Ano, " es bisiesto")
else:
    print("El año ",Ano, " no es bisiesto")

Desarrolle una calculadora

Desarrolle un menu de una tienda

encender=True

while encender==True:
    print("""Señor usuario bienvenido al mejor sistema de calculadora del mundo 
    Que Operación desea realizar? 
    Peresione el botón que necesite 
    1. para suma 
    2. Resta 
    3. Multiplicación 
    4. Division 
    5. para salir      """)
    opcion=int(input("ingrese la opcion: "))
    if opcion==1:
      suma=True
      while suma==True:
        numero1=int(input("Desea ingresar un numero 1 para si 2 para no"))
        if numero1==1:
          numero1=float(input("Ingrese un numero "))
          total=numero1+total
        if numero1==2:
          print("Su suma fue igual a ", total)
          break
        else:
          print("opcion incorrecta")
        print("su suma es" ,numero1+numero2 )
    elif opcion==2: 
      cantidad=int(input("Cuantos numeros desea restar"))
      for i in range(cantidad):
        numero1=float(input("Ingrese el numero ", i+1,": "))
        resta=resta-numero1
      print("Su resta es: ", resta)
    elif opcion==3: 
        numero1=float(input("Ingrese un numero "))
        numero2=float(input("Ingrese un numero "))
        print("su multiplicacion es" ,numero1*numero2 )
    elif opcion==4: 
        numero1=float(input("Ingrese un numero "))
        numero2=float(input("Ingrese un numero "))
        print("su suma es" ,numero1/numero2 )
    elif opcion==5: 
        break
    else:
        print("opcion incorrecta")
Señor usuario bienvenido al mejor sistema de calculadora del mundo 
    Que Operación desea realizar? 
    Peresione el botón que necesite 
    1. para suma 
    2. Resta 
    3. Multiplicación 
    4. Division 
    5. para salir      

Listas (Colecciones de Datos)#

En Python, una lista (en inglés, list) es un contenedor que te permite almacenar múltiples valores en una sola variable. Las listas son una de las estructuras de datos más fundamentales.

  • Se definen usando corchetes [].

  • Los elementos se separan por comas ,.

  • Pueden contener diferentes tipos de datos (números, strings, etc.), aunque lo más común es que todos sean del mismo tipo.

# Una lista vacía
lista_vacia = []
print(lista_vacia)

# Una lista de números
calificaciones = [10, 9, 7, 8, 10]
print(calificaciones)

# Una lista de textos (strings)
compras = ["Leche", "Huevos", "Pan", "Manzanas"]
print(compras[-4])

# Una lista mixta (es posible, pero menos común)
mixta = [1, "Hola", True, 3.14]
print(mixta)
[]
[10, 9, 7, 8, 10]
Leche
[1, 'Hola', True, 3.14]

Accediendo a Elementos (Índices)#

Puedes acceder a un elemento específico de la lista usando su índice (su posición).

¡MUY IMPORTANTE! En Python, los índices empiezan a contar desde 0.

  • El primer elemento está en el índice 0.

  • El segundo elemento está en el índice 1.

  • …y así sucesivamente.

También puedes usar índices negativos. [-1] siempre te dará el último elemento.

frutas = ["Manzana", "Banana", "Cereza", "Naranja"]
# Índices:   0          1         2         3

# Acceder al primer elemento (índice 0)
print("Primera fruta:", frutas[0])

# Acceder al tercer elemento (índice 2)
print("Tercera fruta:", frutas[2])

# Acceder al último elemento (índice -1)
print("Última fruta:", frutas[-1])

# Acceder al penúltimo elemento (índice -2)
print("Penúltima fruta:", frutas[-2])
Primera fruta: Manzana
Tercera fruta: Cereza
Última fruta: Naranja
Penúltima fruta: Cereza

Modificando Elementos#

Las listas son mutables, lo que significa que puedes cambiar sus elementos después de haberlas creado. Solo tienes que seleccionar el índice y asignarle un nuevo valor.

colores = ["Rojo", "Verde", "Azul"]
print("Lista original:", colores)

# Cambiemos "Verde" (índice 1) por "Amarillo"
colores[1] = "Amarillo"

print("Lista modificada:", colores)
Lista original: ['Rojo', 'Verde', 'Azul']
Lista modificada: ['Rojo', 'Amarillo', 'Azul']

Añadiendo y Eliminando Elementos#

Las operaciones más comunes son añadir al final y eliminar elementos.

  • .append(elemento): Añade un elemento al final de la lista.

  • .pop(): Elimina y devuelve el último elemento de la lista.

invitados = ["Ana", "Beto"]
print("Invitados:", invitados)

# Añadimos a Carlos al final
invitados.append("Carlos")
print("Añadimos a Carlos:", invitados)

# Añadimos a Diana al final
invitados.append("Diana")
print("Añadimos a Diana:", invitados)

# Se va el último que llegó (Diana)
ultimo_en_irse = invitados.pop()
print("Se fue:", ultimo_en_irse)
print("Quedan:", invitados)
Invitados: ['Ana', 'Beto']
Añadimos a Carlos: ['Ana', 'Beto', 'Carlos']
Añadimos a Diana: ['Ana', 'Beto', 'Carlos', 'Diana']
Se fue: Diana
Quedan: ['Ana', 'Beto', 'Carlos']

Listas y Bucles for (¡La combinación perfecta!)#

Ahora sí, el bucle for es la herramienta ideal para trabajar con listas. Puedes usarlo para «recorrer» la lista y hacer algo con cada elemento.

numeros = ["Hola", 1.5, True, 3.5, 50]
suma = 0

# 'num' tomará el valor de cada elemento de la lista, uno por uno
for num in numeros:
    print(num)
    #suma = suma + num

print("La suma total es:", suma)
Hola
1.5
True
3.5
50
La suma total es: 0
# Ejemplo: Poner en mayúsculas una lista de nombres
nombres = ["juan", "maría", "pedro"]
nombres_mayuscula = [] # Creamos una lista vacía

for nombre in nombres:
    nombres_mayuscula.append( nombre.upper() ) # .upper() es un método de strings

print("Nombres originales:", nombres)
print("Nombres en mayúsculas:", nombres_mayuscula)
Nombres originales: ['juan', 'maría', 'pedro']
Nombres en mayúsculas: ['JUAN', 'MARÍA', 'PEDRO']

Funciones Útiles para Listas#

  • len(lista): Devuelve el número de elementos (la longitud) de la lista.

  • elemento in lista: Devuelve True si el elemento existe en la lista, o False si no.

mi_lista = [5, 10, 15, 20]

# Longitud de la lista
print("Longitud:", len(mi_lista)) # Tiene 4 elementos

# Revisar si un elemento existe (muy útil con 'if')
print("¿Está el 10 en la lista?", 10 in mi_lista)
print("¿Está el 99 en la lista?", 99 in mi_lista)

# Usándolo en un condicional
if 15 in mi_lista:
    print("Sí, el 15 está en la colección.")
Longitud: 4
¿Está el 10 en la lista? True
¿Está el 99 en la lista? False
Sí, el 15 está en la colección.
Matriz=[["Producto", "Cantidad","Valor"],
        ["Arroz", 1,2000],
        ["Frijoles",3,7000]]

Matriz.append(["Pan",5,1000])

for i in range(len(Matriz)):
  if "Frijoles" in Matriz[i][0]:
      print("Sí hay frijoles.")

Matriz[2][1]=Matriz[2][1]+5
for i in range(len(Matriz)):
  print(Matriz[i])

Ejercicios de Práctica#

Ejercicio 1: Filtrado de Números Pares#

Dada una lista de números, crea una nueva lista que contenga únicamente los números pares de la lista original.

Pistas:

  1. Crea una lista vacía llamada pares.

  2. Usa un bucle for para recorrer la lista numeros_mezclados.

  3. Dentro del bucle, usa un if para verificar si el número es par. (Recuerda el operador módulo %).

  4. Si el número es par, añádelo a la lista pares usando .append().

# Lista de entrada
numeros_mezclados = [1, 4, 7, 10, 13, 16, 18, 21, 22]

# --- Escribe tu código aquí ---
pares=[]
for numero in numeros_mezclados:
  if numero % 2==0:
    pares.append(numero)
# --- Fin de tu código ---

print("Lista original:", numeros_mezclados)
print("Números pares:", pares)
Lista original: [1, 4, 7, 10, 13, 16, 18, 21, 22]
Números pares: [4, 10, 16, 18, 22]

Ejercicio 2: Contador de Vocales#

Dada una palabra (un string), cuenta cuántas vocales (a, e, i, o, u) contiene.

Notas:

  • Recuerda que puedes usar un bucle for para recorrer un string.

  • Este ejercicio no distingue entre mayúsculas y minúsculas (puedes usar el método .lower() en el string para simplificar).

Pistas:

  1. Define un contador y ponlo en 0.

  2. Define el string palabra.

  3. Usa un bucle for para recorrer cada letra de la palabra. (Es útil convertir la palabra a minúsculas antes del bucle).

  4. Dentro del bucle, usa un if para verificar si la letra es “a”, “e”, “i”, “o”, “u”. (Puedes usar el operador or o el operador in con una lista/string de vocales).

  5. Si es una vocal, incrementa el contador.

palabra = "Aguapanela" # Debería encontrar 5 vocales
contador_vocales = 0
vocales = "aeiou"

# --- Escribe tu código aquí ---
palabra_minuscula=palabra.lower()

for letra in palabra_minuscula:
  if letra in vocales:
    contador_vocales+=1
# --- Fin de tu código ---

print("La palabra es:", palabra)
print("Número de vocales:", contador_vocales)
La palabra es: Aguapanela
Número de vocales: 6

Funciones#

Una función es un bloque de código reutilizable que realiza una tarea específica. Piensa en ellas como «mini-programas» que puedes definir una vez y «llamar» (ejecutar) cada vez que las necesites.

Usar funciones nos ayuda a:

  1. No Repetir Código (DRY - Don’t Repeat Yourself): Si haces la misma tarea 5 veces, es mejor escribir una función.

  2. Organizar: Hacen que el código sea mucho más limpio y fácil de leer.

Se definen con la palabra clave def, un nombre, paréntesis () y dos puntos :. El código dentro de la función debe estar indentado.

1. La Función más simple (Definir y Llamar)#

Esta es una función simple que no recibe ni devuelve nada; solo realiza una acción (imprimir un saludo).

# 1. Definimos la función
def saludar():
    print("¡Hola!")
    print("Bienvenido a este notebook de Python.")

# 2. La llamamos para que se ejecute
print("--- Antes de llamar la función ---")
saludar()
print("--- Después de llamar la función ---")

# La ventaja es que la podemos reutilizar (llamar) cuantas veces queramos
saludar()
saludar()
saludar()
saludar()
saludar()
--- Antes de llamar la función ---
¡Hola!
Bienvenido a este notebook de Python.
--- Después de llamar la función ---
¡Hola!
Bienvenido a este notebook de Python.
¡Hola!
Bienvenido a este notebook de Python.
¡Hola!
Bienvenido a este notebook de Python.
¡Hola!
Bienvenido a este notebook de Python.
¡Hola!
Bienvenido a este notebook de Python.

2. Parámetros (Inputs)#

La mayoría de las veces, queremos que nuestra función trabaje con información que le pasamos. Estos «inputs» se llaman parámetros (o argumentos).

Se definen como variables dentro de los paréntesis ().

# 'nombre' es un parámetro. Actúa como una variable
# que solo existe dentro de la función.
def saludar_a(nombre,apellido="gomez"):
    print("¡Hola, ", nombre, apellido, "!")
    print("Es un gusto tenerte aquí.")

# Ahora, al llamar la función, DEBEMOS pasarle el dato (argumento)
saludar_a("Ana")
saludar_a("Carlos")
nombre="Juan"
saludar_a(nombre)
otra_cosa="Lopez"
saludar_a("juan")

saludar_a(nombre="Jesús",apellido="miranda")
¡Hola,  Ana gomez !
Es un gusto tenerte aquí.
¡Hola,  Carlos gomez !
Es un gusto tenerte aquí.
¡Hola,  Juan gomez !
Es un gusto tenerte aquí.
¡Hola,  juan gomez !
Es un gusto tenerte aquí.
¡Hola,  Jesús miranda !
Es un gusto tenerte aquí.

3. El Valor de Retorno (Outputs)#

Hasta ahora, nuestras funciones solo imprimen en pantalla. Pero, ¿qué pasa si queremos usar el resultado de la función en otra parte de nuestro código?

Para esto usamos la palabra clave return. return devuelve un valor y termina la ejecución de la función.

# Esta función NO imprime nada. Solo calcula y devuelve el producto.
def multiplicar(a, b):
    return a * b

# Para usar el valor, debemos guardarlo en una variable
resultado = multiplicar(10, 5)

print("El resultado de la multiplicación es:", resultado)

# Como 'resultado' es un número, podemos usarlo en más operaciones
print("El doble del resultado es:", resultado * 2)

# También podemos usar la función directamente
if multiplicar(10, 2) > 15:
    print("El producto es mayor que 15.")
El resultado de la multiplicación es: 50
El doble del resultado es: 100
El producto es mayor que 15.

4. Ejemplo Completo: Funciones con Lógica#

Las funciones son poderosas porque pueden contener toda la lógica que ya vimos (condicionales, bucles, listas).

Vamos a convertir nuestro Ejercicio 1 (filtrar pares) en una función reutilizable.

# Definimos una función que recibe UNA lista como parámetro
def filtrar_numeros_pares(lista_numeros):
    pares = [] # Lista vacía para guardar los resultados

    # Usamos el bucle 'for' dentro de la función
    for numero in lista_numeros:

        # Usamos el 'if' dentro de la función
        if numero % 2 == 0:
            pares.append(numero)

    # Al final del bucle, devolvemos la lista de pares
    return pares

# --- Ahora podemos USAR la función ---

mi_lista_1 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
mi_lista_2 = [11, 13, 15, 20, 22, 31]

# Llamamos la función con la primera lista
pares_1 = filtrar_numeros_pares(mi_lista_1)
print("Pares de la Lista 1:", pares_1)

# La reutilizamos con la segunda lista
pares_2 = filtrar_numeros_pares(mi_lista_2)
print("Pares de la Lista 2:", pares_2)
Pares de la Lista 1: [2, 4, 6, 8, 10]
Pares de la Lista 2: [20, 22]
mi_lista_3 = [10,11,12,13,14,15,16,17,18]

# Llamamos la función con la primera lista
pares_3 = filtrar_numeros_pares(mi_lista_3)
print("Pares de la Lista 3:", pares_3)
Pares de la Lista 3: [10, 12, 14, 16, 18]

Inputs del Usuario (Función input())#

A veces queremos que nuestro programa sea interactivo y le pida datos al usuario. Para esto usamos la función input().

input() detiene la ejecución del programa, muestra un mensaje (opcional) y espera a que el usuario escriba algo y presione «Enter».

¡Lo más Importante!#

La función input() SIEMPRE devuelve el dato como un string (texto), incluso si el usuario escribe un número.

# El texto dentro de input() es el "prompt" o mensaje que ve el usuario.
nombre = input("Por favor, escribe tu nombre: ")

print("¡Hola, " + nombre + "!")
print(f"El tipo de dato de 'nombre' es: {type(nombre)}")
Por favor, escribe tu nombre: 58
¡Hola, 58!
El tipo de dato de 'nombre' es: <class 'str'>

Convirtiendo el Input a Números#

Como input() siempre devuelve un string, si queremos usar ese dato para hacer operaciones matemáticas, ¡nos dará un error o un resultado inesperado!

Para solucionarlo, debemos convertir el string a un número usando int() (para enteros) o float() (para decimales).

# Ejemplo de lo que NO funciona:
edad_string = input("¿Cuántos años tienes? ")

# Esto dará un error, porque no puedes sumar un número (10) a un string (p.ej. "25")
print(edad_string * 10)
¿Cuántos años tienes? 12
12121212121212121212
# La forma CORRECTA:
# 1. Obtenemos el input (un string)
# 2. Lo convertimos a entero (int)
# 3. Lo guardamos en la variable

edad_numero = int( input("¿Cuántos años tienes? ") )

edad_futura = edad_numero + 10
print(f"En 10 años, tendrás {edad_futura} años.")
¿Cuántos años tienes? 50
En 10 años, tendrás 60 años.
# Lo mismo aplica para decimales, pero usamos float()

altura = float( input("¿Cuánto mides en metros (ej. 1.75)? ") )

print(f"Tu altura es: {altura} metros.")
print(f"El tipo de dato de 'altura' es: {type(altura)}")
¿Cuánto mides en metros (ej. 1.75)? 1.68
Tu altura es: 1.68 metros.
El tipo de dato de 'altura' es: <class 'float'>

Ejemplo Práctico: Uniendo todo#

Vamos a pedir un nombre y un número para crear un programa simple.

# Pedimos el nombre (se queda como string)
nombre_usuario = str(input("Dime tu nombre: "))

# Pedimos el año de nacimiento (lo convertimos a int)
año_nacimiento = int( input("Dime tu año de nacimiento: ") )

# Calculamos la edad (aproximada)
año_actual = 2025 # Puedes cambiar este año
edad = año_actual - año_nacimiento

# Mostramos el resultado
print(f"Hola {nombre_usuario}, tienes (o cumplirás) {edad} años en {año_actual}.")
Dime tu nombre: Juan
Dime tu año de nacimiento: 1950
Hola Juan, tienes (o cumplirás) 75 años en 2025.

Manejo de Errores (try / except)#

Cuando programamos, no todo sale bien. A veces el usuario introduce datos incorrectos, un archivo no se encuentra o intentamos dividir por cero.

Cuando Python encuentra un error (llamado Excepción), el programa se detiene (se «cae») y muestra un mensaje de error.

# Este código se CAERÁ si escribes una letra en lugar de un número

numero = int( input("Escribe un NÚMERO: ") )
print(f"El doble de tu número es: {numero * 2}")

# Si ejecutas esto y escribes "hola", verás un "ValueError"
Escribe un NÚMERO: 120.2
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
/tmp/ipython-input-1451165603.py in <cell line: 0>()
      1 # Este código se CAERÁ si escribes una letra en lugar de un número
      2 
----> 3 numero = int( input("Escribe un NÚMERO: ") )
      4 print(f"El doble de tu número es: {numero * 2}")
      5 

ValueError: invalid literal for int() with base 10: '120.2'

La Estructura try ... except#

Para evitar que el programa se caiga, podemos «intentar» (try) ejecutar el código riesgoso. Si falla, podemos «capturar» (except) la excepción y ejecutar un código alternativo (como mostrar un mensaje amigable).

  • try:: Aquí va el código que podría fallar.

  • except:: Este bloque solo se ejecuta si el try falla.

# La forma correcta de manejar el error anterior

try:
    # 1. Intentamos convertir el input a entero
    numero = int( input("Escribe un NÚMERO: ") )
    print(f"El doble de tu número es: {numero * 2}")

except ValueError:
    # 2. Si ocurre un 'ValueError' (porque escribieron "hola")
    #    este bloque se ejecuta en lugar de caerse.
    print("Error: Eso no es un número válido. Intenta de nuevo.")

print("El programa continúa después del error.")
Escribe un NÚMERO: 12.5
Error: Eso no es un número válido. Intenta de nuevo.
El programa continúa después del error.

Poniendo todo junto: Un Bucle while para Forzar un Input Correcto#

El uso más común de try/except para principiantes es forzar al usuario a que ingrese el dato correcto usando un bucle while.

La lógica es:

  1. Crear un bucle infinito (while True).

  2. try (intentar) pedir el input y convertirlo.

  3. Si funciona (no hay error), usamos break para salir del bucle.

  4. except (si falla), mostramos un error y el bucle vuelve a empezar.

# Este bucle no se detendrá hasta que ingreses un número entero válido.
while True:

    try:
        edad = int( input("Por favor, ingresa tu edad: ") )

        # Si la línea de arriba funcionó (no hubo error),
        # esta línea se ejecuta y rompe el bucle.
        break

    except ValueError:

        # Si la línea 'int(input())' falló, se ejecuta esto
        # y el 'break' nunca se alcanza. El bucle se repite.
        print("¡Entrada inválida! Debes ingresar un número entero (ej. 30).")

# Cuando el bucle finalmente se rompe, esta línea se ejecuta
print(f"Perfecto. Tu edad es {edad} años.")
Por favor, ingresa tu edad: TRECE
¡Entrada inválida! Debes ingresar un número entero (ej. 30).
Por favor, ingresa tu edad: 13.3
¡Entrada inválida! Debes ingresar un número entero (ej. 30).
Por favor, ingresa tu edad: 13
Perfecto. Tu edad es 13 años.

Ejercicio 1: Adivina el Número#

Objetivo: Combinar while, input(), try/except y if/elif/else.

Crea un juego donde el programa «piensa» en un número secreto (puedes definirlo tú, ej. numero_secreto = 42). El programa debe:

  1. Pedir al usuario que adivine el número.

  2. Usar un bucle while True para que el usuario siga intentando.

  3. Usar try/except para asegurarse de que el usuario ingrese un número entero. Si no, debe mostrar un error y volver a preguntar.

  4. Si el usuario ingresa un número, el programa le da pistas:

    • Si el número es menor al secreto, imprime «¡Demasiado bajo!».

    • Si el número es mayor al secreto, imprime «¡Demasiado alto!».

    • Si acierta, imprime «¡Correcto! Adivinaste.» y usa break para terminar el bucle.

numero_secreto = 42
print("¡Juego de Adivinar! Intenta adivinar el número secreto (entre 1 y 100).")

# --- Escribe tu código aquí ---
while True:
  try:
    numero_usuario = int(input("Adivina el número: "))
    if numero_usuario < numero_secreto:
      print("¡Demasiado bajo!")
    elif numero_usuario > numero_secreto:
      print("¡Demasiado alto!")
    else:
      print("Encontraste el numero ganador, felicitaciones")
      break
  except ValueError:
    print("¡Entrada inválida! Debes ingresar un número entero (ej. 30).")
# --- Fin de tu código ---
¡Juego de Adivinar! Intenta adivinar el número secreto (entre 1 y 100).
Adivina el número: 45.2
¡Entrada inválida! Debes ingresar un número entero (ej. 30).
---------------------------------------------------------------------------
KeyboardInterrupt                         Traceback (most recent call last)
/tmp/ipython-input-1146761818.py in <cell line: 0>()
      5 while True:
      6   try:
----> 7     numero_usuario = int(input("Adivina el número: "))
      8     if numero_usuario < numero_secreto:
      9       print("¡Demasiado bajo!")

/usr/local/lib/python3.12/dist-packages/ipykernel/kernelbase.py in raw_input(self, prompt)
   1175                 "raw_input was called, but this frontend does not support input requests."
   1176             )
-> 1177         return self._input_request(
   1178             str(prompt),
   1179             self._parent_ident["shell"],

/usr/local/lib/python3.12/dist-packages/ipykernel/kernelbase.py in _input_request(self, prompt, ident, parent, password)
   1217             except KeyboardInterrupt:
   1218                 # re-raise KeyboardInterrupt, to truncate traceback
-> 1219                 raise KeyboardInterrupt("Interrupted by user") from None
   1220             except Exception:
   1221                 self.log.warning("Invalid Message:", exc_info=True)

KeyboardInterrupt: Interrupted by user

Ejercicio 2: Lista de Compras Interactiva#

Objetivo: Combinar listas, while, input() y for.

Crea un programa que permita al usuario construir una lista de compras.

  1. Crea una lista vacía llamada lista_compras.

  2. Usa un bucle while True para preguntar al usuario qué item quiere añadir.

  3. Si el usuario escribe «FIN» (en mayúsculas o minúsculas), el bucle debe terminar (break).

  4. Cualquier otra cosa que escriba se debe añadir a la lista_compras usando .append().

  5. Al final del bucle, el programa debe imprimir «Tu lista de compras es:» y luego mostrar cada item de la lista (usando un bucle for).

# 1. Crear lista vacía
lista_compras = []
print("Crea tu lista de compras. Escribe 'FIN' para terminar.")

# --- Escribe tu código aquí ---



# --- Fin de tu código ---
Crea tu lista de compras. Escribe 'FIN' para terminar.

Condicionales taller#

1. Par o Impar Escribe un programa que solicite al usuario un número entero y evalúe si es par o impar.

  • Salida esperada: «El número X es par» o «El número X es impar».

2. Mayor o Menor de Edad Crea un programa que pida la edad del usuario.

  • Si la edad es mayor o igual a 18, debe imprimir «Eres mayor de edad».

  • De lo contrario, debe imprimir «Eres menor de edad».

3. El Mayor de Tres Números Solicita al usuario que ingrese tres números diferentes. Utiliza estructuras condicionales para comparar los valores y determinar cuál de los tres es el número mayor.

4. Calculadora de Calificaciones Escribe un programa que reciba una calificación numérica (de 0 a 100) y devuelva la letra correspondiente según la siguiente escala:

  • 90 a 100: A

  • 80 a 89: B

  • 70 a 79: C

  • 60 a 69: D

  • Menor a 60: F

5. Año Bisiesto Pide al usuario que ingrese un año y determina mediante lógica condicional si es bisiesto.

  • Regla: Un año es bisiesto si es divisible por 4, excepto aquellos que son divisibles por 100 pero no por 400.

6. Descuento en Tienda Una tienda ofrece un 20% de descuento si el total de la compra supera los $100. Escribe un programa que solicite el monto original de la compra y calcule el monto final a pagar, aplicando el descuento solo si se cumple la condición.

7. Identificador de Triángulos Solicita al usuario la longitud de los tres lados de un triángulo y determina qué tipo de triángulo es:

  • Equilátero: Tres lados iguales.

  • Isósceles: Dos lados iguales.

  • Escaleno: Todos los lados son diferentes.

8. Calculadora Básica Crea un programa que pida dos números y un operador matemático (+, -, *, /). Dependiendo del operador ingresado, realiza la operación correspondiente y muestra el resultado. Debe incluir una validación estricta para mostrar un error si el usuario intenta dividir por cero.

9. Sistema de Peaje Escribe un programa que calcule la tarifa de un peaje según el tipo de vehículo ingresado por el usuario:

  • «Motocicleta»: $5

  • «Automóvil»: $10

  • «Camión»: $20 Si el usuario ingresa un tipo de vehículo que no está en la lista, el programa debe capturar el error y mostrar el mensaje «Tipo de vehículo no válido».

10. Evaluación de Crédito Bancario Un banco aprueba líneas de crédito basándose en dos condiciones: el salario mensual del solicitante y su historial crediticio (bueno o malo).

  • Si el salario es mayor a $3000 y el historial es «bueno», el crédito es aprobado.

  • Si el salario es menor o igual a $3000 pero el historial es «bueno», se requiere un aval.

  • Si el historial es «malo», el crédito es denegado independientemente del salario. Escribe un programa que evalúe estas condiciones e imprima el estado final de la solicitud.

Ciclos Taller#

1. Suma de los primeros N números Escribe un programa que solicite al usuario un número entero positivo N. Utiliza un ciclo para sumar todos los números desde 1 hasta N y muestra el resultado final. Restricción: Usa solo una variable acumuladora, no guardes los números en ninguna estructura.

2. Tabla de multiplicar Pide al usuario que ingrese un número entero. Usa un ciclo (como for o while) para calcular e imprimir la tabla de multiplicar de ese número del 1 al 10.

  • Salida esperada: «5 x 1 = 5», «5 x 2 = 10», etc.

3. Contador de dígitos Solicita al usuario que ingrese un número entero positivo grande (por ejemplo, 45893). Utiliza un ciclo while para contar cuántos dígitos tiene el número dividiéndolo sucesivamente entre 10 hasta que el número llegue a 0. Imprime el total de dígitos contados.

4. Verificador de números primos Pide al usuario un número entero mayor a 1. Utiliza un ciclo para iterar desde 2 hasta el número anterior al ingresado (o hasta su raíz cuadrada para mayor eficiencia). En cada iteración, verifica si el número ingresado es divisible por el contador actual. Si encuentras un divisor, el ciclo debe detenerse y el programa debe imprimir «No es primo». Si el ciclo termina sin encontrar divisores, imprime «Es primo».

5. Secuencia de Fibonacci al vuelo Escribe un programa que solicite al usuario un número N. El programa debe imprimir los primeros N términos de la secuencia de Fibonacci (0, 1, 1, 2, 3, 5, 8…).

  • Restricción estricta: No puedes usar listas, arreglos ni vectores para almacenar la secuencia. Debes calcular e imprimir cada número «al vuelo» dentro del ciclo, actualizando únicamente dos variables que representen los dos números anteriores de la secuencia.

Ejercicio Opcional#

Usted administra una tienda y necesita escribir un programa que le permita al usuario vender y comprar productos. Genere un menu para comprar o vender productos y que se agreguen o elimine los productos

Ejercicios de Listas#

1. Suma manual de elementos Crea una lista de números enteros. Escribe un ciclo que recorra la lista y calcule la suma total de todos sus elementos sin utilizar funciones integradas predefinidas para sumar.

2. Búsqueda de extremos Dada una lista de números con valores aleatorios, diseña un algoritmo que encuentre y muestre el número mayor y el número menor de la lista iterando una sola vez sobre ella.

3. Filtro de valores únicos Crea una lista que contenga varios números repetidos. Escribe un programa que recorra esa lista y genere una nueva lista que contenga únicamente los valores únicos, eliminando cualquier duplicado.

4. Inversión de lista Dada una lista de elementos, escribe un programa que invierta el orden de sus elementos. No está permitido utilizar funciones propias del lenguaje para invertir listas ni técnicas de segmentación rápida.

5. Intersección de datos Define dos listas con diferentes números enteros, donde algunos valores coincidan. Escribe un programa que compare ambas listas y genere una tercera lista con los elementos que están presentes en ambas.

Ejercicios de Funciones#

1. Calculadora de área Escribe una función que reciba como parámetro el radio de un círculo y retorne el valor exacto de su área.

2. Detector de palíndromos Crea una función que reciba una cadena de texto como argumento. La función debe analizar el texto y devolver un valor lógico (verdadero o falso) indicando si la palabra o frase es un palíndromo, ignorando los espacios en blanco y mayúsculas.

3. Promedio de un conjunto Escribe una función que tome una lista de números como parámetro de entrada. La función debe calcular y retornar el promedio aritmético de esos valores validando que la lista no esté vacía.

4. Cálculo de factorial Diseña una función que reciba un número entero positivo y calcule su factorial. Debes asegurarte de incluir validaciones dentro de la función para retornar un error o un mensaje específico si se envía un número negativo.

5. Conversor de temperatura bidireccional Crea una función que reciba dos parámetros: un valor numérico y una letra indicando la escala original («C» para Celsius, «F» para Fahrenheit). La función debe evaluar la letra ingresada, aplicar la fórmula matemática de conversión correspondiente y retornar el nuevo valor en la escala opuesta.

Material de apoyo#

Videos de python

Curso python#

Curso opcional