📘 Manual Básico de Python
Guía didáctica para principiantes
Autor: Vicente Giraldo Gómez
Edición: Noviembre 2025
ÍNDICE
1. ¿Qué es Python?
2. Instalación y configuración del entorno
3. Tu primer programa
4. Variables y tipos de datos
5. Operadores
6. Estructuras de control
7. Funciones
8. Programación Orientada a Objetos (POO)
9. Listas, tuplas, diccionarios y conjuntos
10.Entrada y salida de datos
11.Manejo de archivos
12.Módulos y paquetes
13.Errores y excepciones
14.Buenas prácticas
15.Recursos para seguir aprendiendo
Capítulo 1: ¿Qué es Python?
1.1 Introducción
Python es un lenguaje de programación interpretado, de alto nivel y de propósito
general.
Fue creado por Guido van Rossum y publicado en 1991.
Su filosofía se centra en la legibilidad del código y la simplicidad.
Características principales:
● Sintaxis clara y fácil de aprender.
● Multiplataforma (Windows, macOS, Linux).
● Gran comunidad y miles de librerías.
● Ideal para principiantes y profesionales.
1.2 Aplicaciones de Python
● Desarrollo web (Flask, Django).
● Ciencia de datos y Machine Learning (pandas, scikit-learn).
● Automatización de tareas.
● Desarrollo de videojuegos y aplicaciones de escritorio.
1.3 Ejemplo básico
# Mi primer programa
print("¡Hola, mundo!")
Salida:
¡Hola, mundo!
1.4 Ejercicios prácticos
1. Muestra tu nombre y edad usando print().
2. Describe para qué te gustaría usar Python.
3. Busca tres empresas que utilicen Python.
Capítulo 2: Instalación y configuración del entorno
2.1 Descarga e instalación
Descarga Python desde [Link]/downloads.
Durante la instalación, marca la opción Add Python to PATH.
2.2 Verificación
Abre la terminal y escribe:
python --version
Deberías ver algo como:
Python 3.12.x
2.3 Uso del intérprete interactivo
python
>>> print("Hola desde el intérprete")
Para salir, escribe exit() o pulsa Ctrl + Z (Windows) o Ctrl + D (macOS/Linux).
2.4 Ejecutar archivos .py
Crea un archivo [Link] con:
print("Hola, Vicente")
Ejecuta con:
python [Link]
2.5 Entornos de desarrollo recomendados
● IDLE: viene con Python, sencillo.
● VS Code: potente y gratuito.
● PyCharm: profesional, ideal para proyectos grandes.
2.6 Ejercicios prácticos
1. Instala Python y verifica su versión.
2. Crea un archivo .py con tu primer saludo.
3. Instala y configura Visual Studio Code.
Capítulo 3: Tu primer programa
3.1 “Hola, mundo”
El clásico primer paso:
print("¡Hola, mundo!")
3.2 Comentarios
Los comentarios explican el código y se escriben con #.
# Esto es un comentario
print("Ejemplo de comentario")
3.3 Uso de variables
nombre = "Vicente"
print("Hola,", nombre)
Salida:
Hola, Vicente
3.4 Errores comunes
Error Causa Solución
SyntaxError Error de sintaxis Revisa comillas o
paréntesis
NameError Variable no definida Declara la variable antes
IndentationEr Mal uso de Usa 4 espacios por nivel
ror espacios
3.5 Ejercicios prácticos
1. Crea un programa con tres líneas de texto.
2. Usa comentarios para describir cada instrucción.
3. Muestra un mensaje con tu nombre y edad.
Capítulo 4: Variables y tipos de datos
4.1 Concepto de variable
Una variable es un contenedor de información.
Ejemplo:
nombre = "Vicente"
edad = 25
print(nombre, edad)
4.2 Tipos de datos básicos
Tipo Ejemplo Descripció
n
int 10 Enteros
floa 3.14 Decimales
t
str "Hola" Texto
bool True, Lógico
False
None None Sin valor
4.3 Conversión de tipos
x = "10"
y = int(x)
print(y + 5)
4.4 Asignación múltiple
a, b, c = 1, 2, 3
print(a, b, c)
4.5 Buenas prácticas
● Usa nombres descriptivos: nombre_usuario, edad_media.
● No uses caracteres especiales ni espacios.
4.6 Ejercicios prácticos
1. Declara variables con tu nombre, edad y ciudad.
2. Convierte una cadena numérica en entero.
3. Usa type() para comprobar el tipo de cada variable.
4. Crea un programa que calcule el área de un triángulo.
Bloque 2 – Capítulos 5 a 8
Capítulo 5: Operadores
5.1 Introducción
Los operadores permiten realizar cálculos y comparaciones entre valores.
Python ofrece varios tipos de operadores que se clasifican según su función.
5.2 Operadores aritméticos
Operador Descripción Ejemplo Resultad
o
+ Suma 5 + 3 8
- Resta 10 - 4 6
* Multiplicación 6 * 7 42
/ División 15 / 2 7.5
// División entera 15 // 7
2
% Resto (módulo) 15 % 2 1
** Potencia 2 ** 3 8
Ejemplo:
a = 10
b = 3
print("Suma:", a + b)
print("Potencia:", a ** b)
5.3 Operadores de comparación
Operador Significado Ejemplo Resultad
o
== Igual 5 == 5 True
!= Distinto 5 != 3 True
> Mayor que 7 > 4 True
< Menor que 7 < 4 False
>= Mayor o igual 5 >= 5 True
<= Menor o igual 3 <= 2 False
5.4 Operadores lógicos
Operador Descripción Ejemplo Resultad
o
and Verdadero si ambos lo (5 > 2) and (3 True
son < 4)
or Verdadero si uno lo es (5 > 10) or (3 True
< 4)
not Invierte el valor not(True) False
5.5 Ejercicios prácticos
1. Calcula el resultado de (10 + 5) * 3.
2. Crea un programa que pida dos números y muestre su suma, resta y producto.
3. Usa un operador lógico para verificar si un número está entre 1 y 10.
Capítulo 6: Estructuras de control
6.1 Condicionales: if, elif, else
edad = 20
if edad >= 18:
print("Eres mayor de edad")
else:
print("Eres menor de edad")
Ejemplo con elif:
nota = 7
if nota >= 9:
print("Excelente")
elif nota >= 7:
print("Notable")
else:
print("Suspenso")
6.2 Bucles for
for i in range(5):
print("Iteración:", i)
6.3 Bucles while
contador = 1
while contador <= 3:
print(contador)
contador += 1
6.4 Control de bucles
● break: sale del bucle.
● continue: salta a la siguiente iteración.
● pass: no hace nada (marcador).
6.5 Ejercicios prácticos
1. Programa que pida la edad y diga si puede votar.
2. Crea un bucle que imprima los números del 1 al 10.
3. Imprime solo los números pares entre 1 y 20.
Capítulo 7: Funciones
7.1 Concepto
Una función es un bloque de código reutilizable que realiza una tarea.
def saludar():
print("Hola, Vicente")
saludar()
7.2 Parámetros y retorno
def sumar(a, b):
return a + b
resultado = sumar(5, 3)
print(resultado)
7.3 Parámetros con valores por defecto
def saludar(nombre="invitado"):
print(f"Hola, {nombre}")
7.4 Funciones anónimas (lambda)
doblar = lambda x: x * 2
print(doblar(5))
7.5 Ejercicios prácticos
1. Crea una función que reciba un nombre y muestre un saludo.
2. Crea una función que devuelva el cuadrado de un número.
3. Crea una función que calcule el área de un círculo.
Capítulo 8: Programación Orientada a Objetos (POO)
8.1 Introducción
La Programación Orientada a Objetos (POO) organiza el código en torno a clases y
objetos, que combinan datos y comportamientos.
8.2 Clases y objetos
class Persona:
def __init__(self, nombre, edad):
[Link] = nombre
[Link] = edad
def saludar(self):
print(f"Hola, me llamo {[Link]} y tengo {[Link]}
años.")
Uso:
p1 = Persona("Vicente", 25)
[Link]()
8.3 Herencia
class Persona:
def __init__(self, nombre):
[Link] = nombre
class Estudiante(Persona):
def estudiar(self):
print(f"{[Link]} está estudiando.")
8.4 Polimorfismo
class Animal:
def hablar(self):
print("Sonido genérico")
class Perro(Animal):
def hablar(self):
print("Guau!")
for a in [Animal(), Perro()]:
[Link]()
8.5 Encapsulación y propiedades
class Cuenta:
def __init__(self, titular, saldo):
[Link] = titular
self.__saldo = saldo
@property
def saldo(self):
return self.__saldo
8.6 Métodos especiales
class Libro:
def __init__(self, titulo):
[Link] = titulo
def __str__(self):
return f"Libro: {[Link]}"
8.7 Ejercicios prácticos
1. Crea una clase Coche con métodos arrancar() y detener().
2. Crea una clase Rectángulo con un método area().
3. Implementa herencia con clases Empleado y Gerente.
4. Usa @property para controlar el acceso a un atributo.
Bloque 3 – Capítulos 9 a 12
Capítulo 9: Entrada y salida de datos (Input / Output)
9.1 Introducción
La entrada y salida de datos permiten que el programa interactúe con el usuario.
Python usa la función input() para leer datos y print() para mostrarlos.
9.2 Entrada de datos con input()
nombre = input("¿Cómo te llamas? ")
print("Hola,", nombre)
Todo lo que se introduce por teclado se recibe como texto (str).
9.3 Conversión de tipos
edad = int(input("¿Cuántos años tienes? "))
print("El año que viene tendrás", edad + 1, "años.")
Si se introduce algo que no es número, el programa genera un error (ValueError).
9.4 Salida de datos con print()
nombre = "Vicente"
edad = 25
print(f"Hola {nombre}, tienes {edad} años.")
9.5 Personalización de print()
print("Python", "es", "genial", sep="-", end="!\n")
Salida:
Python-es-genial!
9.6 Texto multilínea
print("""
Bienvenido a Python
Aprenderás paso a paso
¡Disfruta!
""")
9.7 Ejercicios prácticos
1. Pide al usuario su nombre y edad, y muestra un saludo.
2. Solicita dos números y muestra su suma.
3. Pide un precio y calcula el total con IVA (21%).
4. Muestra un mensaje multilínea con formato personalizado.
Capítulo 10: Manejo de archivos
10.1 Introducción
Python puede leer y escribir archivos fácilmente con la función open().
10.2 Modos de apertura
Modo Descripción
"r" Lectura
"w" Escritura
(sobrescribe)
"a" Añadir (append)
"r+" Lectura y escritura
10.3 Leer archivos
archivo = open("[Link]", "r")
contenido = [Link]()
print(contenido)
[Link]()
10.4 Escribir archivos
archivo = open("[Link]", "w")
[Link]("Primera línea\nSegunda línea\n")
[Link]()
10.5 Usar with open
with open("[Link]", "w") as archivo:
[Link]("Aprendiendo Python con Vicente\n")
El archivo se cierra automáticamente al salir del bloque with.
10.6 Leer líneas como lista
with open("[Link]", "r") as f:
lineas = [Link]()
print(lineas)
10.7 Comprobar si existe un archivo
import os
if [Link]("[Link]"):
print("El archivo existe.")
else:
print("Archivo no encontrado.")
10.8 Ejercicios prácticos
1. Crea un archivo con tres líneas sobre ti y léelo.
2. Crea un programa que guarde una lista de tareas.
3. Comprueba si un archivo existe antes de leerlo.
4. Añade texto al final de un archivo existente.
Capítulo 11: Módulos y paquetes
11.1 Introducción
Un módulo es un archivo .py con funciones o clases que se pueden importar en otros
programas.
Permite reutilizar código y mantenerlo ordenado.
11.2 Importar módulos
import math
print([Link](16))
Salida:
4.0
11.3 Importar partes específicas
from math import pi, sqrt
print(pi)
print(sqrt(9))
11.4 Alias de módulos
import math as m
print([Link](0))
11.5 Crear un módulo propio
Archivo [Link]:
def saludar(nombre):
print(f"Hola, {nombre}")
Archivo principal:
import utilidades
[Link]("Vicente")
11.6 Crear un paquete
mi_paquete/
│
├── __init__.py
├── [Link]
└── [Link]
from mi_paquete.saludos import saludar
saludar("Vicente")
11.7 Instalar módulos externos
pip install requests
Ejemplo:
import requests
r = [Link]("[Link]
print(r.status_code)
11.8 Ejercicios prácticos
1. Usa el módulo math para calcular raíces y potencias.
2. Crea tu propio módulo con una función personalizada.
3. Instala requests y haz una consulta a una API.
Capítulo 12: Errores y excepciones
12.1 Introducción
Los errores son inevitables.
Python detiene el programa y lanza una excepción cuando ocurre un fallo.
Podemos capturarlas y controlarlas para evitar que el programa se bloquee.
12.2 Ejemplo de error
x = int(input("Introduce un número: "))
print("El doble es:", x * 2)
Si el usuario introduce texto:
ValueError: invalid literal for int()
12.3 Capturar excepciones
try:
x = int(input("Introduce un número: "))
print(10 / x)
except:
print("Error: entrada no válida.")
12.4 Tipos específicos
try:
x = int(input("Introduce un número: "))
print(10 / x)
except ValueError:
print("Debes introducir un número.")
except ZeroDivisionError:
print("No se puede dividir entre cero.")
12.5 Uso de else y finally
try:
archivo = open("[Link]")
except FileNotFoundError:
print("Archivo no encontrado.")
else:
print("Archivo leído correctamente.")
finally:
print("Fin del programa.")
12.6 Crear tus propias excepciones
class ErrorEdad(Exception):
pass
def verificar_edad(edad):
if edad < 18:
raise ErrorEdad("Debes ser mayor de edad.")
try:
verificar_edad(15)
except ErrorEdad as e:
print("Error:", e)
12.7 Ejercicios prácticos
1. Captura errores de conversión con ValueError.
2. Controla una división entre cero.
3. Crea una excepción personalizada ErrorNegativo.
4. Usa try, except, else y finally en un solo bloque.
Capítulo 13: Buenas prácticas en Python
13.1 Introducción
El objetivo de la programación no es solo que el código funcione, sino que sea legible,
mantenible y coherente.
Python fomenta esto con su filosofía:
import this
Fragmento del “Zen de Python”:
Lo bello es mejor que lo feo.
Lo simple es mejor que lo complejo.
La legibilidad cuenta.
13.2 Estilo PEP 8
PEP 8 es la guía oficial de estilo de Python.
Recomendación Ejemplo correcto
Usa 4 espacios por nivel de if True: →
indentación ····print("Hola")
Nombres de variables en minúsculas nombre_usuario
Nombres de clases en CamelCase class Persona:
Líneas de máximo 79 caracteres —
Espacios entre operadores x = y + 1
13.3 Comentarios y documentación
Los comentarios deben explicar el porqué, no lo obvio.
Ejemplo:
# Calcula el área de un triángulo a partir de base y altura
def area_triangulo(base, altura):
return (base * altura) / 2
Documenta funciones con docstrings:
def sumar(a, b):
"""Devuelve la suma de dos números."""
return a + b
13.4 Organización del código
Orden lógico recomendado:
1. Importaciones.
2. Constantes.
3. Funciones y clases.
4. Bloque principal.
import math
PI = 3.1416
def area_circulo(radio):
return PI * radio ** 2
if __name__ == "__main__":
print(area_circulo(5))
13.5 Entornos virtuales
Crea entornos independientes con:
python -m venv mi_entorno
Actívalo:
● Windows: mi_entorno\Scripts\activate
● macOS/Linux: source mi_entorno/bin/activate
13.6 Uso de Git
Controla versiones de tu código:
git init
git add .
git commit -m "Versión inicial"
Sube tu proyecto a GitHub o GitLab para mantener copias seguras.
13.7 Ejercicios prácticos
1. Refactoriza un código desordenado siguiendo PEP 8.
2. Añade docstrings a tus funciones.
3. Crea un entorno virtual y prueba una librería.
4. Publica un repositorio con un pequeño script Python.
Capítulo 14: Recursos para seguir aprendiendo
14.1 Documentación oficial
📘 [Link]
Contiene guías, tutoriales y referencias completas del lenguaje.
14.2 Cursos y tutoriales
● W3Schools Python: [Link]
● Programiz Python: [Link]
● MoureDev (YouTube, español): [Link]
14.3 Libros recomendados
📗 Automatiza tareas aburridas con Python – Al Sweigart
📙 Python Crash Course – Eric Matthes
📘 Fluent Python – Luciano Ramalho
📕 Think Python – Allen B. Downey
14.4 Comunidades
● Foros Python España
● Stack Overflow en español
● Discord Python España
14.5 Plataformas de práctica
Sitio Descripción
HackerRank Desafíos por niveles.
Codewars Retos tipo katas.
LeetCode Ejercicios de lógica y entrevistas.
Replit Ejecutar Python online.
14.6 Proyectos para practicar
1. Calculadora simple.
2. Juego de adivinar el número.
3. Gestor de tareas con archivos.
4. Script web que use una API (requests).
5. Automatización de carpetas con os.
Capítulo 15: Introducción a la POO
15.1 Concepto básico
La Programación Orientada a Objetos (POO) organiza el código mediante clases y
objetos.
Ejemplo:
class Persona:
def __init__(self, nombre):
[Link] = nombre
def saludar(self):
print(f"Hola, soy {[Link]}")
p1 = Persona("Vicente")
[Link]()
15.2 Atributos y métodos
Los atributos guardan datos y los métodos definen comportamientos.
class Coche:
def __init__(self, marca, color):
[Link] = marca
[Link] = color
def describir(self):
print(f"Coche {[Link]} de color {[Link]}")
15.3 Atributos de clase y de instancia
class Perro:
especie = "Canino"
def __init__(self, nombre):
[Link] = nombre
15.4 Ejercicios prácticos
1. Crea una clase Animal con método presentar().
2. Crea una clase Rectángulo que calcule el área.
3. Crea una clase CuentaBancaria con métodos depositar() y retirar().
Capítulo 16: Herencia y Polimorfismo
16.1 Herencia básica
class Persona:
def __init__(self, nombre):
[Link] = nombre
class Estudiante(Persona):
def estudiar(self):
print(f"{[Link]} está estudiando.")
16.2 Sobrescritura de métodos
class Animal:
def hablar(self):
print("Sonido genérico")
class Perro(Animal):
def hablar(self):
print("Guau!")
16.3 Función super()
class Empleado(Persona):
def __init__(self, nombre, salario):
super().__init__(nombre)
[Link] = salario
16.4 Herencia múltiple
class A: pass
class B: pass
class C(A, B): pass
16.5 Ejercicios prácticos
1. Vehículo → Coche (herencia simple).
2. Persona → Empleado → Gerente (herencia en cadena).
3. Figura → Círculo y Cuadrado (polimorfismo).
Capítulo 17: Encapsulación y clases avanzadas
17.1 Encapsulación
Proteger los datos internos de una clase:
class Cuenta:
def __init__(self, titular, saldo):
[Link] = titular
self.__saldo = saldo # privado
def mostrar_saldo(self):
print(f"Saldo: {self.__saldo} €")
17.2 Propiedades (@property)
Controlar acceso con propiedades:
class Producto:
def __init__(self, nombre, precio):
[Link] = nombre
self._precio = precio
@property
def precio(self):
return self._precio
@[Link]
def precio(self, valor):
if valor >= 0:
self._precio = valor
else:
print("El precio no puede ser negativo.")
17.3 Métodos especiales
Método Descripción
__str_ Representación en texto
_
__len_ Longitud
_
__eq__ Comparación de
igualdad
Ejemplo:
class Libro:
def __init__(self, titulo):
[Link] = titulo
def __str__(self):
return f"Libro: {[Link]}"
17.4 Ejercicios prácticos
1. Crea una clase Cuenta con atributo privado __saldo.
2. Implementa un @property para controlar precios.
3. Añade método __str__() a una clase Libro.
4. Compara áreas de dos rectángulos con __eq__().
🎓 Conclusión del Manual
¡Enhorabuena, Vicente!
Has completado el Manual Básico de Python – Guía Didáctica para Principiantes
(Edición Noviembre 2025).
Ahora dominas los fundamentos del lenguaje, la programación estructurada y los pilares de
la POO en Python.
El siguiente paso es practicar y construir tus propios proyectos.
Recuerda: la práctica constante es la mejor forma de aprender a programar.