Python desde Cero
Guía Intensiva
en 7 Días
Creado por Python Perú
💬 Bienvenido al Libro de Python Intensivo
Soy Python Perú, apasionado por la programación y la enseñanza. Este libro ha sido
creado para que aprendas Python desde cero de forma práctica, rápida y aplicada.
Mi objetivo es que puedas usar Python para resolver problemas reales y dar tus primeros
pasos en el mundo del análisis de datos.
¡Gracias por confiar en este libro!
📑 Índice:
Introducción a la Programación y Python
¿Qué es la programación?
Lenguaje Python
Editores de código
Tipos de datos
Comentarios
Variables
Operadores matemáticos
Interpolación de cadenas
Estructuras de Datos
Cadenas
Listas
Tuplas
Diccionarios
Estructuras de Control
Condicionales if, elif, else
Bucles for, while
Control de flujo
Introducción a Funciones
Creación y uso de funciones
Argumentos posicionales y nominales
Uso de *args y **kwargs
Funciones Lambda
Manejo de Archivos y Módulos
Lectura y escritura de archivos de texto
Archivos CSV
Módulo os, random, datetime
Programación Orientada a Objetos (POO)
Qué es una clase y qué es un objeto
Creación de clases, atributos y métodos
Pilares de POO
Cálculo numérico con Numpy
Creación de arrays (vector, matriz)
Operaciones matemáticas y estadísticas
Indexación, slicing y modificación de arrays
Manipulación de Datos con Pandas
Creación de Series y DataFrames
Carga de DataFrames
Selección, filtrado y modificación de datos
Visualización rápida con gráficos básicos
💡 ¿Qué es la Programación?
La programación es el proceso de escribir instrucciones que una computadora puede
entender y ejecutar. Estas instrucciones permiten automatizar tareas, resolver problemas
y crear aplicaciones.
¿Cómo nos comunicamos con la computadora?
Computadora Lenguaje de programación Persona
💡 ¿Qué es un Lenguaje de Programación?
Un lenguaje de programación es un sistema estructurado de comunicación que permite a los
humanos darle instrucciones a una computadora para realizar tareas específicas.
Los lenguajes de programación son como "idiomas" que las computadoras entienden, y nos
permiten:
Crear aplicaciones.
Automatizar procesos.
Analizar datos.
Desarrollar sistemas complejos.
Análisis de datos Desarrollo Web Sistemas Operativos
Sistemas escalables Aplicaciones Videojuegos
📚 Tipos de Lenguajes de Programación
Existen diferentes clasificaciones de lenguajes de programación, pero los más
importantes son:
Lenguajes de Bajo Nivel
Son lenguajes cercanos al lenguaje de la máquina.
Son más difíciles de aprender pero muy rápidos y eficientes.
Ejemplos: Assembler, Lenguaje máquina (binario)
Lenguajes de Alto Nivel
Son fáciles de entender para los humanos.
Utilizan palabras similares al lenguaje natural.
Ejemplos: Python, Java, C, JavaScript, Ruby
Lenguajes Compilados
El código fuente se traduce completamente a lenguaje máquina antes de ejecutarse.
Más rápidos al ejecutarse, pero requieren un proceso previo de compilación.
Ejemplos: C, C++, Java, Go
Lenguajes Interpretados
El código se traduce y ejecuta línea por línea en tiempo real.
Son más flexibles y fáciles de depurar.
Ejemplos: Python, JavaScript, PHP
TODO EL CÓDIGO
CODIGO FUENTE COMPILADOR CODIGO MÁQUINA SALIDA
package main 101010101010 10000
100001101010 110
import “fmt” 101001011100 1111
01010011 11 010100
func main(){
fmt.Println(“Hello”)
}
CODIGO FUENTE INTÉRPRETE
LÍNEA POR LÍNEA
BYTE CODE SALIDA
0 LOAD_GLOBAL
print(“Hello”) 1 (print)
2 (“Hello”)
3 LOAD_CONST
4 CALL_FUNCTION 1
📖 ¿Por qué Python?
Python es uno de los lenguajes más populares y demandados en la industria actual por
varias razones:
Ventajas de Python:
Fácil de aprender y entender: La sintaxis es sencilla y parecida al lenguaje humano.
Versátil: Puedes usarlo para crear aplicaciones web, automatización, análisis de
datos, inteligencia artificial y más.
Comunidad gigante: Hay miles de recursos gratuitos, foros, librerías y soporte.
Muy demandado: Las empresas buscan programadores Python para áreas como desarrollo
web, ciencia de datos y machine learning.
Indicador de la popularidad de la programación
💡 Historia de Python
Python fue creado a finales de la década de 1980 por Guido van Rossum
Python se lanzó al público en 1991.
Desde entonces, Python ha crecido constantemente
y ha tenido varias versiones importantes:
Python 2 (1991 - 2020)
Python 3 (desde 2008 hasta hoy)
💬 Dato curioso:
Python fue creado para ser un lenguaje fácil de leer y escribir, y hoy es uno de los
lenguajes más usados en el mundo.
📖 Características de Python
Sintaxis simple: Fácil de leer y entender.
Lenguaje interpretado: No necesita compilación.
Multiplataforma: Funciona en Windows, Mac y Linux.
Extremadamente flexible: Sirve para desarrollo web, automatización, análisis de
datos, inteligencia artificial y más.
Amplia biblioteca estándar: Python incluye muchas librerías listas para usar.
Gran comunidad: Existen miles de tutoriales, foros y recursos gratuitos.
📖 Usos de Python
Python es un lenguaje multiuso. Estos son sus principales campos de aplicación:
Análisis de Datos:
Procesamiento de grandes volúmenes de información.
Inteligencia Artificial y Machine Learning:
Creación de modelos predictivos.
Desarrollo Web:
Creación de sitios web con frameworks como Django y Flask.
Automatización:
Scripts que agilizan tareas repetitivas.
Desarrollo de Juegos:
Juegos simples con librerías como Pygame.
Ciencia e Investigación:
Uso en biología, física, matemáticas y más.
Desarrollo de Software:
Aplicaciones de escritorio y sistemas complejos.
💡 ¿Qué es un editor de código?
Un editor de código es un programa o herramienta que permite escribir, organizar y
ejecutar código de forma eficiente.
Son como "cuadernos inteligentes" donde los programadores escriben sus instrucciones
para la computadora.
Características de un Buen Editor de Código:
Resalta el código con colores (esto ayuda a leer mejor).
Muestra errores de forma rápida.
Permite ejecutar el código desde el mismo editor.
Puede tener extensiones para mejorar la productividad.
📚 Editores de Código más Usados en Python
Google Colab (Recomendado para principiantes)
Es un editor online y gratuito.
No necesita instalación.
Permite ejecutar Python directamente en el navegador.
Ideal para análisis de datos, gráficos y machine learning.
Compatible con Google Drive (los archivos se guardan automáticamente).
Visual Studio Code (VS Code)
Es un editor de escritorio muy popular.
Personalizable con miles de extensiones.
Compatible con varios lenguajes de programación, no solo Python.
Permite trabajar con carpetas, proyectos grandes y terminal integrada.
💡 Tipos de Datos
Un tipo de dato define qué tipo de información vamos a guardar en una variable.
Los tipos más comunes en Python son:
Tipo de dato Descripción Ejemplo
int Números enteros 0, 5, 100, -20
float Números decimales 3.14, 0.0, -0.5
str Cadenas de texto “Hola”, ‘Python’
bool Verdadero o Falso True, False
📖 ¿Cómo imprimir los valores y sus tipos?
Usamos print() para mostrar los valores y la función type() para conocer su tipo de
dato.
archivo.py
# Entero (int)
print(10)
print(type(10))
# Decimal (float)
print(3.14)
print(type(3.14))
# Texto (str)
print("Python")
print(type("Python"))
# Booleano (bool)
print(True)
print(type(True))
🗒️ Comentarios
Los comentarios son notas en el código que no se ejecutan.
Sirven para explicar lo que hace un bloque de código.
archivo.py
# Este es un comentario
print(“Hola”) # Soy un comentario
“””
Este es un comentario
de varias líneas
“””
Ejemplo real:
archivo.py
try:
# Conexión a la base de datos PostgreSQL
conn = psycopg2.connect(
dbname=dbname,
user=user,
password=password,
host=host,
port=port
)
print("Conexión exitosa a la base de datos")
# Cursor para las querys
cur = conn.cursor()
# Ejecuta la query con el cursor
cur.execute("SELECT * FROM centro_educativo")
# Selecciona todas las filas
row = cur.fetchall()
print("Datos de la tabla centro_educativo:")
# Iterar para imprimir las filas
for r in row[:10]:
print(r)
# Cerrar la conexión
cur.close()
Consejo: Usa comentarios para organizar y explicar tus programas.
📦 Variables
Una variable es un espacio donde guardamos información que puede cambiar.
Reglas para crear variables:
El nombre no debe empezar con número.
No debe tener espacios.
No debe usar símbolos especiales (solo _).
Asignación de variable
en Python
valor: 23
nombre = valor
Contenido
nombre: edad
Etiqueta
archivo.py
edad = 25 # int
pi = 3.14159 # float
nombre = “Ana” # str
activo = True # bool
Ejercicio Guiado
💪 Ejercicio:
Crea un programa que pida tu nombre y edad y muestre un mensaje como:
"Hola Juan, tienes 25 años"
✅ Solución:
archivo.py
nombre = input("Ingresa tu nombre: ")
edad = input("Ingresa tu edad: ")
print(”Hola”, nombre, “tienes”, edad, “años”)
✍️ Ejercicios para Resolver (Tarea)
1.Crea un programa que pida el nombre de una mascota y muestre:
a."Tu mascota se llama [nombre]".
2.Pide dos números al usuario y muestra la suma.
3.Escribe un programa que guarde tu color favorito en una variable y lo muestre en
pantalla.
🔸 Operadores Aritméticos
Los operadores aritméticos permiten realizar cálculos con números.
Operación Símbolo Ejemplo Resultado
Suma + 5 + 3 8
Resta - 10 - 4 6
Multiplicación * 2 * 3 6
División / 8 / 2 4.0
Potencia ** 2 ** 3 8
Módulo % 10 % 3 1
División entera // 7 // 2 3
Ejemplos en Código:
archivo.py
a = 10
b = 3
print(a + b) # Suma: 13
print(a - b) # Resta: 7
print(a * b) # Multiplicación: 30
print(a / b) # División: 3.333...
print(a ** b) # Potencia: 1000
print(a % b) # Módulo: 1
print(a // b) # División entera: 3
🔸 Operadores Relacionales
Los operadores relacionales comparan dos valores y devuelven un resultado booleano (True
o False).
Operador Descripción Ejemplo Resultado
== Igual a 5 == 5 True
!= Diferente de 5 != 3 True
> Mayor que 7 > 4 True
< Menor que 3 < 2 False
>= Mayor o igual que 5 >= 5 True
<= Menor o igual que 3 <= 7 True
Ejemplos en Código:
archivo.py
a = 10
b = 5
print(a > b) # True
print(a == b) # False
print(a != b) # True
print(a < b) # False
print(a >= b) # True
🔸 Operadores Lógicos
Los operadores lógicos permiten combinar varias condiciones.
Operador Descripción Ejemplo Resultado
and Igual a 5 == 5 True
or Diferente de 5 != 3 True
not Mayor que 7 > 4 True
Ejemplos en Código:
archivo.py
a = 10
b = 5
print(a > 5 and b > 3) # True
print(a < 5 or b > 3) # True
print(not(a > 5)) # False
🔍 Interpolación de Cadenas (f-strings)
La interpolación permite insertar variables dentro de un texto de manera simple usando
f"".
Ejemplo:
archivo.py
nombre = "Lucía"
edad = 22
print(f"Hola, soy {nombre} y tengo {edad} años.")
Este código mostrará: Hola, soy Lucía y tengo 22 años.
Ventajas de los f-strings:
Es más limpio y ordenado.
Puedes combinar texto y variables fácilmente.
Puedes realizar operaciones dentro del texto:
archivo.py
a = 5
b = 3
print(f"La suma es {a + b}")
Ejercicio Guiado
💪 Ejercicio:
Escribe un programa que pida al usuario dos números y muestre su suma, resta,
multiplicación y división usando f-strings.
✅ Solución:
archivo.py
a = int(input("Ingresa el primer número: "))
b = int(input("Ingresa el segundo número: "))
print(f"Suma: {a + b}")
print(f"Resta: {a - b}")
print(f"Multiplicación: {a * b}")
print(f"División: {a / b}")
✍️ Ejercicios para Resolver (Tarea)
1.Pide al usuario su nombre y su edad, y muestra:
a."Hola Juan, el próximo año tendrás 26 años."
2.Escribe un programa que calcule el área de un rectángulo (base x altura) y muestre el
resultado con f-strings.
3.Crea un programa que muestre cuánto es 10 elevado al cuadrado usando f-strings.
💡 Función print()
La función print() se utiliza para mostrar información en la pantalla.
Es una de las funciones más básicas y más usadas en Python.
archivo.py
print("Hola, mundo") # Muestra un texto
print(5 + 3) # Muestra el resultado de una operación
print(10) # Muestra un número
🔍 Función type()
La función type() permite identificar rápidamente el tipo de dato de cualquier valor o
variable.
archivo.py
print(type(10)) # <class 'int'>
print(type(3.14)) # <class 'float'>
print(type(“Hola”)) # <class 'str'>
print(type(True)) # <class 'bool'>
💡 Función input()
La función input() se usa para pedir información al usuario desde el teclado.
El dato que el usuario ingresa se guarda como texto (str).
archivo.py
nombre = input("Ingresa tu nombre: ")
print(f"Hola {nombre}")
🔄 Convertir el dato ingresado
Si queremos trabajar con números, debemos convertir el texto a entero o decimal.
Ejemplo: Conversión a entero
archivo.py
edad = int(input("Ingresa tu edad: "))
print(f"El próximo año tendrás {edad + 1} años.")
Ejemplo: Conversión a decimal
archivo.py
nota = float(input("Ingresa tu nota: "))
print(f"Tu nota es {nota}")
Ejercicio Guiado
💪 Ejercicio:
Pide al usuario dos números, suma ambos y muestra el resultado.
✅ Solución:
archivo.py
a = int(input("Ingresa el primer número: "))
b = int(input("Ingresa el segundo número: "))
print(f"La suma es {a + b}")
✍️ Ejercicios para Resolver (Tarea)
1.Pide al usuario su nombre y edad. Muestra un saludo usando f-strings.
2.Pide dos números al usuario, realiza la multiplicación y muestra el resultado.
3.Pide al usuario el precio de un producto y calcula cuánto costaría si se compra con
un 18% de IGV.
Estructuras de Datos
💡 ¿Qué es una Cadena?
En la vida usamos cadenas de texto todo el tiempo:
Tu nombre: "Carlos"
Un mensaje: "Hola, ¿cómo estás?"
Una contraseña: "python123"
Una cadena es simplemente un conjunto de caracteres (letras, números o símbolos)
escritos entre comillas simples o dobles.
archivo.py
texto = "Hola Python"
📌 Indexación (Indexing)
Cada letra de la cadena tiene una posición (índice) que empieza desde 0.
Los índices negativos comienzan desde el final.
-11 -10 -9 -8 -7 -6 -5 -4 -3 -2 -1
H o l a P y t h o n
0 1 2 3 4 5 6 7 8 9 10
Ejemplo:
archivo.py
print(texto[0]) # ‘H’
print(texto[1]) # ‘o’
print(texto[4]) # ‘ ’
print(texto[-1]) # ‘n’ (última letra)
📌 Slicing (Corte de Cadenas)
Permite obtener fragmentos de una cadena usando inicio:fin.
En el corte inicio:fin, el fin no se incluye.
Ejemplo:
archivo.py
print(texto[0:5]) # ‘Hola ’
print(texto[:9]) # ‘Hola Pyth’
print(texto[5:]) # ‘Python’
print(texto[-11:-8]) # ‘Hol’
🔧 Métodos Importantes para Cadenas
Método Descripción Ejemplo
lower() Convierte a minúscula ‘Python’.lower() → ‘python’
upper() Convierte a mayúscula ‘Python’.upper() → ‘PYTHON’
capitalize() Primera letra en mayúscula ‘python’.capitalize() → ‘Python’
count() Cuenta cuántas veces aparece ‘Python’.count(‘y’) → 1
find() Busca y da la posición ‘Python’.find(‘t’) → 2
replace() Reemplaza texto por otro ‘Python’.replace(‘o’, ‘a’) → ‘Pythan’
strip() Elimina espacios externos ‘ Python ’.strip() → ‘Python’
split() Divide por palabras ‘Python Perú’.split() → [‘Python’, ‘Perú’]
Ejercicio Guiado
💪 Ejercicio:
Pide al usuario una frase y muestra:
La frase en mayúsculas.
La cantidad de veces que aparece la letra "a".
La palabra que ocupa la posición 2 después de usar split().
✅ Solución:
archivo.py
frase = input("Escribe una frase: ")
print(frase.upper())
print(f"La letra 'a' aparece {frase.count('a')} veces.")
palabras = frase.split()
if len(palabras) >= 3:
print(f"La tercera palabra es: {palabras[2]}")
else:
print("La frase tiene menos de tres palabras.")
✍️ Ejercicios para Resolver (Tarea)
1.Pide una palabra al usuario y muestra la primera y última letra.
2.Pide una oración y reemplaza todas las letras "e" por "*".
3.Pide al usuario ingresar su nombre y muestra:
Su nombre en mayúsculas.
Su nombre en minúsculas.
Cuántas letras tiene su nombre (sin espacios).
💡 ¿Qué es una Lista?
En la vida usamos listas todo el tiempo:
Una lista de compras: leche, pan, huevos.
Una lista de tareas: estudiar, hacer ejercicio, limpiar.
Una lista de reproducción: tus canciones favoritas.
Una lista es una colección ordenada y modificable de elementos.
Se escriben entre corchetes [ ] y pueden contener diferentes tipos de datos.
archivo.py
vocales = [‘a’, ‘e’, ‘i’, ‘o’, ‘u’]
📌 Indexación (Indexing)
Cada elemento tiene una posición (índice) que empieza desde 0.
También puedes acceder con índices negativos.
-5 -4 -3 -2 -1
[ ‘a’ ‘e’ ‘i’ ‘o’ ‘u’
]
0 1 2 3 4
Ejemplos:
archivo.py
print(vocales[0]) # ‘a’
print(vocales[1]) # ‘e’
print(vocales[-1]) # ‘u’ (último elemento)
📌 Slicing (Corte de Listas)
Permite extraer partes de la lista usando inicio:fin.
El elemento final no se incluye.
Ejemplo:
archivo.py
print(vocales[0:3]) # [‘a’, ‘e’, ‘i’]
print(vocales[:2]) # [‘a’, ‘e’]
print(vocales[3:]) # [‘o’, ‘u’]
print(vocales[-3:]) # [‘i’, ‘o’, ‘u’]
🔧 Métodos Importantes para Listas
Método Descripción Ejemplo
append() Agrega un elemento al final lista.append(6)
insert() Inserta un elemento en una posición lista.insert(2, ‘nuevo’)
remove() Elimina un elemento lista.remove(‘verde’)
copy() Realiza una copia de la lista lista.copy()
pop() Elimina un elemento por índice lista.pop(1)
index() Devuelve la posición de un valor lista.index(‘a’)
count() Cuenta cuántas veces aparece un valor lista.count(3)
reverse() Invierte el orden de la lista lista.reverse()
sort() Ordena la lista (números o letras) lista.sort()
✅ Ejemplo Práctico:
archivo.py
frutas = ["manzana", "plátano", "pera"]
frutas.append("uva") # Agrega al final
frutas.insert(1, "kiwi") # Inserta en la posición 1
frutas.remove("plátano") # Elimina "plátano"
print(frutas) # ['manzana', 'kiwi', 'pera', 'uva']
Ejercicio Guiado
💪 Ejercicio:
Crea una lista con tus tres comidas favoritas. Luego:
Agrega una nueva comida.
Elimina la comida en la posición 2.
Muestra la lista final.
✅ Solución:
archivo.py
frutas = ["manzana", "plátano", "pera"]
frutas.append("uva") # Agrega al final
frutas.insert(1, "kiwi") # Inserta en la posición 1
frutas.remove("plátano") # Elimina "plátano"
print(frutas) # ['manzana', 'kiwi', 'pera', 'uva']
✍️ Ejercicios para Resolver (Tarea)
1.Crea una lista con tus 5 números favoritos y ordénala de menor a mayor.
2.Pide al usuario ingresar 3 colores, guárdalos en una lista y muestra el primer y
último color.
3.Crea una lista con 4 animales, agrega uno más y elimina el primero.
💡 ¿Qué es una Tupla?
En la vida también tenemos cosas que no suelen cambiar:
Las coordenadas de un lugar: (10, 20)
Las fechas importantes: (25, "diciembre")
Las tuplas nos permiten guardar varios datos pero no podemos cambiarlos.
Se escriben entre paréntesis ( ).
archivo.py
id = (101, 102, 103, 104, 105)
📌 Indexación (Indexing)
Las posiciones funcionan igual que en listas.
-5 -4 -3 -2 -1
( 101 102 103 104 105
)
0 1 2 3 4
Ejemplos:
archivo.py
print(id[0]) # 101
print(id[1]) # 102
print(id[-1]) # 105 (último elemento)
📌 Slicing (Corte de Tuplas)
Al igual que las listas, el final no se incluye.
Ejemplo:
archivo.py
print(id[0:3]) # (101, 102, 103)
print(id[:2]) # (101, 102)
print(id[3:]) # (104, 105)
print(id[-3:]) # (103, 104, 105)
🔧 Métodos Importantes para Tuplas
Método Descripción Ejemplo
count() Cuenta cuántas veces aparece un valor tupla.count(103)
index() Devuelve la posición de un valor tupla.index(‘verde’)
Las tuplas no pueden modificarse. No existen métodos como append(), remove(), ni sort()
Ejercicio Guiado
💪 Ejercicio:
Crea una tupla con los días de la semana.
Muestra el tercer día y cuenta cuántas veces aparece el día "lunes".
✅ Solución:
archivo.py
dias = ("lunes", "martes", "miércoles", "jueves", "viernes", "lunes")
print(dias[2]) # miércoles
print(dias.count("lunes")) # 2 veces
✍️ Ejercicios para Resolver (Tarea)
1.Crea una tupla con tus 4 colores favoritos y muestra el primero y el último.
2.Crea una tupla con 5 números y muestra los 3 primeros usando slicing.
3.Crea una tupla con letras y verifica la posición de la letra "a".
💡 ¿Qué es un Diccionario?
En la vida usamos diccionarios para guardar información organizada por categorías:
Un contacto de WhatsApp:
Nombre: Juan
Teléfono: 987654321
Un producto:
Nombre: Laptop
Precio: 2500
Un diccionario es una colección desordenada de pares clave-valor.
Se escriben entre llaves { }.
archivo.py
persona = {"nombre": "Carlos", "edad": 30}
📌 Acceder a Elementos
Se accede usando la clave, no por posición.
KEY VALUE
nombre Carlos
edad 30
Ejemplos:
archivo.py
print(persona["nombre"]) # Carlos
print(persona["edad"]) # 30
🔧 Métodos Importantes para Diccionarios
Método Descripción Ejemplo
get() Busca una clave de forma segura dict.get(‘nombre’)
keys() Devuelve todas las claves dict.keys()
values() Devuelve todos los valores dict.values()
items() Devuelve clave y valor como tuplas dict.items()
update() Agrega o actualiza una clase dict.update({’edad’: 35})
pop() Elimina una clave dict.pop(‘edad’)
✅ Ejemplo Práctico:
archivo.py
auto = {"marca": "Toyota", "año": 2020, "color": "rojo"}
print(auto.get("marca")) # Toyota
print(auto.keys()) # dict_keys(['marca', 'año', 'color'])
print(auto.values()) # dict_values(['Toyota', 2020, 'rojo'])
auto.update({"año": 2022}) # Actualiza el año
auto.pop("color") # Elimina el color
print(auto)
Ejercicio Guiado
💪 Ejercicio:
Crea un diccionario con tu nombre, edad y ciudad.
Luego:
Muestra todas las claves.
Muestra todos los valores.
Agrega tu ocupación al diccionario.
✅ Solución:
archivo.py
persona = {"nombre": "Ana", "edad": 25, "ciudad": "Lima"}
print(persona.keys())
print(persona.values())
persona.update({"ocupación": "Estudiante"})
print(persona)
✍️ Ejercicios para Resolver (Tarea)
1.Crea un diccionario de un producto con nombre, precio y stock. Muestra el precio.
2.Pide al usuario su nombre, edad y país, y guárdalos en un diccionario.
3.Elimina una clave del diccionario usando pop() y muestra el diccionario final