0% encontró este documento útil (0 votos)
0 vistas15 páginas

05_Curso_Programacion_Python

La guía de estudio de programación en Python abarca desde conceptos básicos hasta programación orientada a objetos, incluyendo ejemplos prácticos. Se destacan características del lenguaje como su legibilidad, tipado dinámico y amplia comunidad, además de cubrir estructuras de control, funciones, manejo de errores y bibliotecas fundamentales. También se presenta un índice detallado que facilita la navegación por los temas tratados.

Cargado por

kamplabs
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
0 vistas15 páginas

05_Curso_Programacion_Python

La guía de estudio de programación en Python abarca desde conceptos básicos hasta programación orientada a objetos, incluyendo ejemplos prácticos. Se destacan características del lenguaje como su legibilidad, tipado dinámico y amplia comunidad, además de cubrir estructuras de control, funciones, manejo de errores y bibliotecas fundamentales. También se presenta un índice detallado que facilita la navegación por los temas tratados.

Cargado por

kamplabs
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

GUIA DE ESTUDIO

Curso de Programacion Python


Arturo Montejo Raez y Salud Maria Jimenez Zafra

Ingenieria en Software | Material de Estudio Academico

Python es uno de los lenguajes de programacion mas populares del mundo,


especialmente valorado por su legibilidad, versatilidad y la enorme comunidad que lo
rodea. Esta guia cubre desde los conceptos basicos hasta la programacion orientada a
objetos, con ejemplos de codigo practicos en cada seccion.
INDICE
1. Introduccion a Python
2. Variables y Tipos de Datos
3. Operadores
4. Estructuras de Control
5. Funciones
6. Estructuras de Datos: Listas, Tuplas, Diccionarios y Conjuntos
7. Cadenas de Texto (Strings)
8. Manejo de Archivos
9. Programacion Orientada a Objetos (POO)
10. Manejo de Errores y Excepciones
11. Modulos y Paquetes
12. Bibliotecas Fundamentales
13. Referencia Rapida — Cheat Sheet
1. Introduccion a Python
Python fue creado por Guido van Rossum y lanzado en 1991. Su diseno enfatiza la
legibilidad del codigo y la productividad del programador. El nombre proviene del grupo
comico 'Monty Python', no de la serpiente.

Caracteristicas de Python:
• Lenguaje interpretado: El codigo se ejecuta linea por linea.
• Tipado dinamico: No es necesario declarar el tipo de las variables.
• Multiparadigma: Soporta programacion imperativa, funcional y orientada a objetos.
• Gran biblioteca estandar: 'Batteries included' — casi todo lo que necesitas ya viene
incluido.
• Amplia comunidad: Miles de bibliotecas de terceros disponibles via pip.
• Multiplataforma: Funciona en Windows, macOS y Linux.

Primer programa en Python:


# Este es un comentario

print("Hola, Mundo!")

print("Bienvenido a Python")

Para ejecutar: guarda como [Link] y ejecuta con: python3 [Link]


2. Variables y Tipos de Datos
En Python, las variables se crean al asignarles un valor. No es necesario declarar el tipo
previamente. Python infiere el tipo automaticamente.

# Tipos numericos entero = 42 flotante = 3.14 complejo = 2 + 3j # Texto


nombre = "Python" caracter = "A" # Booleano verdadero = True falso =
False # Nulo nada = None

Verificar el tipo de una variable:


print(type(entero)) # print(type(flotante)) # print(type(nombre)) #

Conversion de tipos (Casting):


# Convertir entre tipos num_str = "42" num_int = int(num_str) # String a
entero: 42 num_float = float(num_str) # String a flotante: 42.0
nuevo_str = str(100) # Entero a string: "100" bool_num = bool(0) # 0 es
False, cualquier otro numero es True
3. Operadores
Tipo Operador Ejemplo Resultado

Aritmetico +, -, *, / 10 + 3 13

Aritmetico // 10 // 3 3 (division entera)

Aritmetico % 10 % 3 1 (modulo/resto)

Aritmetico ** 2 ** 8 256 (potencia)

Comparacion ==, != 5 == 5 True

Comparacion <, >, <=, >= 3<5 True

Logico and True and False False

