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.

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.


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.


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.


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)

Variables and data types in Python — exercises with solutions and cheat sheet

You’ve seen the theory and practised with real code. Now it’s time to solve exercises on your own. This article includes intermediate-level exercises on variables and data types in Python, a final challenge exercise mixing everything, and a complete cheat sheet to keep handy.

The method: try to solve it → use the hint if stuck → compare with the solution. You’ll learn twice as much as just reading the answer.

Before starting, review the theory or the practice article if needed.

Remember that you can use pythontutor.com if you want to see the process step by step.

Exercise 1 — The shopping receipt

Write a program that asks for three products with their prices and calculates the subtotal, VAT (21%) and final total.

💡Hint: Use str for product names and float for prices. VAT = subtotal × 0.21. Use round() and f-strings for the receipt.


Exercise 2 — Temperature converter

Write a program that asks for a temperature in Celsius and converts it to Fahrenheit and Kelvin.

Kelvin = Celsius + 273.15

Fahrenheit = (Celsius × 9/5) + 32

💡Hint: One float variable for Celsius is enough. Calculate each conversion in a separate variable.


Exercise 3 — Bill splitter

Write a program to split a restaurant bill including tip. Ask for the total amount, tip percentage, and number of people.

💡Hint: float for amount, int for people, float for percentage. Only round at the final result.


Challenge exercise — Complete student profile

Ask for a student’s details and four subject grades. Output a complete profile with average, highest and lowest grade, pass/fail status, and estimated credits.

💡Hints:

  • max() and min() work with separate variables
  • In Python you can add booleans: True = 1, False = 0
  • Repeat characters with "=" * 29

(Solutions are the same as the Spanish version above)

Cheat sheet — Variables and data types in Python

# ============================================
# CHEAT SHEET — Variables and data types
# Sergio Learns · sergiolearns.com
# ============================================

# BASIC TYPES
x = 5        # int
x = 5.0      # float
x = "hello"  # str
x = True     # bool

# CHECK TYPE
type(x)

# TYPE CONVERSION
int("5")      # → 5
float("5.0")  # → 5.0
str(5)        # → "5"

# INPUT — ALWAYS RETURNS TEXT
name  = input("Name: ")
age   = int(input("Age: "))
price = float(input("Price: "))

# NUMERIC OPERATORS
5 + 3    # add       → 8
5 - 3    # subtract  → 2
5 * 3    # multiply  → 15
5 / 3    # divide    → 1.666...
5 // 3   # floor div → 1
5 % 3    # modulo    → 2
5 ** 3   # power     → 125

# ROUNDING
round(7.1666, 2)  # → 7.17

# F-STRINGS
name = "Sergio"
print(f"Hello, {name}!")

# STRING OPERATIONS
"hi" + " there"  # → "hi there"
"ha" * 3         # → "hahaha"
"=" * 20         # → "===================="

# COMMON TRAPS
"5" + "5"   # → "55"  NOT 10
5 / 2       # → 2.5   NOT 2

Publicaciones Similares

Un comentario

Deja una respuesta

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