Fundamentos de
Python
Un recorrido completo por los fundamentos de Python:
desde variables y estructuras de datos hasta
programación orientada a objetos. Crearemos juntos un
proyecto funcional que te preparará para desarrollo web
avanzado.
Ing. José Cadenas
CONTENIDO
DATOS Y
01 FUNDAMENTOS,
CONTROL DE FLUJO BÁSICO
MODULARIDAD Y
02 FUNCIONES,
SERIALIZACIÓN WEB
03 PROGRAMACIÓN ORIENTADA A
INTEGRADOR Y
04 PROYECTO
TRANSICIÓN A LA WEB
OBJETOS (POO) Y ERRORES
01
Fundamentos de Python:
Sintaxis, Tipos y Estructuras de
Datos
Definición y características
Lenguaje de programación
Python fue concebido a finales de los años
80 como un lenguaje para
ser interpretado orientado a la enseñanza.
Creado por Guido van Rossum, destaca por
sintaxis clara y versatilidad en múltiples
campos.
Aplicaciones populares
Desarrollo web, ciencia de datos, inteligencia
artificial y automatización de tareas.
Características principales
●
●
●
●
●
Lenguaje interpretado
tipado dinámico
multiplataforma
Alto nivel
con extensa biblioteca estándar.
Comunidad activa
Gran soporte comunitario, documentación
completa y constante evolución del lenguaje.
Instalación y entorno
Descarga e instalación
1
Pasos para obtener Python desde python.org, verificar
instalación y ejecutar primeros comandos.
2
3
4
IDEs recomendados
VS Code, PyCharm y Jupyter, configuración básica y
extensiones útiles para desarrollo.
Configuración inicial
Preparación del entorno para comenzar a programar
en Python con herramientas adecuadas.
Verificación
Comprobación de instalación correcta mediante
comandos básicos en terminal o consola.
Cómo ejecutar código Python
Existen múltiples formas de utilizar Python dependiendo de cada situación y tarea. El hecho de
ser un lenguaje que permite ser interpretado permite su manejo de forma interactiva, de una
forma difícilmente alcanzable con otros lenguajes como C, C++, Java, etc.
Vamos a ver a continuación algunas de las múltiples formas en las que podemos ejecutar
código Python.
1
El intérprete de Python
Es la forma más básica de ejecutar código. Una vez instalado el lenguaje Python basta
teclear python a través de la consola de comandos.
(base) C:\Users\nombre_del_usuario> python
Python 3.9.7 (default, Sep 16 2021, 16:59:28) [MSC v.1916 64 bit (AMD64)] :: Anaconda, Inc. on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>
Una vez que el intérprete está en funcionamiento, podemos comenzar a teclear y ejecutar fragmentos de código.
Python, en este contexto de uso, se utiliza normalmente para ejecutar secuencias cortas de operaciones, como si fuera una potente y
versátil calculadora.
>>> 6*5
30
>>> z = 3
>>> z + 4
7
3
4
Guiones (scripts)
A partir de cierto número de líneas (u órdenes), ejecutar fragmentos de código paso a paso es
engorroso, poco práctico y sujeto a errores. En estos casos, tener almacenado en un fichero la
secuencia de órdenes y ejecutarlas en un único paso es la forma lógica de proceder.
Por convención, los guiones Python tienen la extensión ***.py**.
Un archivo, editado por ejemplo con el Bloc de notas, llamado ejemplo.py podría ser el
siguiente:
1
# Comentario: este archivo contiene un ejemplo de guion
print("Ejecutándose ejemplo.py")
x = 5
y = 3
print("El resultado de 5 + 3 es", x + y)
3
Para ejecutar este guion, debemos situarnos en el mismo directorio y teclear python
ejemplo.py en la línea de comandos:
4
(base) C:\Users\nombre_del_usuario> python ejemplo.py
Ejecutándose ejemplo.py
El resultado de 5 + 3 es
Sintaxis básica en Python
Sangría
La sangría es crucial en Python, ya que define
los bloques de código. Se recomienda usar 4
espacios por nivel. python
Saltos de línea
Generalmente, cada instrucción se escribe en
una línea separada.
Escribiendo tu primer código
Variables
Las variables en Python son contenedores
que almacenan datos. Se pueden definir
utilizando una simple asignación:
En Python, no es necesario declarar el tipo de variable, lo
que hace que el lenguaje sea dinámicamente tipado.
Variables
Tipos de datos primitivos
Números enteros
Números flotantes
Cadenas de texto
Valores booleanos
Valores sin decimales para
contar objetos y
representar cantidades
exactas.
Valores con decimales para
cálculos precisos y
mediciones fraccionarias.
Secuencias de caracteres
para almacenar palabras,
frases y textos.
Representan verdadero o
falso, fundamentales para
decisiones lógicas.
Tipos de datos primitivos
Operadores básicos
Operadores aritméticos
Suma, resta, multiplicación, división,
módulo y exponenciación con ejemplos
prácticos.
Entrada y salida
Conversion de tipos
Ejemplo Práctico
Estructuras de datos
Listas
Colecciones ordenadas y mutables
para almacenar elementos de
cualquier tipo.
Diccionarios
Estructuras clave-valor para
acceso rápido a datos
relacionados.
Tuplas
Colecciones ordenadas e
inmutables, ideales para datos
que no cambiarán.
Conjuntos
Colecciones desordenadas de
elementos únicos para
operaciones matemáticas.
Estructuras de datos
Listas
Colecciones ordenadas y mutables
para almacenar elementos de
cualquier tipo.
Estructuras de datos
Accesar Listas
Colecciones ordenadas y mutables
para almacenar elementos de
cualquier tipo.
Estructuras de datos
Modificar Listas
Colecciones ordenadas y mutables
para almacenar elementos de
cualquier tipo.
Estructuras de datos
# Creamos una lista vacía para almacenar tareas
lista_tareas = []
Listas
Colecciones ordenadas y mutables
para almacenar elementos de
cualquier tipo.
Las listas son colecciones ordenadas y
mutables de elementos.
●
●
●
●
append(): Añade un elemento al final.
insert(): Inserta un elemento en una
posición específica.
remove(): Elimina la primera ocurrencia
de un valor.
pop(): Elimina y devuelve un elemento
por índice.
# Definimos una función para agregar una tarea
def agregar_tarea(nombre, estado="Pendiente"):
tarea = {"nombre": nombre, "estado":
estado}
lista_tareas.append(tarea)
print(f"Tarea '{nombre}' agregada.")
# Agregamos algunas tareas
agregar_tarea("Comprar libros")
agregar_tarea("Preparar presentación", "En
progreso")
# Mostramos todas las tareas
print("Lista de tareas:")
for idx, tarea in enumerate(lista_tareas, 1):
print(f"{idx}. {tarea['nombre']} {tarea['estado']}")
# Cambiamos el estado de una tarea
Colecciones=desodenadas
de
lista_tareas[0]['estado']
"Completada"
print("\nDespués de actualizar estado:")
elementos únicos para
# Mostramos las tareas actualizadas
operaciones
matemáticas.
for idx, tarea in
enumerate(lista_tareas,
1):
print(f"{idx}. {tarea['nombre']} {tarea['estado']}")
Estructuras de datos
Listas Métodos útiles
Colecciones ordenadas y mutables
para almacenar elementos de
cualquier tipo.
Estructuras de datos
Tuplas
Colecciones ordenadas e
inmutables, ideales para
datos que no cambiarán.
Estructuras clave-valor para
acceso rápido a datos
relacionados.
Estructuras de datos
Tuplas
Diccionarios
Estructuras clave-valor para
acceso rápido a datos
relacionados. Los diccionarios
almacenan pares clave:valor,
son mutables y no ordenados
Estructuras de datos
Diccionarios
Estructuras de datos
Diccionarios
Estructuras de datos
Conjuntos
Colecciones desordenadas de
elementos únicos para
operaciones matemáticas.
02
Control de Flujo y Funciones
Condicionales if-elif-else
Sintaxis básica
Múltiples condiciones
Estructura if con
indentación para ejecutar
código cuando la
condición es verdadera.
Uso de elif y else para evaluar
varias condiciones en
secuencia lógica.
Operador ternario
Forma compacta para asignar
valores basados en una
condición simple.
Ejemplos prácticos
Casos de uso comunes para toma
de decisiones en programas
Python.
Condicionales if-elif-else
Sintaxis básica
Estructura if con
indentación para ejecutar
código cuando la
condición es verdadera.
Condicionales if-elif-else
Múltiples condiciones
Uso de elif y else para evaluar
varias condiciones en
secuencia lógica.
Operadores
Condicionales if-elif-else
Operador ternario
Forma compacta para
asignar valores basados
en una condición simple.
Condicionales if-elif-else
"""
Calculadora v2 - Cuatro operaciones básicas
============================================
En esta segunda versión expandirás la calculadora para que
pueda realizar
las cuatro operaciones básicas: suma, resta, multiplicación y
división.
Conceptos aplicados:
- Operadores aritméticos (+, -, *, /)
- Condicionales if/elif/else
- F-strings para formateo profesional
- Manejo básico de tipos numéricos
Instrucciones:
1. Pide dos números al usuario
2. Pregunta qué operación desea realizar
3. Usa if/elif/else para realizar la operación correspondiente
4. Muestra el resultado con f-strings formateados
"""
Bucles for y while
Bucle for
Bucle while
Itera sobre listas, tuplas,
diccionarios y range().
Ejecuta código mientras una
condición sea verdadera.
Incluye diagrama de flujo.
Break y continue
Bucles anidados
Break termina el bucle,
continue salta a la
siguiente iteración.
Bucles dentro de otros
bucles. Útiles pero aumentan
complejidad.
Bucles for y while
Bucle for
Itera sobre listas, tuplas,
diccionarios
Bucles
Bucle for
Itera sobre range().
Bucles
Bucle while
Ejecuta código mientras una
condición sea verdadera.
Incluye diagrama de flujo.
Bucles
Break y continue
Ejemplo Práctico
1
Ejemplo Práctico
2
3
Conceptos Claves
La indentación (4 espacios)
es obligatoria en Python
elif es más eficiente
que múltiples if
independientes
Usa for cuando sepas
cuántas iteraciones
necesitas
break sale del bucle,
continue salta a la
siguiente iteración
El bloque else en bucles
se ejecuta si no hubo
break
Definición de funciones
Definición básica
Sintaxis def, ventajas y ejemplo
simple de funciones en Python.
Parámetros y
argumentos
Diferencia entre ambos,
parámetros posicionales y con
nombre.
Valores
predeterminados
Parámetros con valores por
defecto, ejemplos y buenas
prácticas.
Retorno de valores
Sentencia return, múltiples
valores y funciones sin retorno.
Parámetros y retornos
Parámetros vs argumentos
1
Diferencia conceptual entre elementos definidos en funciones y valores
pasados durante llamadas.
2
3
4
Valores predeterminados
Parámetros con valores asignados que se utilizan cuando no se
proporciona un argumento.
Retorno de datos
Devolución de resultados mediante return, posibilidad de retornar
múltiples valores simultáneamente.
Funciones sin retorno
Funciones que ejecutan acciones pero no devuelven valores explícitamente
al finalizar.
Funciones lambda
Funciones anónimas
Expresiones compactas que definen funciones sin nombre,
útiles para operaciones simples.
Sintaxis lambda
Estructura "lambda argumentos: expresión" que retorna valor
sin necesidad de definición formal.
Casos de uso
Ideales con map() y filter(), cuando necesitamos funciones
temporales de una sola línea.
Ejemplos prácticos
Ordenar listas, filtrar datos y transformar colecciones con
expresiones concisas y eficientes.
03
Programación Orientada a
Objetos
Clases y objetos
Definición de clases
Sintaxis class, atributos, métodos, constructor
__init__ con ejemplos prácticos.
Métodos de clase
Definición, implementación y ejemplos de
métodos en clases Python.
Objetos e instancias
Creación desde clases, acceso a atributos, uso de
self en Python.
Herencia básica
Concepto, sintaxis, uso de super() y diagramas
UML simples.
Métodos y atributos
Métodos de clase
Atributos de clase
Funciones definidas dentro de clases para
manipular datos y realizar operaciones
específicas.
Variables que almacenan datos dentro de
una clase, accesibles mediante instancias u
objetos.
Uso de self
Métodos especiales
Referencia a la instancia actual, permite
acceder a atributos y métodos dentro de la
clase.
Funciones con doble guion bajo como
__init__, definen comportamientos
específicos de objetos.
Herencia
Concepto básico
Uso de super()
Mecanismo para crear clases
derivadas que heredan atributos y
métodos de clases base.
Sintaxis simple
Definición de clase hija con clase
padre entre paréntesis para
establecer relación de herencia.
Permite acceder a métodos de la clase
padre desde la clase hija.
01
02
03
04
Herencia múltiple
Python permite heredar de varias
clases simultáneamente, combinando
funcionalidades de diferentes
orígenes.
Manejo de archivos
Lectura de archivos
Uso de open(), read(), readline() y readlines()
para acceder a datos en archivos.
Escritura de archivos
Modos 'w' y 'a', funciones write() y writelines()
para crear y modificar archivos.
Context Manager
Uso de 'with' para gestionar recursos
automáticamente sin cerrar archivos
manualmente.
Archivos CSV
Módulo csv para leer y escribir datos tabulares
estructurados en formato CSV.
Excepciones y módulos
Manejo de errores
Captura excepciones con try-except para
prevenir fallos en programas Python.
Excepciones comunes
ValueError, TypeError, KeyError,
FileNotFoundError y ZeroDivisionError
son errores frecuentes en Python.
Bloques else y finally
Else ejecuta código sin errores, finally
siempre se ejecuta independientemente
de excepciones.
Módulos Python
Archivos reutilizables con funciones, clases
y variables que organizan código en
componentes.
Gracias!