Logico or True or False True

Logico not not True False

Asignacion +=, -=, *= x += 1 x=x+1

Identidad is, is not x is None True/False

Pertenencia in, not in "a" in "hola" False


4. Estructuras de Control

4.1 Condicionales (if / elif / else)


edad = 20 if edad < 13: print("Nino") elif edad < 18:
print("Adolescente") elif edad < 65: print("Adulto") else: print("Adulto
mayor")

IMPORTANTE: Python usa indentacion (espacios) para definir bloques. No hay llaves
{ }.

4.2 Bucle for


# Iterar sobre una lista frutas = ["manzana", "banana", "naranja"] for
fruta in frutas: print(fruta) # Iterar con range for i in range(5): # 0,
1, 2, 3, 4 print(i) for i in range(1, 11): # 1 hasta 10 print(i) #
enumerate: indice y valor for i, fruta in enumerate(frutas):
print(f"{i}: {fruta}")

4.3 Bucle while


contador = 0 while contador < 5: print(f"Contador: {contador}") contador
+= 1 # break: sale del bucle # continue: salta a la siguiente iteracion

4.4 Comprension de Listas (List Comprehension)


Una forma compacta y elegante de crear listas. Es una caracteristica poderosa de Python.

# Forma tradicional cuadrados = [] for x in range(1, 6):


[Link](x**2) # List comprehension equivalente cuadrados =
[x**2 for x in range(1, 6)] # [1, 4, 9, 16, 25] # Con condicion pares =
[x for x in range(20) if x % 2 == 0] # [0, 2, 4, ..., 18]
5. Funciones
Las funciones son bloques de codigo reutilizables que realizan una tarea especifica. Se
definen con la palabra clave 'def'.

# Funcion basica def saludar(nombre): """Docstring: descripcion de la


funcion""" return f"Hola, {nombre}!" resultado = saludar("Python")
print(resultado) # Hola, Python!

Parametros y argumentos:
# Valor por defecto def potencia(base, exponente=2): return base **
exponente print(potencia(3)) # 9 (usa exponente=2) print(potencia(3, 3))
# 27 # *args: numero variable de argumentos def suma(*numeros): return
sum(numeros) print(suma(1, 2, 3, 4)) # 10 # **kwargs: argumentos con
nombre variable def info(**datos): for clave, valor in [Link]():
print(f"{clave}: {valor}") info(nombre="Ana", edad=25, ciudad="Madrid")

Funciones Lambda (anonimas):


# Funcion lambda doble = lambda x: x * 2 print(doble(5)) # 10 # Util con
sorted, map, filter numeros = [3, 1, 4, 1, 5, 9] numeros_ord =
sorted(numeros, key=lambda x: -x) # Orden descendente
6. Estructuras de Datos Principales

6.1 Listas (list) — Ordenadas y Mutables


frutas = ["manzana", "banana", "naranja"] # Operaciones basicas
[Link]("uva") # Anadir al final [Link](1, "kiwi") #
Insertar en posicion [Link]("banana") # Eliminar por valor pop =
[Link]() # Eliminar y retornar el ultimo # Slicing print(frutas[0])
# Primer elemento print(frutas[-1]) # Ultimo elemento print(frutas[1:3])
# Elementos del indice 1 al 2 print(frutas[::-1]) # Invertir lista #
Longitud print(len(frutas))

6.2 Tuplas (tuple) — Ordenadas e Inmutables


coordenadas = (10, 20) punto = (3, 4, 5) # Las tuplas no se pueden
modificar despues de crearse # Son mas rapidas que las listas # Uso
tipico: datos que no deben cambiar (coordenadas, RGB, etc.) x, y =
coordenadas # Desempaquetado

6.3 Diccionarios (dict) — Pares Clave:Valor


persona = { "nombre": "Ana", "edad": 25, "ciudad": "Barcelona" } #
Acceso print(persona["nombre"]) # Ana print([Link]("telefono",
"N/A")) # N/A (valor por defecto) # Modificar y anadir persona["edad"] =
26 persona["email"] = "ana@[Link]" # Iterar for clave, valor in
[Link](): print(f"{clave}: {valor}") # Verificar existencia if
"nombre" in persona: print("Tiene nombre")

6.4 Conjuntos (set) — Sin duplicados, Sin orden


numeros = {1, 2, 3, 4, 5} mas_numeros = {3, 4, 5, 6, 7} # Operaciones de
conjuntos union = numeros | mas_numeros # {1,2,3,4,5,6,7} interseccion =
numeros & mas_numeros # {3,4,5} diferencia = numeros - mas_numeros #
{1,2} # Util para eliminar duplicados de una lista lista_con_dup = [1,
2, 2, 3, 3, 3, 4] sin_dup = list(set(lista_con_dup)) # [1, 2, 3, 4]
7. Cadenas de Texto (Strings)
texto = "Hola, Python!" # Metodos de strings print([Link]()) #
"HOLA, PYTHON!" print([Link]()) # "hola, python!"
print([Link]()) # Elimina espacios al inicio/fin
print([Link]("Python", "Mundo")) # "Hola, Mundo!"
print([Link](", ")) # ["Hola", "Python!"]
print([Link]("Hola")) # True print(len(texto)) # 13 # Formateo
de strings nombre = "Ana" edad = 25 print(f"Me llamo {nombre} y tengo
{edad} anos") # f-strings (Python 3.6+) print("Me llamo {} y tengo {}
anos".format(nombre, edad)) # Slicing en strings print(texto[0:4]) #
"Hola" print(texto[-7:]) # "Python!" print(texto[::-1]) # Invertir
string
8. Manejo de Archivos
# Leer un archivo with open("[Link]", "r", encoding="utf-8") as f:
contenido = [Link]() # Todo el contenido lineas = [Link]() # Lista
de lineas # Escribir en un archivo with open("[Link]", "w",
encoding="utf-8") as f: [Link]("Primera linea\n") [Link]("Segunda
linea\n") # Anadir al final with open("[Link]", "a",
encoding="utf-8") as f: [Link]("Linea anadida\n") # Modos de apertura:
# "r" = leer (por defecto) # "w" = escribir (sobreescribe) # "a" =
anadir # "rb", "wb" = binario

El contexto 'with' cierra automaticamente el archivo al terminar, incluso si hay un error.


9. Programacion Orientada a Objetos (POO)
La POO organiza el codigo en 'objetos' que combinan datos (atributos) y comportamiento
(metodos). Los cuatro pilares son: Encapsulacion, Herencia, Polimorfismo y Abstraccion.

class Animal: """Clase base Animal""" def __init__(self, nombre,


especie): [Link] = nombre # Atributo publico self._especie =
especie # Atributo protegido def hablar(self): raise
NotImplementedError("Subclases deben implementar hablar()") def
__str__(self): return f"{[Link]} ({self._especie})" class
Perro(Animal): # Herencia def __init__(self, nombre):
super().__init__(nombre, "Canis lupus") [Link] = [] def
hablar(self): # Polimorfismo return "Guau!" def aprender_truco(self,
truco): [Link](truco) class Gato(Animal): def hablar(self):
return "Miau!" # Uso perro = Perro("Rex") gato = Gato("Mishi")
print([Link]()) # Guau! print([Link]()) # Miau!
perro.aprender_truco("sentarse") print([Link]) # ["sentarse"]

Conceptos clave de POO en Python:


__init__: Constructor: se llama automaticamente al crear un objeto.
self: Referencia al objeto actual. Equivale a 'this' en otros lenguajes.
Herencia: Una clase puede heredar atributos y metodos de otra (class Hijo(Padre)).
super(): Llama al constructor o metodo de la clase padre.
Encapsulacion: _atributo (protegido) o __atributo (privado) sugieren que no se
acceda desde fuera.
__str__: Define como se representa el objeto como string (print).
Polimorfismo: Diferentes clases pueden tener el mismo metodo con
comportamientos distintos.
10. Manejo de Errores y Excepciones
# Estructura basica try/except try: numero = int(input("Ingresa un
numero: ")) resultado = 10 / numero print(f"Resultado: {resultado}")
except ValueError: print("Error: debes ingresar un numero valido")
except ZeroDivisionError: print("Error: no se puede dividir entre cero")
except Exception as e: print(f"Error inesperado: {e}") else: print("Todo
salio bien") finally: print("Este bloque siempre se ejecuta")

Excepciones comunes en Python:


Excepcion Cuando ocurre
ValueError Valor incorrecto (ej: int("abc"))
TypeError Tipo incorrecto (ej: "hola" + 5)
IndexError Indice fuera de rango en lista
KeyError Clave no encontrada en diccionario
FileNotFoundError Archivo no encontrado
ZeroDivisionError Division entre cero
AttributeError Atributo no existe en el objeto
ImportError No se puede importar un modulo
11. Modulos y Paquetes
# Importar un modulo completo import math print([Link](16)) # 4.0
print([Link]) # 3.14159... # Importar funciones especificas from math
import sqrt, pi print(sqrt(25)) # 5.0 # Importar con alias import numpy
as np import pandas as pd # Crear tu propio modulo # archivo:
mis_funciones.py def suma(a, b): return a + b # En otro archivo: # from
mis_funciones import suma

Modulos de la biblioteca estandar mas usados:


math: Funciones matematicas: sqrt, floor, ceil, sin, cos, pi, e
random: Numeros aleatorios: random(), randint(), choice(), shuffle()
os: Interaccion con el sistema operativo: rutas, directorios, variables de entorno
sys: Parametros del sistema: argumentos de linea de comandos, ruta de modulos
datetime: Fechas y tiempos: date, time, datetime, timedelta
json: Lectura y escritura de JSON: [Link](), [Link]()
re: Expresiones regulares para procesamiento de texto
collections: Estructuras de datos adicionales: Counter, defaultdict, deque
itertools: Funciones para iteracion eficiente
pathlib: Manejo moderno de rutas de archivos
12. Bibliotecas Fundamentales (Instalar con pip)
NumPy (pip install numpy)
Computacion numerica. Arrays N-dimensionales, algebra lineal, FFT. Fundamento de
la ciencia de datos en Python.
Pandas (pip install pandas)
Analisis de datos. DataFrames, series temporales, lectura de CSV/Excel.
Imprescindible para data science.
Matplotlib (pip install matplotlib)
Visualizacion de datos. Graficas, histogramas, scatter plots, etc.
Requests (pip install requests)
Peticiones HTTP. Consumir APIs REST de forma sencilla.
Flask (pip install flask)
Framework web minimalista. Ideal para APIs y aplicaciones web pequenas.
Django (pip install django)
Framework web completo. Incluye ORM, admin, autenticacion y mucho mas.
SQLAlchemy (pip install sqlalchemy)
ORM para bases de datos relacionales. Compatible con SQLite, PostgreSQL, MySQL.
Pytest (pip install pytest)
Framework de pruebas. Mas facil y potente que unittest.
Scikit-learn (pip install scikit-learn)
Machine Learning. Algoritmos de clasificacion, regresion, clustering, etc.
13. Referencia Rapida — Cheat Sheet de Python
# === TIPOS DE DATOS === x = 42 # int y = 3.14 # float s = "hola" # str b
= True # bool n = None # NoneType # === COLECCIONES === lista = [1, 2, 3]
# Mutable, ordenada tupla = (1, 2, 3) # Inmutable, ordenada dicto =
{"a": 1, "b": 2} # Clave-valor conjunto = {1, 2, 3} # Sin duplicados #
=== CONTROL DE FLUJO === if x > 0: print("positivo") for i in range(5):
print(i) while x > 0: x -= 1 # === FUNCIONES === def mi_func(a, b=10):
return a + b lambda_fn = lambda x: x**2 # === CLASES === class MiClase:
def __init__(self, val): [Link] = val def metodo(self): return
[Link] # === MANEJO DE ERRORES === try: resultado = 1/0 except
ZeroDivisionError as e: print(f"Error: {e}") finally: print("Siempre se
ejecuta") # === COMPRENSIONES === cuadrados = [x**2 for x in range(10)]
pares = {x: x**2 for x in range(5)} conjunto_pares = {x for x in
range(10) if x%2==0} # === ARCHIVOS === with open("[Link]", "r") as f:
contenido = [Link]()

Fin de la Guia de Estudio N. 5 — Curso de Programacion Python

También podría gustarte