variables y tipos de datos en Python ejercicios resueltos

Variables y tipos de datos en Python — ejercicios con solución y chuletario

Ya viste la teoría y practicaste con código real. Ahora toca el momento de la verdad: resolver ejercicios tú solo. En este artículo encontrarás ejercicios de variables y tipos de datos en Python de nivel intermedio, un ejercicio desafío final que mezcla todo el tema, y un chuletario completo para tener siempre a mano. La metodología es simple: intenta resolverlo, usa la pista si te atascas, y compara con la solución comentada al final.

Recuerda que puedes usar pythontutor.com si deseas ver el proceso paso por paso.

Antes de empezar repasa la teoría o la práctica si necesitas refrescar algo.

Cómo usar este artículo

No saltes directamente a las soluciones. El proceso es este: lee el enunciado → intenta resolverlo en VS Code → si llevas más de 10 minutos atascado, lee la pista → compara tu solución con la del final. Aprendes el doble así que mirando la solución directamente.

Variables y tipos de datos en Python ejercicios — Ejercicio 1: El recibo de la compra

Escribe un programa que pida al usuario tres productos con su precio y calcule el total de la compra, el IVA (21%) y el precio final con IVA incluido.

La salida debe ser así:

Producto 1: Leche
Precio: 1.20
Producto 2: Pan
Precio: 0.90
Producto 3: Café
Precio: 3.50

--- Recibo ---
Leche: 1.2 €
Pan: 0.9 €
Café: 3.5 €
Subtotal: 5.6 €
IVA (21%): 1.18 €
Total: 6.78 €

💡Pista: Necesitas variables str para los nombres y float para los precios. El IVA se calcula multiplicando el subtotal por 0.21. Usa round() para controlar los decimales y f-strings para el recibo.


Variables y tipos de datos en Python ejercicios — Ejercicio 2: Conversor de temperatura

Escribe un programa que pida una temperatura en grados Celsius y la convierta a Fahrenheit y Kelvin. Las fórmulas son:

  • Fahrenheit = (Celsius × 9/5) + 32
  • Kelvin = Celsius + 273.15

La salida debe ser:

Temperatura en Celsius: 100

100 °C equivale a:
→ 212.0 °F
→ 373.15 K

💡Pista: Una sola variable float para la temperatura en Celsius es suficiente. Calcula cada conversión en una variable separada para que el código sea más legible. Usa \n para la línea en blanco y como carácter especial en el print.


Variables y tipos de datos en Python ejercicios — Ejercicio 3: Calculador de propinas

Escribe un programa para dividir una cuenta de restaurante entre varias personas incluyendo propina. Pide el importe total, el porcentaje de propina y el número de personas, y calcula cuánto paga cada una.

Importe de la cuenta: 85.50
Porcentaje de propina (%): 10
Número de personas: 4

--- División de cuenta ---
Subtotal: 85.5 €
Propina (10%): 8.55 €
Total con propina: 94.05 €
Cada persona paga: 23.51 €

💡Pista: Necesitas float para el importe, int para las personas y float para el porcentaje. Divide el total con propina entre el número de personas al final. Redondea a 2 decimales solo en el resultado final.


Variables y tipos de datos en Python ejercicios — Ejercicio desafío: Ficha de estudiante completa

Este ejercicio mezcla todo lo del tema. Escribe un programa que pida los datos de un estudiante y genere una ficha completa con estadísticas.

Datos a pedir: nombre completo, edad, carrera, universidad, y cuatro notas de asignaturas con sus nombres.

La salida debe incluir: todos los datos del estudiante, la nota media redondeada a 2 decimales, la nota más alta y la más baja usando max() y min(), si está aprobado o no (media ≥ 5), y cuántos créditos aproximados lleva (multiplica asignaturas aprobadas × 6).

=============================
     FICHA DE ESTUDIANTE
=============================
Nombre: Sergio Medina
Edad: 20 años
Carrera: GCID
Universidad: ULPGC
-----------------------------
Asignatura 1 — FP1: 7.5
Asignatura 2 — Estadística: 8.0
Asignatura 3 — Matemáticas: 6.5
Asignatura 4 — Bases de datos: 4.0
-----------------------------
Nota media: 6.5
Nota más alta: 8.0
Nota más baja: 4.0
¿Aprobado?: True
Créditos estimados: 18
=============================

💡Pistas:

  • Usa str para nombre, carrera y universidad, int para edad, float para todas las notas
  • max(nota1, nota2, nota3, nota4) y min() funcionan con variables separadas
  • Para contar asignaturas aprobadas necesitas comparar cada nota con 5.0 usando bool, en Python puedes sumar booleanos porque True vale 1 y False vale 0
  • Los = y - repetidos en la ficha se hacen con "=" * 29, multiplica un string por un número

Soluciones comentadas

Solución Ejercicio 1

# Recibo de la compra
p1_nombre = input("Producto 1: ")
p1_precio = float(input("Precio: "))
p2_nombre = input("Producto 2: ")
p2_precio = float(input("Precio: "))
p3_nombre = input("Producto 3: ")
p3_precio = float(input("Precio: "))

subtotal = p1_precio + p2_precio + p3_precio
iva = round(subtotal * 0.21, 2)
total = round(subtotal + iva, 2)

