Python para principiantes: tu primer programa en 5 minutos
Esta lección es una traducción del original en inglés.Read in EnglishAvisar de un error de traducción
¿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:
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:
() son el lugar donde le pasas datos. Los programadores llaman a eso el "argumento".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:
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.
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.
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:
42, -7 o 1000000. No llevan punto decimal.3.14, -0.5 o 100.0. Siempre llevan punto decimal (en Python se usa punto, nunca coma).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:
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:
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:
14 20 25°C = 77.0°F
# "Division gives a whole number, right?"
result = 10 / 3
print(result) # Expects: 3# / 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.
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:
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}):
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:
Item: coffee Price: $4.5 x 3 Total: $13.5
Compáralo con la forma antigua de construir cadenas, usando + para unir los trozos:
name = "Alice"
age = 15
# Have to convert age, lots of + signs
print("Hi, my name is " + name + "!")
print("I am " + str(age) + " years old.")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.
============================
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:
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.
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.95Crea 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!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: 35Resumen: lo que aprendiste en este tutorial
¡Buen trabajo con tu primer tutorial de Python! Esto es todo lo que ya sabes:
| Concepto | Qué hace | Ejemplo |
|---|---|---|
print() | Muestra la salida en pantalla | print("hello") |
Comentarios (#) | Notas que Python ignora | # this is a note |
| Cadenas | Texto entre comillas | "hello" o 'hello' |
| Enteros | Números sin decimales | 42, -7 |
| Decimales (floats) | Números con decimales | 3.14, 0.5 |
| Operadores matemáticos | + - * / // % ** | 2 ** 10 → 1024 |
type() | Te dice de qué tipo es un dato | type(42) → int |
| Variables | Recipientes con nombre para guardar datos | age = 15 |
| f-strings | Insertan variables en el texto | f"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.