









Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Prepara tus exámenes
Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Prepara tus exámenes con los documentos que comparten otros estudiantes como tú en Docsity
Encuentra los documentos específicos para los exámenes de tu universidad
Estudia con lecciones y exámenes resueltos basados en los programas académicos de las mejores universidades
Responde a preguntas de exámenes reales y pon a prueba tu preparación
Consigue puntos base para descargar
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Comunidad
Pide ayuda a la comunidad y resuelve tus dudas de estudio
Ebooks gratuitos
Descarga nuestras guías gratuitas sobre técnicas de estudio, métodos para controlar la ansiedad y consejos para la tesis preparadas por los tutores de Docsity
Domina Python desde cero hasta nivel experto con estos apuntes completos. Aprende todo lo que necesitas sobre sintaxis, estructuras de datos, programación orientada a objetos, bibliotecas populares como NumPy, Pandas y Matplotlib, así como herramientas avanzadas como Flask y Django. Con ejemplos prácticos y explicaciones claras, estos apuntes son perfectos para quienes desean aprender o mejorar sus habilidades en programación con Python.
Tipo: Apuntes
1 / 15
Esta página no es visible en la vista previa
¡No te pierdas las partes importantes!










Python es un lenguaje de programación de alto nivel, interpretado, y de propósito general. Fue creado por Guido van Rossum y lanzado por primera vez en 1991. Es conocido por su sintaxis sencilla y legibilidad del código, lo que hace que sea muy accesible para principiantes.
● Sintaxis clara y legible: El código es fácil de leer y escribir, lo que reduce la complejidad. ● Lenguaje interpretado: No necesita ser compilado, lo que facilita la depuración. ● Tipado dinámico: Las variables no requieren declaración de tipo. ● Multiplataforma: Python funciona en varios sistemas operativos como Windows, Linux y macOS. ● Ampliamente utilizado: Python se utiliza en desarrollo web, ciencia de datos, inteligencia artificial, automatización, análisis de datos, y más.
Para empezar a programar en Python, necesitas tener Python instalado. Puedes descargarlo desde python.org. El IDLE (integrated development and learning environment) es un entorno básico que viene con la instalación de Python, pero también puedes usar otros editores de código como VS Code, PyCharm, o Jupyter Notebooks.
Un programa básico en Python es simplemente: print("¡Hola, Mundo!") Este código imprimirá en la consola: ¡Hola, Mundo!
Los comentarios en Python se agregan utilizando el signo #. Python no ejecuta los comentarios, son solo para el programador.
print("Hola, Mundo!") # Esto imprime un mensaje
En Python, no es necesario declarar el tipo de la variable. Python lo infiere automáticamente. x = 10 # Un número entero nombre = "Juan" # Una cadena de texto
Python tiene varios tipos de datos, entre ellos: ● Números: ○ Enteros: x = 10 ○ Flotantes: y = 3. Cadenas de Texto (Strings): mensaje = "Hola, Mundo" Booleanos: es_verdadero = True es_falso = False Listas (Arrays): lista = [ 1 , 2 , 3 , 4 ] Tuplas: tupla = ( 1 , 2 , 3 ) Diccionarios: diccionario = {"clave": "valor", "nombre": "Juan"} Conjuntos:
i += 1
Las funciones en Python se definen utilizando la palabra clave def. Sintaxis: def nombre_de_funcion(parametros):
return valor Ejemplo: def saludar(nombre): return f"Hola, {nombre}!" mensaje = saludar("Juan") print(mensaje) # "Hola, Juan!"
Puedes asignar valores predeterminados a los parámetros de las funciones. def saludar(nombre="Juan"): return f"Hola, {nombre}!" print(saludar()) # "Hola, Juan!" print(saludar("Carlos")) # "Hola, Carlos!"
En Python, puedes manejar los errores o excepciones utilizando las estructuras try, except, else, y finally.
try:
except TipoDeError:
else:
finally:
Ejemplo: try: numero = int(input("Introduce un número: ")) except ValueError: print("¡Eso no es un número!") else: print(f"El número es: {numero}") finally: print("Operación completada")
Python es un lenguaje orientado a objetos, lo que significa que puedes definir clases y objetos para organizar tu código.
Una clase es una plantilla para crear objetos (instancias). Una clase puede tener atributos (características) y métodos (funciones asociadas). Sintaxis: class NombreDeClase: def init(self, atributo1, atributo2): self.atributo1 = atributo self.atributo2 = atributo def metodo(self):
Ejemplo: class Persona: def init(self, nombre, edad): self.nombre = nombre self.edad = edad def saludar(self):
def saludar(): print("¡Hola desde el módulo!") Archivo main.py: import mimodulo mimodulo.saludar() # ¡Hola desde el módulo!
NumPy es una biblioteca fundamental para la computación científica en Python. Se utiliza para trabajar con arreglos multidimensionales y matrices. import numpy as np arreglo = np.array([ 1 , 2 , 3 ]) print(arreglo)
Pandas es una biblioteca poderosa para la manipulación y análisis de datos, especialmente para trabajar con datos tabulares (como hojas de cálculo). import pandas as pd data = {'Nombre': ['Juan', 'Ana', 'Carlos'], 'Edad': [ 30 , 25 , 35 ]} df = pd.DataFrame(data) print(df)
Matplotlib es una biblioteca para la creación de gráficos estáticos, animados e interactivos en Python. import matplotlib.pyplot as plt x = [ 1 , 2 , 3 , 4 ] y = [ 10 , 20 , 25 , 30 ] plt.plot(x, y) plt.show()
Flask y Django son dos de los frameworks más populares para desarrollar aplicaciones web en Python. Flask es minimalista y flexible, mientras que Django es más robusto y completo. Flask: from flask import Flask app = Flask(name) @app.route("/") def hello(): return "¡Hola, Mundo!" if name == "main": app.run() Django:
django-admin startproject mi_proyecto
● Sigue el PEP 8: El PEP 8 es la guía de estilo para Python, que establece las convenciones para escribir código Python limpio y legible. ● Escribe pruebas: Utiliza bibliotecas como unittest o pytest para escribir pruebas unitarias que verifiquen el comportamiento de tu código. ● Usa entornos virtuales: Utiliza virtualenv o conda para crear entornos aislados para tus proyectos y evitar conflictos de dependencias. ● Optimiza el rendimiento: Conoce los generadores y expresiones de lista para manejar grandes volúmenes de datos de forma eficiente. ● Participa en proyectos de código abierto: Contribuir a proyectos de código abierto es una excelente forma de aprender de otros programadores y mejorar tus habilidades.
Un generador en Python es una función que devuelve un valor, pero en lugar de devolverlo de una vez como en las funciones tradicionales, devuelve un valor a la vez y conserva su estado entre cada llamada. Los generadores son útiles cuando trabajamos con grandes cantidades de datos, ya que no necesitan cargar todo en memoria de una vez. Sintaxis de un Generador: Se usa la palabra clave yield para devolver un valor sin perder el estado de la función.
print(i) Este código imprimirá: 1 2 3
Los decoradores son una forma de modificar el comportamiento de una función o clase sin cambiar su código. Se utilizan para agregar funcionalidad adicional a las funciones o métodos. Sintaxis de un Decorador: Un decorador es una función que toma otra función como argumento y devuelve una nueva función que generalmente modifica el comportamiento de la original. def decorador(func): def nueva_funcion(): print("Antes de llamar a la función") func() print("Después de llamar a la función") return nueva_funcion @decorador def saludar(): print("¡Hola!") saludar() Este código imprimirá: Antes de llamar a la función ¡Hola! Después de llamar a la función Decoradores con Argumentos: Si quieres que tu decorador maneje argumentos, puedes hacerlo mediante funciones anidadas. def decorador_con_argumento(func): def nueva_funcion(*args, **kwargs):
print("Llamando a la función con argumentos:", args, kwargs) return func(*args, **kwargs) return nueva_funcion @decorador_con_argumento def saludar(nombre): print(f"¡Hola, {nombre}!") saludar("Juan") Este código imprimirá: Llamando a la función con argumentos: ('Juan',) {} ¡Hola, Juan!
Los métodos mágicos (también conocidos como dunder methods, por los dos guiones bajos antes y después del nombre del método) son métodos predefinidos que permiten personalizar el comportamiento de las clases.
init(self, ...): El inicializador, se llama cuando se crea una instancia de la clase. class Persona: def init(self, nombre, edad): self.nombre = nombre self.edad = edad str(self): Permite definir cómo se representa un objeto cuando se convierte en una cadena. class Persona: def init(self, nombre, edad): self.nombre = nombre self.edad = edad def str(self): return f"{self.nombre}, {self.edad} años"
def enter(self): print("Entrando en el contexto") return self def exit(self, tipo, valor, traceback): print("Saliendo del contexto") return False # Si se devuelve True, suprime las excepciones with MiGestorDeContexto() as gestor: print("Dentro del contexto") Este código imprimirá: Entrando en el contexto Dentro del contexto Saliendo del contexto
Los patrones de diseño son soluciones reutilizables a problemas comunes en el diseño de software. A continuación, veremos algunos de los patrones más utilizados en Python.
El patrón Singleton asegura que una clase tenga una única instancia a lo largo de la aplicación. Se puede lograr en Python de diferentes maneras, pero una forma común es utilizando una variable global. class Singleton: _instancia = None def new(cls): if not cls._instancia: cls._instancia = super().new(cls) return cls._instancia
obj1 = Singleton() obj2 = Singleton() print(obj1 is obj2) # True
El patrón Fábrica se usa cuando necesitas crear objetos sin especificar la clase exacta del objeto que se va a crear. class Animal: def hablar(self): pass class Perro(Animal): def hablar(self): return "Guau" class Gato(Animal): def hablar(self): return "Miau" class AnimalFactory: def crear_animal(self, tipo): if tipo == "Perro": return Perro() elif tipo == "Gato": return Gato()
factory = AnimalFactory() animal = factory.crear_animal("Perro") print(animal.hablar()) # "Guau"
Cuando tu aplicación crece, es importante optimizar el código para mejorar el rendimiento. Algunos consejos incluyen: ● Evitar el uso innecesario de bucles anidados. ● Usar generadores y expresiones generadoras para ahorrar memoria. ● Usar map() y filter() para mejorar el rendimiento al trabajar con listas. ● Evitar copiar objetos grandes innecesariamente, en su lugar, pasa referencias.
Para identificar cuellos de botella en tu código, puedes usar herramientas como el módulo cProfile: import cProfile def mi_funcion():