Saltar al contenido
Editor

Python para principiantes: tu primer programa en 5 minutos

Principiante20 min4 ejercicios60 XP

Esta lección es una traducción del original en inglés.Read in EnglishAvisar de un error de traducción

0/4 ejercicios

¿Alguna vez te has preguntado cómo funcionan por dentro aplicaciones como Instagram, Spotify o YouTube? Detrás de cada aplicación, sitio web y videojuego hay código: instrucciones que una persona escribe para decirle a la computadora qué hacer.

Python es uno de los lenguajes más populares para escribir esas instrucciones. Se lee casi como inglés corriente, así que puedes concentrarte en resolver problemas en lugar de pelearte con una sintaxis confusa.

En este tutorial escribirás tu primer programa en Python, verás cómo trabaja Python con texto y números, y empezarás a usar variables para guardar información. Todos los ejemplos de código de esta página están en vivo: puedes pulsar Ejecutar, cambiar cosas y ver al instante qué pasa. No hace falta instalar nada.

Cómo escribir tu primer programa en Python

En programación hay una tradición divertida: lo primero que haces en cualquier lenguaje nuevo es hacer que diga "Hello, World!" ("¡Hola, mundo!"). Es un saludo rápido entre tú y el lenguaje, la prueba de que todo funciona.

En algunos lenguajes esto lleva 5 líneas de código o más. En Python basta con una:

Tu primer programa en Python
print("Hello, World!")
Salida
Hello, World!

Pulsa el botón Ejecutar de arriba. Deberías ver Hello, World! debajo del código. ¡Listo, acabas de ejecutar un programa en Python!

Veamos qué acaba de pasar:

  • `print()` es una función integrada. Piensa en ella como una máquina: le das algo y hace algo con eso. Esta muestra texto en la pantalla.
  • Los paréntesis () son el lugar donde le pasas datos. Los programadores llaman a eso el "argumento".
  • `"Hello, World!"` es una cadena de texto (en inglés, string), un nombre elegante para el texto. Las comillas le dicen a Python: "esto es texto, no código".
  • Prueba a cambiar el mensaje que está entre las comillas y vuelve a ejecutarlo. Prueba a imprimir tu nombre. Prueba a agregar un segundo print() en otra línea:

    Imprimir varias líneas
    print("Hello, World!")
    print("My name is Python.")
    print("Nice to meet you!")
    Salida
    Hello, World!
    My name is Python.
    Nice to meet you!

    Cada print() aparece en su propia línea. Python lee tu código de arriba abajo, una línea a la vez, como quien lee un libro.

    El orden en que escribes las cosas es el orden en que se ejecutan. Es una de las ideas más importantes de la programación.

    ¿Qué son los comentarios en Python?

    Un comentario es una nota que escribes dentro del código y que Python ignora por completo. Para crear uno, empieza la línea con el símbolo #.

    ¿Por qué querrías que Python ignore algo? Porque los comentarios son para personas, no para computadoras. Te ayudan a ti (y a cualquiera que lea tu código) a entender qué está pasando.

    Cómo funcionan los comentarios en Python
    # This is a comment - Python skips this line
    print("This line runs!") # You can also add comments at the end
    # Comments are great for leaving notes to yourself:
    # TODO: add more features later
    # You can also "comment out" code to temporarily disable it:
    # print("This line won't run because it starts with #")
    Salida
    This line runs!

    Piensa en los comentarios como notas adhesivas pegadas en una receta. El horno no las lee, pero a ti te ayudan a recordar por qué le pusiste más sal o qué temperatura funcionó mejor.

    Cadenas y números en Python: ¿cuál es la diferencia?

    En Python, todo tiene un tipo. Un tipo es como una etiqueta que le dice a Python qué clase de dato es algo y qué puedes hacer con él.

    Los dos tipos más básicos son las cadenas (texto) y los números. Entender en qué se diferencian te ahorrará muchos errores confusos.

    Cómo crear cadenas en Python

    Una cadena es cualquier texto entre comillas. Puedes usar comillas simples ('hello') o dobles ("hello"): funcionan exactamente igual.

    Crear cadenas
    print("Hello!") # Using double quotes
    print('Hello!') # Using single quotes - same result
    # Handy trick: if your text has a quote inside it,
    # use the OTHER type of quote on the outside:
    print("It's a sunny day!") # Apostrophe inside double quotes
    print('She said "wow!"')
    Salida
    Hello!
    Hello!
    It's a sunny day!
    She said "wow!"

    Una cadena puede contener cualquier cosa: letras, números, espacios, signos de puntuación e incluso emojis. Mientras esté entre comillas, Python lo trata como texto.

    Tipos de números en Python: enteros y decimales

    Los números de Python son de dos tipos:

  • Enteros (`int`): números sin decimales, como 42, -7 o 1000000. No llevan punto decimal.
  • Decimales (`float`): números con decimales, como 3.14, -0.5 o 100.0. Siempre llevan punto decimal (en Python se usa punto, nunca coma).
  • Ejemplos de enteros y decimales
    print(42) # Integer (whole number)
    print(3.14) # Float (decimal number)
    print(-7) # Negative integer
    print(1_000_000) # Underscores make big numbers readable - Python ignores them
    Salida
    42
    3.14
    -7
    1000000

    ¿Por qué importa el tipo de dato en Python?

    Esto confunde a casi todos los principiantes: para Python, "42" (con comillas) y 42 (sin comillas) son cosas completamente distintas.

    Uno es texto. El otro es un número. Al imprimirlos se ven iguales, pero se comportan de forma muy distinta:

    La diferencia entre "42" y 42
    # They look the same when printed...
    print("42")
    print(42)
    # But Python sees them as different types:
    print(type("42")) # <class 'str'> - it's a string (text)
    print(type(42)) # <class 'int'> - it's an integer (number)
    # And they behave differently with the + operator:
    print("42" + "8") # "428" - joins the text together
    print(42 + 8) # 50 - does math
    Salida
    42
    42
    <class 'str'>
    <class 'int'>
    428
    50

    "42" + "8" da "428" porque + entre cadenas significa "pégalas una detrás de otra". A esto se le llama concatenación.

    42 + 8 da 50 porque + entre números significa "súmalos". Es el mismo operador, con un comportamiento completamente distinto según el tipo.

    La función type() te dice exactamente con qué clase de dato estás trabajando. Cuando algo no se comporta como esperas, revisar el tipo suele ser lo primero que conviene probar.

    Cómo hacer cálculos en Python

    Python funciona de maravilla como calculadora. Maneja números de cualquier tamaño sin el menor esfuerzo, a diferencia de otros lenguajes que se atragantan con los números grandes.

    Estos son todos los operadores matemáticos que vas a usar:

    Operadores matemáticos de Python
    print(2 + 3) # Addition → 5
    print(10 - 4) # Subtraction → 6
    print(3 * 7) # Multiplication → 21
    print(15 / 4) # Division → 3.75
    print(15 // 4) # Floor division → 3 (chops off the decimal)
    print(15 % 4) # Modulo → 3 (the remainder)
    print(2 ** 10) # Exponent → 1024 (2 to the power of 10)
    Salida
    5
    6
    21
    3.75
    3
    3
    1024

    La mayoría funciona igual que en la clase de matemáticas. Pero algunos quizá sean nuevos para ti.

    `/` (división) siempre da un resultado decimal, aunque la división sea exacta. 10 / 2 da 5.0, no 5. Esto toma por sorpresa a mucha gente.

    `//` (división entera) divide y luego redondea hacia abajo al número entero más cercano. Piensa en ella como "una división que descarta todo lo que va después del punto decimal".

    `%` (módulo) te da el resto (o residuo) de una división. Por ejemplo, 15 ÷ 4 = 3 con resto 3. Es sorprendentemente útil: puedes comprobar si un número es par (n % 2 == 0), hacer que los valores vuelvan a empezar al llegar a un límite (como las horas de un reloj: 13 % 12 = 1) y mucho más.

    ` (potencia)** eleva un número a una potencia. 2 ** 10` significa "2 multiplicado por sí mismo 10 veces", lo que da 1024.

    Python respeta la jerarquía de operaciones de las matemáticas (primero paréntesis, luego potencias, después multiplicación y división, y al final suma y resta). Puedes usar paréntesis para cambiar ese orden:

    El orden de las operaciones y los paréntesis
    # Without parentheses: multiplication happens first
    print(2 + 3 * 4) # 2 + 12 = 14
    # With parentheses: addition happens first
    print((2 + 3) * 4) # 5 * 4 = 20
    # A real example: Celsius to Fahrenheit
    celsius = 25
    fahrenheit = (celsius * 9/5) + 32
    print(f"{celsius}°C = {fahrenheit}°F")
    Salida
    14
    20
    25°C = 77.0°F
    ❌ Lo que esperan los principiantes
    # "Division gives a whole number, right?"
    result = 10 / 3
    print(result)  # Expects: 3
    ✓ Lo que hace Python en realidad
    # / always gives a decimal (float)
    result = 10 / 3
    print(result)  # 3.3333333333333335
    
    # Use // to get a whole number
    result = 10 // 3
    print(result)  # 3

    ¿Qué son las variables en Python y cómo se usan?

    Hasta ahora hemos trabajado con valores directamente: print(42), print(2 + 3). Eso sirve para cálculos rápidos, pero los programas reales necesitan recordar valores y usarlos más adelante.

    Para eso están las variables. Piensa en una variable como un recipiente con etiqueta. Le das un nombre, guardas un valor dentro y luego usas ese nombre cada vez que necesitas el valor.

    Crear y usar variables
    # Creating variables - pick a name and use =
    name = "Alice"
    age = 15
    height = 5.4
    is_student = True
    # Now use the names instead of raw values
    print(name) # Alice
    print(age) # 15
    print(height) # 5.4
    print(is_student) # True
    Salida
    Alice
    15
    5.4
    True

    name = "Alice" crea una variable llamada name y guarda en ella la cadena "Alice". El signo = es el operador de asignación: no significa "igual a" como en matemáticas. Significa "guarda este valor con este nombre".

    Lee name = "Alice" así: "name recibe Alice". Esta diferencia importa y te ahorrará confusiones más adelante.

    Fíjate en que no hay ninguna palabra clave let, var o const. En JavaScript escribirías let name = "Alice". En Python escribes name = "Alice" y ya está. Python tampoco necesita que declares el tipo: lo deduce automáticamente a partir del valor.

    Las variables pueden cambiar. Puedes darles un valor nuevo en cualquier momento:

    Actualizar variables
    score = 0
    print(f"Starting score: {score}")
    score = 10
    print(f"After first round: {score}")
    # Use the current value to calculate the new value
    score = score + 5
    print(f"After bonus: {score}")
    score = score * 2
    print(f"After doubling: {score}")
    Salida
    Starting score: 0
    After first round: 10
    After bonus: 15
    After doubling: 30

    La línea score = score + 5 parece rara si piensas que = significa "igual". Pero recuerda: = significa "asignar".

    Léela así: "toma el valor actual de score (10), súmale 5 para obtener 15 y guarda ese resultado otra vez en score". Este patrón (actualizar una variable a partir de su valor actual) aparece por todas partes en programación.

    Cómo usar las f-strings de Python (formato de cadenas)

    En casi cualquier programa vas a necesitar mezclar variables con texto. Mostrar un mensaje de bienvenida con el nombre de alguien, enseñar una puntuación, imprimir un recibo: todo eso exige combinar datos con texto.

    Python tiene una herramienta estupenda para esto llamada f-strings (la "f" viene de "formatted", es decir, "con formato"). Pon la letra f antes de la comilla de apertura y luego escribe cualquier variable o expresión entre llaves ({curly braces}):

    f-strings: mezclar variables con texto
    name = "Alice"
    age = 15
    # Basic f-string - variables go inside {braces}
    print(f"Hi, my name is {name}!")
    print(f"I am {age} years old.")
    # You can put math and expressions inside the braces too
    print(f"Next year I'll be {age + 1}.")
    print(f"My name has {len(name)} letters.")
    print(f"My name in uppercase: {name.upper()}")
    Salida
    Hi, my name is Alice!
    I am 15 years old.
    Next year I'll be 16.
    My name has 5 letters.
    My name in uppercase: ALICE

    La magia está en las llaves ({curly braces}). Python evalúa la expresión que haya dentro, convierte el resultado en texto y lo inserta en la cadena.

    Dentro de las llaves puedes poner casi cualquier cosa: variables, operaciones matemáticas, llamadas a funciones e incluso comparaciones. Veamos un ejemplo más práctico:

    Ejemplo práctico de f-string
    # A mini shopping receipt
    item = "coffee"
    price = 4.50
    quantity = 3
    total = price * quantity
    print(f"Item: {item}")
    print(f"Price: ${price} x {quantity}")
    print(f"Total: ${total}")
    Salida
    Item: coffee
    Price: $4.5 x 3
    Total: $13.5

    Compáralo con la forma antigua de construir cadenas, usando + para unir los trozos:

    ❌ Sin f-strings (enredado)
    name = "Alice"
    age = 15
    
    # Have to convert age, lots of + signs
    print("Hi, my name is " + name + "!")
    print("I am " + str(age) + " years old.")
    ✓ Con f-strings (limpio)
    name = "Alice"
    age = 15
    
    # Just put variables inside {braces}
    print(f"Hi, my name is {name}!")
    print(f"I am {age} years old.")

    La forma antigua obliga a usar str(age) para convertir a mano el número en texto. Recuerda: no puedes usar + para unir directamente una cadena y un número.

    Las f-strings hacen esa conversión automáticamente. Son más limpias, más rápidas y menos propensas a errores. Úsalas siempre en código nuevo.

    Todo junto: un miniproyecto

    Vamos a combinar todo en un programa pequeño. Muestra el patrón que usarás en cualquier proyecto de Python: guardar datos en variables, hacer cálculos y mostrar los resultados.

    Miniproyecto: calculadora de propinas
    # === Tip Calculator ===
    # Input data
    meal_cost = 52.50
    tax_rate = 0.08 # 8% tax
    tip_rate = 0.20 # 20% tip
    # Calculations
    tax = meal_cost * tax_rate
    subtotal = meal_cost + tax
    tip = subtotal * tip_rate
    total = subtotal + tip
    # Display a formatted receipt
    print("=" * 28)
    print(" TIP CALCULATOR")
    print("=" * 28)
    print(f" Meal: ${meal_cost:.2f}")
    print(f" Tax (8%): ${tax:.2f}")
    print(f" Subtotal: ${subtotal:.2f}")
    print(f" Tip (20%): ${tip:.2f}")
    print("-" * 28)
    print(f" TOTAL: ${total:.2f}")
    print("=" * 28)
    Salida
    ============================
         TIP CALCULATOR
    ============================
      Meal:       $52.50
      Tax (8%):   $4.20
      Subtotal:   $56.70
      Tip (20%):  $11.34
    ----------------------------
      TOTAL:      $68.04
    ============================

    No te preocupes por la parte :.2f: significa "muestra exactamente 2 decimales" (así 4.5 se muestra como 4.50). Veremos el formato en detalle más adelante.

    Lo importante es el patrón: guardar datos → hacer cálculos → mostrar resultados. Ese es el núcleo de cualquier programa, tenga 10 líneas o diez mil.

    ¡Prueba a cambiar meal_cost, tax_rate o tip_rate y vuelve a ejecutarlo!


    Ejercicios de práctica

    ¡Ahora te toca a ti! Estos ejercicios van del más fácil al más difícil, y cada uno usa lo que has aprendido.

    Algunos consejos antes de empezar:

  • Inténtalo primero, mira después. Pelearte un poco con el problema es lo que hace que tu cerebro aprenda de verdad.
  • Lee los mensajes de error. Parecen intimidantes, pero suelen decirte exactamente qué salió mal.
  • Usa las pistas con moderación. Cada ejercicio tiene pistas que se muestran de una en una.
  • Experimenta después de resolverlo. Cuando veas la marca verde, prueba a cambiar cosas para ver qué pasa.
  • Ejercicio 1: imprime un saludo
    Escribe el código

    Escribe un programa que imprima exactamente:

    Hello, Python!

    La prueba exige una coincidencia exacta, incluidos la coma, el espacio y el signo de exclamación del final.

    # Print the greeting below
    Ejercicio 2: la cuenta del restaurante
    Escribe el código

    Una comida cuesta $24.50, los impuestos son $2.45 y la propina es de $5.00. Las variables ya están creadas.

    Calcula el total e imprímelo exactamente en este formato:

    Total: $31.95
    meal = 24.50
    tax = 2.45
    tip = 5.00
    # Calculate the total and print it
    Ejercicio 3: preséntate
    Escribe el código

    Crea dos variables:

  • name con el valor "Alice"
  • language con el valor "Python"
  • Luego usa una f-string para imprimir:

    Hi, I'm Alice and I love Python!
    # Create your variables
    # Print the introduction using an f-string
    Ejercicio 4: arregla la calculadora rota
    Corrige el error

    Este código debería calcular el área de un rectángulo (ancho × alto) e imprimirla. ¡Pero tiene dos errores!

    Ejecuta primero el código roto y lee el mensaje de error. Luego corrige los dos errores para que la salida sea:

    Area: 35
    width = 5
    height = 7
    area = width + height
    print("Area: " + area)

    Resumen: lo que aprendiste en este tutorial

    ¡Buen trabajo con tu primer tutorial de Python! Esto es todo lo que ya sabes:

    ConceptoQué haceEjemplo
    print()Muestra la salida en pantallaprint("hello")
    Comentarios (#)Notas que Python ignora# this is a note
    CadenasTexto entre comillas"hello" o 'hello'
    EnterosNúmeros sin decimales42, -7
    Decimales (floats)Números con decimales3.14, 0.5
    Operadores matemáticos+ - * / // % **2 ** 10 → 1024
    type()Te dice de qué tipo es un datotype(42) → int
    VariablesRecipientes con nombre para guardar datosage = 15
    f-stringsInsertan variables en el textof"Age: {age}"

    No son conceptos de principiante que vayas a dejar atrás. Son la base de todos los programas de Python. Hasta el código más avanzado es una combinación creativa de estas piezas.

    ¿Qué sigue?

    En el próximo tutorial, [Variables y tipos de datos](/python/variables-and-data-types), verás más a fondo cómo guarda Python los datos. Aprenderás sobre los booleanos (True/False), None y la conversión de tipos.

    También descubrirás por qué 0.1 + 0.2 no es igual a 0.3 en Python (ni en ningún otro lenguaje de programación) y qué hacer al respecto.

    Tutoriales relacionados

    ¿Te sirvió este tutorial?

    Sugerir una mejora