print(f"\n--- Recibo ---")
print(f"{p1_nombre}: {p1_precio} €")
print(f"{p2_nombre}: {p2_precio} €")
print(f"{p3_nombre}: {p3_precio} €")
print(f"Subtotal: {round(subtotal, 2)} €")
print(f"IVA (21%): {iva} €")
print(f"Total: {total} €")

Solución Ejercicio 2

# Conversor de temperatura
celsius = float(input("Temperatura en Celsius: "))

fahrenheit = (celsius * 9/5) + 32
kelvin = celsius + 273.15

print(f"\n{celsius} °C equivale a:")
print(f"→ {fahrenheit} °F")
print(f"→ {kelvin} K")

Solución Ejercicio 3

# Calculador de propinas
cuenta = float(input("Importe de la cuenta: "))
propina_pct = float(input("Porcentaje de propina (%): "))
personas = int(input("Número de personas: "))

propina = round(cuenta * propina_pct / 100, 2)
total = round(cuenta + propina, 2)
por_persona = round(total / personas, 2)

print(f"\n--- División de cuenta ---")
print(f"Subtotal: {cuenta} €")
print(f"Propina ({int(propina_pct)}%): {propina} €")
print(f"Total con propina: {total} €")
print(f"Cada persona paga: {por_persona} €")

Solución Ejercicio Desafío

# Ficha de estudiante completa
nombre = input("Nombre completo: ")
edad = int(input("Edad: "))
carrera = input("Carrera: ")
universidad = input("Universidad: ")

a1_nombre = input("Nombre asignatura 1: ")
a1_nota = float(input(f"Nota de {a1_nombre}: "))
a2_nombre = input("Nombre asignatura 2: ")
a2_nota = float(input(f"Nota de {a2_nombre}: "))
a3_nombre = input("Nombre asignatura 3: ")
a3_nota = float(input(f"Nota de {a3_nombre}: "))
a4_nombre = input("Nombre asignatura 4: ")
a4_nota = float(input(f"Nota de {a4_nombre}: "))

media = round((a1_nota + a2_nota + a3_nota + a4_nota) / 4, 2)
nota_max = max(a1_nota, a2_nota, a3_nota, a4_nota)
nota_min = min(a1_nota, a2_nota, a3_nota, a4_nota)
aprobado = media >= 5.0
aprobadas = (a1_nota >= 5) + (a2_nota >= 5) + (a3_nota >= 5) + (a4_nota >= 5)
creditos = aprobadas * 6

print("=" * 29)
print("     FICHA DE ESTUDIANTE")
print("=" * 29)
print(f"Nombre: {nombre}")
print(f"Edad: {edad} años")
print(f"Carrera: {carrera}")
print(f"Universidad: {universidad}")
print("-" * 29)
print(f"{a1_nombre}: {a1_nota}")
print(f"{a2_nombre}: {a2_nota}")
print(f"{a3_nombre}: {a3_nota}")
print(f"{a4_nombre}: {a4_nota}")
print("-" * 29)
print(f"Nota media: {media}")
print(f"Nota más alta: {nota_max}")
print(f"Nota más baja: {nota_min}")
print(f"¿Aprobado?: {aprobado}")
print(f"Créditos estimados: {creditos}")
print("=" * 29)

Chuletario — Variables y tipos de datos en Python

Guarda esto, imprímelo o tenlo a mano cuando programes. Es todo lo esencial del tema en un solo lugar.

# ============================================
# CHULETARIO — Variables y tipos de datos
# Sergio Learns · sergiolearns.com
# ============================================

# TIPOS BÁSICOS
x = 5          # int   — número entero
x = 5.0        # float — número decimal
x = "hola"     # str   — texto (comillas simples o dobles)
x = True       # bool  — verdadero o falso

# COMPROBAR EL TIPO
type(x)        # devuelve el tipo de x

# CONVERSIÓN DE TIPOS
int("5")       # → 5
float("5.0")   # → 5.0
str(5)         # → "5"
bool(0)        # → False (0 es False, cualquier otro número es True)

# INPUT — SIEMPRE DEVUELVE TEXTO
nombre = input("Nombre: ")              # str
edad   = int(input("Edad: "))           # int
precio = float(input("Precio: "))      # float

# OPERADORES NUMÉRICOS
5 + 3    # suma        → 8
5 - 3    # resta       → 2
5 * 3    # producto    → 15
5 / 3    # división    → 1.666...
5 // 3   # división entera → 1
5 % 3    # módulo (resto)  → 2
5 ** 3   # potencia    → 125

# REDONDEO
round(7.1666, 2)   # → 7.17

# F-STRINGS
nombre = "Sergio"
edad = 20
print(f"Hola, {nombre}. Tienes {edad} años.")

# OPERACIONES CON STRINGS
"hola" + " mundo"   # concatenar → "hola mundo"
"ja" * 3            # repetir    → "jajaja"
"=" * 20            # separador  → "===================="

# TRAMPAS COMUNES
"5" + "5"    # → "55"  NO es 10
5 / 2        # → 2.5   NO es 2 (usar // para división entera)

Publicaciones Similares

Un comentario

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *