Python es un lenguaje de programación interpretado, de alto nivel y con una sintaxis clara y fácil de entender.
Es ampliamente utilizado en diversas áreas como desarrollo web, análisis de datos, inteligencia artificial, entre otros.
Instalación
Puedes descargar Python desde su sitio oficial y seguir las instrucciones de instalación para tu sistema operativo.
Hola, Mundo en Python
print("Hola, Mundo!")
Fundamentos de Python
Imprimir en pantalla
Para mostrar texto o variables en la consola.
print("Hola, mundo")
Comentarios
Los comentarios comienzan con #
y no se ejecutan.
# Esto es un comentario
Variables y tipos de datos
Declaración de variables
Python es dinámico, no requiere declarar tipos de variables explícitamente.
x = 5 # Entero
y = 3.14 # Flotante
nombre = "Python" # Cadena
activo = True # Booleano
Tipos de Datos
- int: Entero sin límite de tamaño
- float: Número de punto flotante
- str: Cadena de caracteres
- bool: Valor booleano (
True
oFalse
)
Operadores básicos
Operadores aritméticos como suma, resta, multiplicación y división.
a = 5 + 3
b = 10 - 2
c = 6 * 3
d = 10 / 2
Concatenación de Cadenas
saludo = "Hola, " + "Mundo!"
Estructuras de control
Condicionales
If, elif, else
Condicional básico que evalúa una condición y ejecuta un bloque de código.
if x > 5:
print("x es mayor que 5")
elif x == 5:
print("x es igual a 5")
else:
print("x es menor que 5")
Bucles
Bucle for
Itera sobre una secuencia de elementos, como listas o cadenas.
for i in range(5):
print(i)
Bucle while
Ejecuta el bloque mientras la condición es verdadera.
i = 0
while i < 5:
print(i)
i += 1
Instrucciones break y continue
Para interrumpir o saltar iteraciones.
for i in range(10):
if i == 5:
break # Rompe el bucle
elif i % 2 == 0:
continue # Salta esta iteración
print(i)
Estructuras de datos
Listas
Las listas son colecciones ordenadas y modificables.
mi_lista = [1, 2, 3, 4, 5]
print(mi_lista[0]) # Acceder al primer elemento
mi_lista.append(6) # Añadir un elemento
mi_lista.remove(3) # Eliminar un elemento
Slicing
Acceder a sublistas utilizando índices.
sublista = mi_lista[1:4] # Del segundo al cuarto elemento
Tuplas
Las tuplas son inmutables y ordenadas.
mi_tupla = (1, 2, 3)
Diccionarios
Diccionarios almacenan pares clave-valor.
mi_diccionario = {"nombre": "Python", "año": 1991}
print(mi_diccionario["nombre"]) # Acceder al valor de una clave
mi_diccionario["año"] = 2023 # Modificar un valor
Conjuntos (sets)
Un conjunto no admite duplicados.
mi_conjunto = {1, 2, 3, 4, 4}
mi_conjunto.add(5) # Añadir un elemento
mi_conjunto.remove(3) # Eliminar un elemento
Listas por comprensión
Crear listas de manera concisa.
cuadrados = [x**2 for x in range(10)]
Funciones
Declaración de Funciones
def suma(a, b):
return a + b
Llamada a Funciones
resultado = suma(5, 3)
Argumentos opcionales y valores por defecto
def saludo(nombre="Amigo"):
print(f"Hola, {nombre}")
Funciones lambda
Función anónima de una sola línea.
suma = lambda x, y: x + y
print(suma(2, 3))
Módulos y paquetes
Importación de módulos
import math
print(math.sqrt(16)) # Imprimir la raíz cuadrada de 16
Importar una función específica
from math import sqrt
print(sqrt(16))
Programación orientada a objetos (OOP)
Declaración de clases
class Persona:
def __init__(self, nombre, edad):
self.nombre = nombre
self.edad = edad
def presentarse(self):
print("Hola, soy", self.nombre, "y tengo", self.edad, "años.")
Creación de objetos
persona1 = Persona("Luis", 30)
persona1.presentarse()
Encapsulación y propiedades
Control de acceso a los atributos y métodos.
class Persona:
def __init__(self, nombre, edad):
self._nombre = nombre # Atributo protegido
self.__edad = edad # Atributo privado
def get_edad(self):
return self.__edad
Herencia
Una clase hija hereda de una clase padre.
class Vehiculo:
def __init__(self, tipo):
self.tipo = tipo
class Coche(Vehiculo):
def __init__(self, marca, modelo):
super().__init__("Coche")
self.marca = marca
self.modelo = modelo
mi_coche = Coche("Toyota", "Corolla")
Polimorfismo
persona2 = Empleado("María", 25, "Desarrollador")
persona2.presentarse()
Manejo de excepciones
Try-except
Manejo de errores y excepciones.
try:
x = 1 / 0
except ZeroDivisionError:
print("No se puede dividir por cero")
finally:
print("Este bloque se ejecuta siempre")
Lanzar excepciones
Generar excepciones personalizadas.
if x < 0:
raise ValueError("x no puede ser negativo")
Entrada y salida de archivos
Lectura de archivos
with open("archivo.txt", "r") as archivo:
contenido = archivo.read()
Escritura de archivos
with open("archivo.txt", "w") as archivo:
archivo.write("Nuevo contenido")
Manipulación de archivos línea por línea
Leer un archivo línea por línea.
with open("archivo.txt", "r") as archivo:
for linea in archivo:
print(linea.strip())
Python avanzado
Generadores
Función que retorna un valor con yield
y recuerda su estado.
def contador():
i = 0
while i < 5:
yield i
i += 1
gen = contador()
print(next(gen)) # Imprime 0
print(next(gen)) # Imprime 1
Decoradores
Función que modifica el comportamiento de otra función.
def decorador(funcion):
def nueva_funcion(*args, **kwargs):
print("Antes de ejecutar la función")
resultado = funcion(*args, **kwargs)
print("Después de ejecutar la función")
return resultado
return nueva_funcion
@decorador
def saludar():
print("Hola")
saludar()
Context Managers
Para manejar recursos como archivos, conexiones de red, etc.
class MiContexto:
def __enter__(self):
print("Entrando en el contexto")
return self
def __exit__(self, exc_type, exc_val, exc_tb):
print("Saliendo del contexto")
with MiContexto():
print("Dentro del bloque")
Librerías comunes
NumPy
Librería para cálculo numérico.
import numpy as np
a = np.array([1, 2, 3])
print(np.mean(a)) # Media aritmética
Pandas
Librería para análisis de datos.
import pandas as pd
df = pd.DataFrame({"A": [1, 2], "B": [3, 4]})
print(df)
Matplotlib
Librería para visualización de gráficos.
import matplotlib.pyplot as plt
plt.plot([1, 2, 3], [4, 5, 6])
plt.show()
Requests
Librería para hacer peticiones HTTP.
import requests
respuesta = requests.get('https://api.example.com')
print(respuesta.status_code)
Flask
Framework ligero para crear aplicaciones web.
from flask import Flask
app = Flask(__name__)
@app.route('/')
def index():
return "Hola, mundo"
if __name__ == "__main__":
app.run()
Herramientas de depuración
Uso de assert
Verifica una condición durante la ejecución.
assert x > 0, "x debe ser mayor que 0"
Depuración con pdb
Inicia el depurador interactivo.
import pdb; pdb
.set_trace()