Instalación y primer programa
Python es un lenguaje de programación de alto nivel, interpretado, con una sintaxis tan legible que casi se lee como inglés. Se usa en todo: scripts, automatización, ciencia de datos, inteligencia artificial, desarrollo web y videojuegos. Es el lenguaje perfecto para empezar porque dejas de pelear con la sintaxis y te centras en resolver problemas.
1.1 · Instalar Python 3
Descarga el instalador desde la web oficial python.org/downloads y
ejecútalo. Marca la casilla «Add Python to PATH» — es imprescindible para poder llamar a
python desde la terminal.
Verifica abriendo una terminal (CMD/PowerShell en Windows, Terminal en macOS/Linux)
y escribiendo python --version. Deberías ver algo como Python 3.13.2.
Linux/macOS ya traen Python, pero asegúrate de que sea la versión 3: escribe
python3 o python --version.
python2) está obsoleta desde 2020. Todo este curso usa
Python 3. Si al escribir print "hola" (sin paréntesis) te da error, es que
estás mezclando estilos o ejecutando Python 2: en Python 3 print siempre se llama como función,
print("hola").1.2 · La terminal: tu nuevo mejor amigo
La terminal ejecuta tu código. El REPL (Read–Eval–Print Loop) es el modo interactivo: si
escribes python a secas, Python te invita con >>> y ejecuta cada línea
al instante:
# terminal
$ python
>>> 2 + 2
4
>>> print("Hola mundo")
Hola mundo
>>> exit()
El REPL es ideal para experimentar. Pero los programas reales viven en ficheros con
extensión .py y se ejecutan con python nombre.py.
python-b1/.
Guarda un archivo por ejercicio. Programa primero en pequeño y ejecuta a menudo: ese ciclo
escribir → ejecutar → corregir es cómo se aprende de verdad.1.3 · VS Code: el editor recomendado
Visual Studio Code es el editor más popular para Python. Instala la extensión oficial Python (Microsoft): te dará resaltado de sintaxis, autocompletado y avisos de errores al escribir. Otros editores válidos: PyCharm, Sublime Text o incluso un bloc de notas.
1.4 · Tu primer programa
Todo curso de programación empieza aquí. Crea un archivo hola.py y escribe:
print("Hola, mundo")
print("Este es mi primer programa en Python")
$ python hola.py
Hola, mundo
Este es mi primer programa en Python
1.5 · Comentarios y documentación
Los comentarios empiezan con # y Python los ignora. Sirven para explicar por qué
haces algo (el qué ya lo dice el código):
# Esto es un comentario de una línea
print("Hola") # los comentarios pueden ir al final de una línea
"""
También existen los comentarios de varias líneas.
Se escriben con comillas triples, aunque en realidad
son cadenas de texto que no se asignan a nada.
"""
Variables y tipos de datos
Una variable es una caja con nombre donde guardas un valor. A diferencia de otros lenguajes, en Python no declaras el tipo: tú asignas el valor y Python deduce el tipo. Se dice que es tipado dinámico.
nombre = "Ana" # str: texto
edad = 25 # int: número entero
altura = 1.72 # float: número decimal
es_estudiante = True # bool: True o False
print(nombre, edad, altura, es_estudiante)
2.1 · Reglas de nombres
- Empiezan con una letra o guion bajo:
nombre,_privado. - No pueden tener espacios ni guiones: usa snake_case (
edad_usuario). - Son sensibles a mayúsculas:
Edadyedadson diferentes. - No pueden ser palabras reservadas (
if,for,class...).
total_precio) y nombres descriptivos (edad_usuario mejor que
x). Tu yo del futuro te lo agradecerá.2.2 · Tipos fundamentales
| Tipo | Ejemplo | Qué es |
|---|---|---|
int | 42 | Número entero |
float | 3.14 | Número decimal |
str | "hola" | Cadena de texto |
bool | True | Verdadero o falso |
None | None | «Sin valor» (el nulo de Python) |
Puedes preguntarle a Python de qué tipo es algo con la función type():
print(type(42)) # <class 'int'>
print(type(3.14)) # <class 'float'>
print(type("Python")) # <class 'str'>
print(type(True)) # <class 'bool'>
2.3 · F-strings: insertar valores en texto
La forma moderna y limpia de combinar texto y variables son las f-strings: una letra
f delante de las comillas y {variable} dentro:
nombre = "Luis"
edad = 30
print(f"Me llamo {nombre} y tengo {edad} años")
print(f"El triple de 5 es {5 * 3}") # puedes poner expresiones
Me llamo Luis y tengo 30 años
El triple de 5 es 15
" o '.
Si mezclas tipos (sumar un int con un str) Python lanza un error
TypeError. Por eso existen las conversiones, que verás en la siguiente lección.a, b = 10, 20 asigna a=10 y b=20. Y para intercambiar dos valores,
Python tiene un truco famoso: a, b = b, a.Entrada de usuario y operadores
Un programa que solo muestra texto es aburrido. Con input() pides datos al usuario. Con los
operadores los procesas.
3.1 · input() siempre devuelve texto
nombre = input("¿Cómo te llamas? ")
print(f"Hola, {nombre}, encantado de conocerte")
input() siempre devuelve una cadena (str),
aunque el usuario escriba un número. Para operar matemáticamente con él hay que convertirlo:
int(), float() o str().3.2 · Conversiones de tipo
precio_texto = input("¿Precio? ") # llega como str, p. ej. "9.99"
precio = float(precio_texto) # ahora es un número decimal
cantidad = int(input("¿Cuántas unidades? "))
total = precio * cantidad
print(f"Total: {total:.2f} €") # .2f = 2 decimales
3.3 · Operadores aritméticos
| Operador | Operación | Ejemplo | Resultado |
|---|---|---|---|
+ | Suma / concatena textos | 7 + 3 | 10 |
- | Resta | 7 - 3 | 4 |
* | Multiplicación | 7 * 3 | 21 |
/ | División (siempre decimal) | 7 / 2 | 3.5 |
// | División entera | 7 // 2 | 3 |
% | Módulo (resto) | 7 % 2 | 1 |
** | Potencia | 2 ** 3 | 8 |
% (resto) es la clave para saber si un número es par
(n % 2 == 0), para rotar listas, para agrupar por decenas... Es una de las herramientas más
usadas en algoritmos.3.4 · Operadores de comparación y lógicos
Las comparaciones siempre devuelven un bool (True o False):
edad = int(input("Tu edad: "))
print(edad >= 18) # True si es mayor o igual de edad
print(edad != 18) # True si no tiene exactamente 18
# Lógicos: and, or, not
print(edad >= 18 and edad < 65) # ambas deben cumplirse
print(edad < 12 or edad > 80) # basta una
print(not edad < 18) # niega el resultado
| Operador | Significado |
|---|---|
== | Igual que |
!= | Distinto de |
> < >= <= | Mayor, menor, mayor/igual, menor/igual |
and / or / not | Y / O / Negación |
== compara y = asigna! edad = 18 guarda el
valor; edad == 18 pregunta si es 18. Es el error número uno de las personas que empiezan.Condicionales if · elif · else
Los condicionales hacen que tu programa tome decisiones. La sintaxis de Python es única
por dos motivos: los bloques se delimitan con dos puntos (:) y la
indentación (sangría) es obligatoria — 4 espacios por nivel.
4.1 · if / elif / else
edad = int(input("¿Cuántos años tienes? "))
if edad < 12:
print("Eres un niño")
elif edad < 18:
print("Eres adolescente")
elif edad < 65:
print("Eres adulto")
else:
print("Eres mayor")
if debe estar sangrado con la misma cantidad de espacios. Mezclar espacios y tabuladores
produce IndentationError. VS Code inserta espacios por ti al pulsar Tab.4.2 · Condiciones compuestas
usuario = input("Usuario: ").strip().lower()
clave = input("Clave: ")
if usuario == "admin" and clave == "secreto123":
print("Bienvenido, administrador")
elif usuario in ("invitado", "demo"):
print("Puedes entrar a la zona pública")
else:
print("Acceso denegado")
strip() elimina espacios sobrantes alrededor del texto y .lower()
lo pasa a minúsculas. Con eso, “Admin”, “ ADMIN ” y “admin” se tratan igual. En el ejercicio 12 lo verás en
práctica.4.3 · Truthiness
En Python, casi cualquier valor se puede interpretar como True o False.
- Falsy (se comportan como False):
0,0.0,"",[],None,False. - Truthy (casi todo lo demás): números distintos de 0, textos no vacíos...
nombre = input("Nombre: ")
if nombre: # equivale a: if nombre != ""
print(f"Hola, {nombre}")
else:
print("No escribiste nada")
Bucles while y for
Los bucles repiten un bloque mientras se cumpla una condición (while) o
tantas veces como elementos haya (for). Son la base de la automatización.
5.1 · while: repite mientras sea cierto
contador = 1
while contador <= 5:
print(f"Vuelta número {contador}")
contador += 1 # es lo mismo que contador = contador + 1
contador, la condición nunca deja de ser cierta y el programa no termina. Las variables que
controlan la salida SIEMPRE deben cambiar dentro del bucle.5.2 · for y range: repetir un número fijo de veces
range(inicio, fin, paso) genera una secuencia. El fin nunca se incluye
(igual que for (i=0; i<5; ...) en otros lenguajes):
for i in range(5): # 0, 1, 2, 3, 4
print(i)
for i in range(1, 6): # 1, 2, 3, 4, 5
print(i)
for i in range(10, 0, -2): # 10, 8, 6, 4, 2
print(i)
5.3 · Recorrer textos
Una cadena es una secuencia de caracteres, así que for la recorre letra a letra:
palabra = "Python"
for letra in palabra:
print(letra)
P
y
t
h
o
n
5.4 · break y continue
breakwhile True:
opcion = input("opción (1, 2 o salir): ")
if opcion == "salir":
break # termina el bucle
if opcion not in ("1", "2"):
continue # ignora la vuelta y pregunta otra vez
print(f"Elegiste la opción {opcion}")
print("Fin del programa")
while True: con un break dentro es el patrón clásico de
menús: pedimos una opción, la procesamos y repetimos hasta que el usuario decide salir.5.5 · Acumuladores: la base de los totales
Un acumulador es una variable que va sumando en cada vuelta. Con él calculamos media, totales y sumatorios:
total = 0
for i in range(1, 11):
total += i # total = total + i
print(total) # 55
if y repites con while y for. Ya tienes la base
de TODO. Ahora a machacar con los 15 ejercicios.✍️ Los 15 ejercicios del bloque
Crea la carpeta python-b1/ y un archivo .py por ejercicio. Ejecútalos de esta
forma: python ejercicios.py. Empieza cada programa con un # comentario indicando
el ejercicio.
Sección A · Primeros pasos
1 Presentación en pantalla
Escribe un programa que muestre tu nombre, tu edad y tu ciudad en tres líneas separadas,
usando un print() por línea. Añade un comentario al inicio explicando qué hace el programa.
Ver solución
# Mi primera presentación
print("Me llamo Raúl")
print("Tengo 28 años")
print("Vivo en Madrid")
2 Un solo print, varias líneas
Muestra la misma presentación del ejercicio 1 usando un único print() y el
carácter de escape \n (salto de línea) dentro del texto.
Ver solución
print("Me llamo Raúl\nTengo 28 años\nVivo en Madrid")
3 Área de un rectángulo
Declara dos variables base = 8 y altura = 5, calcula el área
(base * altura) y muéstrala con una f-string que diga: El área del rectángulo es 40.
Ver solución
base = 8
altura = 5
area = base * altura
print(f"El área del rectángulo es {area}")
4 Intercambio de variables
Dadas a = 5 y b = 10, intercambia sus valores de forma que a valga
10 y b valga 5, y muéstralos. Usa el truco de doble asignación.
Ver solución
a = 5
b = 10
a, b = b, a
print(a, b) # 10 5
Sección B · Entrada del usuario
5 Saludador personal
Pide el nombre y la ciudad del usuario con input() y responde con una f-string:
Hola, {nombre}, de {ciudad}.
Ver solución
nombre = input("¿Cómo te llamas? ")
ciudad = input("¿De dónde eres? ")
print(f"Hola, {nombre}, de {ciudad}")
6 Año de nacimiento
Pide la edad mediante input(), conviértela a entero y calcula el año de nacimiento
aproximado (2026 − edad). Muestra el resultado con una f-string.
Ver solución
edad = int(input("¿Cuántos años tienes? "))
anio_nacimiento = 2026 - edad
print(f"Naciste aproximadamente en {anio_nacimiento}")
7 Calculadora de propina
Pide el importe de la cuenta, conviértelo a float y calcula una propina del 10 %
(importe * 0.10). Muestra la propina con exactamente 2 decimales usando :.2f.
Ver solución
importe = float(input("Importe de la cuenta: "))
propina = importe * 0.10
print(f"Propina sugerida: {propina:.2f} €")
8 Par o impar
Pide un número entero y muestra par o impar usando el operador módulo
(%) dentro de un if.
Ver solución
n = int(input("Dame un número: "))
if n % 2 == 0:
print("par")
else:
print("impar")
Sección C · Condicionales y lógica
9 Mayor de tres
Pide tres números enteros e imprime cuál es el mayor. Pista: compara con if anidados o
encadena condiciones con and.
Ver solución
a = int(input("Número 1: "))
b = int(input("Número 2: "))
c = int(input("Número 3: "))
if a >= b and a >= c:
print(f"El mayor es {a}")
elif b >= a and b >= c:
print(f"El mayor es {b}")
else:
print(f"El mayor es {c}")
10 Clasificación de edad
Pide una edad y clasifícala: < 0 → dato inválido, 0–12 → niño,
13–17 → adolescente, 18–64 → adulto, 65+ → mayor. Encadena
elif y cierra con else.
Ver solución
edad = int(input("Edad: "))
if edad < 0:
print("Dato inválido")
elif edad <= 12:
print("niño")
elif edad <= 17:
print("adolescente")
elif edad <= 64:
print("adulto")
else:
print("mayor")
11 Rango de notas
Pide una nota de 0 a 10 y muestra su calificación: 9–10 Sobresaliente, 7–8 Notable, 6 Bien, 5 Aprobado, 0–4 Suspenso. Si la nota está fuera de 0–10, muestra «nota inválida».
Ver solución
nota = float(input("Nota (0-10): "))
if nota < 0 or nota > 10:
print("nota inválida")
elif nota >= 9:
print("Sobresaliente")
elif nota >= 7:
print("Notable")
elif nota >= 6:
print("Bien")
elif nota >= 5:
print("Aprobado")
else:
print("Suspenso")
12 Login con validación
Pide usuario y contraseña. Usa .strip() y .lower() en el usuario. Si es
admin y la clave es 1234, muestra «acceso concedido»; si no, «acceso denegado».
Ver solución
usuario = input("Usuario: ").strip().lower()
clave = input("Clave: ")
if usuario == "admin" and clave == "1234":
print("acceso concedido")
else:
print("acceso denegado")
Sección D · Bucles
13 Tabla de multiplicar
Pide un número y muestra su tabla de multiplicar del 1 al 10 usando for + range.
Formato: 5 x 3 = 15.
Ver solución
n = int(input("Tabla del: "))
for i in range(1, 11):
print(f"{n} x {i} = {n * i}")
14 Suma hasta cero
Con while, pide números y ve sumándolos. Cuando el usuario escriba 0,
termina y muestra el total acumulado.
Ver solución
total = 0
numero = int(input("Número (0 para terminar): "))
while numero != 0:
total += numero
numero = int(input("Número (0 para terminar): "))
print(f"El total es {total}")
15 Cuenta atrás con continue
Usa range(10, 0, -1) para contar del 10 al 1, pero salta el número 5
con continue. Después imprime «¡Despegue!».
Ver solución
for i in range(10, 0, -1):
if i == 5:
continue
print(i)
print("¡Despegue!")
16 🏆 Proyecto integrador: «calculadora de triángulos»
Crea triangulo.py: una mini calculadora que pide la base y la altura de un triángulo y
muestra su área. Después pregunta si quiere calcular otro. Si responde s, repite; cualquier
otra cosa, termina. Requisitos:
- Convertir la entrada con
float(). - Calcular el área con la fórmula
(base * altura) / 2. - Mostrar el resultado con
:.2f. - Repetir con un
whiley salir conbreak. - Comentar con
#las secciones principales.
Ver una solución posible
# Calculadora de áreas de triángulos
while True:
# Pedimos los datos y los convertimos a decimal
base = float(input("Base del triángulo: "))
altura = float(input("Altura del triángulo: "))
# Cálculo del área
area = (base * altura) / 2
print(f"El área es {area:.2f}")
# ¿Repetir?
otra = input("¿Calcular otro? (s/n): ").strip().lower()
if otra != "s":
break
print("¡Hasta pronto!")
📝 Examen del Bloque 1
Dos partes: un test teórico autoevaluable (mínimo 70 %) y un reto práctico de autocorrección con laboratorio.
Parte B · Reto «perfil del usuario»
Crea perfil.py: un programa que pide nombre, edad y ciudad, muestra un resumen con una
f-string, y después un pequeño menú while que repite un mensaje hasta que se escriba
salir. Valida tú mismo/a estos criterios. Mínimo para aprobar: 6 de 8 casillas.
Cumplidos: 0 / 8
if y repites con bucles.
En el bloque 2 subiremos un nivel con las estructuras de datos. 🐍🔥