Python es una excelente puerta de entrada a la programación porque permite concentrarse en la lógica sin una sintaxis excesivamente compleja. Este tutorial presenta los conceptos básicos mediante ejemplos pequeños y termina con un proyecto completo de lista de tareas. La meta no es memorizar cada función, sino comprender cómo combinar datos, decisiones, repeticiones y funciones.
Puedes ampliar cada tema con las guías sobre tipos de datos, entrada y salida, bucles, funciones y listas.
El tutorial oficial de Python es la referencia principal para continuar estudiando. La documentación de funciones integradas explica herramientas como print, input, len, range y enumerate.
Tu primer programa
print("Hola, mundo")
print() muestra información en la pantalla. Guarda el código en programa.py y ejecútalo:
python programa.py
Variables
nombre = "Ana"
edad = 25
altura = 1.68
estudia_python = True
Una variable relaciona un nombre con un valor. Utiliza nombres que expliquen su contenido y evita abreviaturas difíciles de entender.
Mostrar variables
print(nombre)
print(f"{nombre} tiene {edad} años")
Las f-strings permiten insertar expresiones dentro de un texto usando llaves.
Entrada del usuario
nombre = input("¿Cómo te llamas? ").strip()
print(f"Hola, {nombre}")
input() siempre devuelve una string. Para trabajar con números, convierte el valor:
edad = int(input("Edad: "))
print(f"El próximo año tendrás {edad + 1}")
Validar números
while True:
texto = input("Edad: ").strip()
try:
edad = int(texto)
if edad < 0:
print("La edad no puede ser negativa")
continue
break
except ValueError:
print("Escribe un número entero")
La validación evita que una entrada incorrecta cierre el programa.
Condiciones
if edad < 13:
print("Infancia")
elif edad < 18:
print("Adolescencia")
else:
print("Edad adulta")
Python ejecuta únicamente el primer bloque cuya condición sea verdadera. La indentación define qué instrucciones pertenecen a cada bloque.
Operadores
a = 10
b = 3
print(a + b)
print(a - b)
print(a * b)
print(a / b)
print(a // b)
print(a % b)
print(a ** b)
Para comparar utiliza ==, !=, <, >, <= y >=. Combina condiciones con and, or y not.
Listas
frutas = ["manzana", "pera", "naranja"]
frutas.append("uva")
print(frutas[0])
print(len(frutas))
Las listas mantienen un orden y pueden modificarse. El primer elemento usa el índice cero.
Recorrer una lista
for fruta in frutas:
print(fruta)
Para obtener posición y valor:
for numero, fruta in enumerate(frutas, start=1):
print(numero, fruta)
Bucle while
contador = 3
while contador > 0:
print(contador)
contador -= 1
print("Fin")
Asegúrate de que la condición pueda volverse falsa para evitar un bucle infinito.
Diccionarios
usuario = {
"nombre": "Ana",
"edad": 25,
"activo": True,
}
print(usuario["nombre"])
print(usuario.get("telefono", "No informado"))
Los diccionarios almacenan pares clave-valor y son útiles para representar registros.
Funciones
def saludar(nombre):
return f"Hola, {nombre}"
mensaje = saludar("Lucía")
print(mensaje)
Una función recibe datos mediante parámetros, realiza una tarea y puede devolver un resultado con return.
Valores predeterminados
def calcular_total(precio, cantidad=1):
return precio * cantidad
print(calcular_total(10))
print(calcular_total(10, 3))
Trabajar con strings
texto = " aprender Python "
limpio = texto.strip()
print(limpio.upper())
print(limpio.title())
print(limpio.replace("Python", "programación"))
Las strings son inmutables: cada método devuelve una nueva string.
Leer y escribir archivos
from pathlib import Path
ruta = Path("mensaje.txt")
ruta.write_text("Hola desde Python", encoding="utf-8")
contenido = ruta.read_text(encoding="utf-8")
print(contenido)
Especifica UTF-8 para trabajar de forma consistente con acentos y otros caracteres.
Importar módulos
import random
numero = random.randint(1, 10)
print(numero)
Un módulo agrupa funciones y clases reutilizables. Python incluye muchos módulos en su biblioteca estándar.
Proyecto: lista de tareas
tareas = []
def mostrar_tareas():
if not tareas:
print("No hay tareas")
return
for indice, tarea in enumerate(tareas, start=1):
estado = "✓" if tarea["completada"] else " "
print(f"{indice}. [{estado}] {tarea['texto']}")
def agregar_tarea():
texto = input("Nueva tarea: ").strip()
if not texto:
print("La tarea no puede estar vacía")
return
tareas.append({"texto": texto, "completada": False})
def completar_tarea():
mostrar_tareas()
if not tareas:
return
try:
numero = int(input("Número de tarea: "))
tareas[numero - 1]["completada"] = True
except (ValueError, IndexError):
print("Número inválido")
Menú del proyecto
def main():
while True:
print("\n1. Ver tareas")
print("2. Agregar tarea")
print("3. Completar tarea")
print("0. Salir")
opcion = input("Opción: ").strip()
if opcion == "1":
mostrar_tareas()
elif opcion == "2":
agregar_tarea()
elif opcion == "3":
completar_tarea()
elif opcion == "0":
break
else:
print("Opción inválida")
if __name__ == "__main__":
main()
Este proyecto utiliza listas, diccionarios, funciones, bucles, condiciones, input y excepciones.
Siguiente mejora: guardar las tareas
Puedes almacenar la lista en JSON para conservarla al cerrar. Aprende primero a leer y escribir archivos y valida el contenido antes de utilizarlo.
Cómo practicar
Cambia el proyecto: añade eliminación, prioridades, fechas y filtros. Después crea una calculadora, un conversor de unidades y un juego de adivinación. Reescribe cada proyecto sin mirar la solución.
Errores frecuentes
No confundas = con ==, recuerda convertir entradas numéricas, revisa la indentación y lee la última línea del traceback. Evita funciones enormes y nombres como x cuando el valor representa algo específico.
Buenas prácticas
Usa cuatro espacios, nombres descriptivos, funciones pequeñas y comentarios solo cuando expliquen una decisión. Guarda el proyecto con Git y no incluyas contraseñas.
Conclusión
Los fundamentos de Python se construyen combinando variables, condiciones, bucles, colecciones y funciones. Practica cada concepto con ejemplos breves y después intégralos en proyectos. La lista de tareas es una base excelente porque puede crecer hacia archivos, bases de datos e interfaces gráficas sin cambiar los principios aprendidos.






