Capítulo 0: Conceptos Previos Antes de
Comenzar con Python
Antes de adentrarnos en la sintaxis y las funcionalidades de Python, es importante
repasar algunos conceptos fundamentales de la programación y del entorno en el que
vamos a trabajar.
Este capítulo introductorio tiene como objetivo brindarte las bases necesarias para
comprender mejor los temas que se desarrollarán en las primeras secciones del manual.
1. ¿Qué es un Lenguaje de Programación?
Un lenguaje de programación es un conjunto de instrucciones y reglas que permiten a
las personas comunicarse con una computadora. Gracias a estos lenguajes, podemos
indicarle a una máquina qué tareas realizar, cómo procesar datos y cómo mostrar
resultados.
Python es un lenguaje:
Interpretado: No es necesario compilar el programa completo antes de
ejecutarlo. El código se lee y ejecuta línea por línea, lo que facilita las pruebas y
la corrección de errores.
De alto nivel: Su sintaxis es sencilla y cercana al lenguaje humano, lo que lo
hace accesible incluso para principiantes.
Multipropósito: Puede aplicarse en múltiples áreas:
o Desarrollo web
o Análisis de datos
o Inteligencia artificial
o Automatización de tareas
o Administración de sistemas
Esta combinación hace que Python sea una excelente elección tanto para quienes se
inician en la programación como para profesionales que desarrollan proyectos
complejos de forma rápida y eficiente.
2. Algoritmos y Lógica de Programación
Un algoritmo es un conjunto ordenado y finito de pasos que se deben seguir para
resolver un problema o realizar una tarea. En programación, diseñamos algoritmos para
que una computadora ejecute acciones de manera precisa y repetible.
Ejemplo de algoritmo para saludar a un usuario:
1. Solicitar su nombre
2. Guardar el nombre en una variable
3. Mostrar un mensaje que incluya ese nombre
Este proceso de descomponer un problema en pasos simples y claros es la esencia de la
programación. Cuanto mejor diseñemos un algoritmo, más fácil será convertirlo en
código Python y más comprensible será para otros programadores.
3. Elementos Básicos de un Programa
Todo programa, incluso el más simple, combina tres componentes fundamentales:
Datos: Información con la que trabaja el programa (números, textos, valores de
verdad).
Operaciones: Acciones que transforman o manipulan los datos (sumar,
concatenar, comparar).
Estructuras de control: Reglas que determinan el orden y las condiciones de
ejecución (condicionales como if, else; bucles como for, while).
Comprender cómo interactúan estos elementos es clave para crear programas eficientes
y fáciles de mantener.
4. Variables y Memoria
Una variable es un espacio reservado en la memoria del ordenador donde se guarda un
valor que puede cambiar durante la ejecución del programa. Piensa en una variable
como una etiqueta colocada sobre un “cajón” donde guardamos datos para usarlos más
adelante.
En Python, no es necesario declarar el tipo de dato de la variable; el intérprete lo detecta
automáticamente según el valor asignado.
Ejemplos:
python
nombre = "Ana" # Cadena de texto
edad = 20 # Número entero
altura = 1.65 # Número decimal
El valor de una variable puede cambiar en cualquier momento del programa,
simplemente asignándole un nuevo dato.
5. Herramientas Necesarias
Para escribir y ejecutar código Python necesitarás:
Intérprete de Python
Es el software que lee y ejecuta tu código.
Puedes instalarlo desde la página oficial de Python o usar entornos que ya lo
incluyan.
Editor de Código o IDE (Entorno de Desarrollo Integrado)
Herramientas recomendadas:
o Visual Studio Code
o PyCharm
o Sublime Text
o Bloc de notas (opcional)
Ventajas de un IDE:
o Resaltado de sintaxis
o Autocompletado
o Depuración
Plataformas en Línea (Opcional)
Sitios como:
o Replit
o Jupyter Notebook
o Google Colab
Permiten programar directamente desde el navegador sin instalar nada.
Muy útiles para aprender y probar código rápidamente.
Tener un entorno de trabajo correctamente configurado te permitirá concentrarte en
aprender Python sin preocuparte por problemas técnicos.
1. Conceptos Básicos de la Sintaxis en
Python
Indentación
En Python, la indentación (espacios o tabulaciones al inicio de una línea) se utiliza para
delimitar bloques de código. A diferencia de otros lenguajes que emplean llaves {} o
palabras clave, Python determina el alcance de las instrucciones mediante la
indentación.
Ejemplo:
python
if condition:
# Bloque de código si la condición es verdadera
instrucción1
instrucción2
else:
# Bloque de código si la condición es falsa
instrucción3
instrucción4
🔸 Importante: Es fundamental mantener una indentación consistente en todo el código
para evitar errores de sintaxis.
Comentarios
Los comentarios son líneas de texto que el intérprete de Python ignora. Se utilizan para
explicar, documentar o aclarar el propósito del código.
Comentario de una sola línea: comienza con #
Comentario de varias líneas: se encierra entre triples comillas """ ... """ o
''' ... '''
Ejemplo:
python
# Este es un comentario de una sola línea
"""
Este es un comentario
de varias líneas
"""
Sensibilidad a Mayúsculas y Minúsculas
Python distingue entre mayúsculas y minúsculas. Por lo tanto, las siguientes variables
son diferentes:
variable
Variable
VARIABLE
Punto y Coma
A diferencia de otros lenguajes, Python no requiere el uso de punto y coma (;) al final
de cada instrucción. Sin embargo, si deseas escribir varias instrucciones en una sola
línea, puedes separarlas con punto y coma.
Ejemplo:
python
instruccion1; instruccion2; instruccion3
print("Hola"); print("mundo")
Uso de Paréntesis
Los paréntesis se utilizan para:
Agrupar expresiones
Definir funciones
Realizar llamadas a funciones
Ejemplo:
python
resultado = (a + b) * c
2. Fundamentos de Python
Tipos de Datos Básicos
Los tipos de datos básicos son las categorías en las que se clasifican los valores
utilizados en los programas. Comprenderlos es esencial para trabajar con variables y
realizar operaciones correctamente.
Enteros (int)
Representan números sin parte decimal.
Ejemplo:
python
edad = 25
cantidad = 100
Flotantes (float)
Representan números con parte decimal, también llamados de punto flotante.
Ejemplo:
python
precio = 9.99
altura = 1.75
Cadenas de Texto (str)
Son secuencias de caracteres encerradas entre comillas simples '...' o dobles "...".
Se utilizan para representar texto.
Ejemplo:
python
nombre = "Juan"
mensaje = '¡Hola, mundo!'
Puedes incluir caracteres especiales usando el carácter de escape \.
Ejemplo:
python
variable = "\"hola\""
También puedes usar triple comilla para cadenas de varias líneas:
python
varias_lineas = '''Un texto largo
con varias líneas
que pueden extenderse'''
Booleanos (bool)
Representan valores de verdad: True (verdadero) y False (falso). Son muy utilizados
en condiciones y lógica de control.
Ejemplo:
python
es_mayor_de_edad = True
tiene_descuento = False
🔸 Ten en cuenta: Los valores booleanos en Python comienzan con mayúscula: True y
False.
2.1. Variables
Las variables son contenedores que nos permiten almacenar y manipular datos en
nuestros programas. Puedes pensar en una variable como una etiqueta que se asigna a
un valor específico.
En Python, no es necesario declarar el tipo de dato de una variable de antemano, ya que
el intérprete lo infiere automáticamente según el valor asignado.
Declaración y Asignación de Variables
Para declarar y asignar un valor a una variable en Python, se utiliza el operador de
asignación =. El nombre de la variable va a la izquierda del operador, y el valor que
deseas asignar va a la derecha.
Ejemplo:
python
nombre = "Juan"
edad = 25
altura = 1.75
es_estudiante = True
En este ejemplo, se han declarado y asignado valores a las variables nombre, edad,
altura y es_estudiante.
También puedes asignar el mismo valor a múltiples variables en una sola línea:
python
a = b = c = 10
Normas para Nombrar Variables
Al nombrar variables en Python, es importante seguir ciertas reglas para mantener un
código legible y evitar errores:
Los nombres pueden contener letras (a-z, A-Z), números (0-9) y guiones bajos
( _)
No pueden comenzar con un número
Python distingue entre mayúsculas y minúsculas (nombre, Nombre y NOMBRE son
diferentes)
No se pueden usar palabras clave reservadas como if, else, for, while, etc.
🔸 Buenas prácticas:
Se recomienda usar nombres descriptivos que indiquen claramente el propósito de la
variable.
Ejemplos válidos:
python
edad
nombre_completo
total_ventas
_contador
Ejemplos inválidos:
python
1edad # Comienza con un número
nombre-completo # Usa guion en lugar de guion bajo
if # Palabra clave reservada
🔹 Estilos comunes de nomenclatura:
snake_case: total_ventas, nombre_completo
camelCase: totalVentas, nombreCompleto
PascalCase: TotalVentas, NombreCompleto
Ten en Cuenta
Elegir nombres descriptivos facilita la lectura y comprensión del código, tanto para ti
como para otros desarrolladores que trabajen en el mismo proyecto.
2.2. Operadores
Los operadores son símbolos especiales que permiten realizar operaciones sobre
variables y valores. Python ofrece varios tipos de operadores: aritméticos, de
comparación y lógicos.
Operadores Aritméticos
Se utilizan para realizar operaciones matemáticas básicas.
Operador Descripción Ejemplo Resultado
+ Suma a + b 13
- Resta a - b 7
* Multiplicación a * b 30
/ División (resultado flotante) a / b 3.333...
// División entera a // b 3
% Módulo (resto de la división) a % b 1
** Exponenciación a ** b 1000
Ejemplo:
python
a = 10
b = 3
suma = a + b
resta = a - b
multiplicacion = a * b
division = a / b
division_entera = a // b
modulo = a % b
exponenciacion = a ** b
Operadores de Comparación
Se utilizan para comparar valores y devuelven un resultado booleano (True o False).
Operador Descripción Ejemplo Resultado
== Igual a a == b False
!= Diferente de a != b True
> Mayor que a > b True
< Menor que a < b False
>= Mayor o igual que a >= b True
<= Menor o igual que a <= b False
Operadores Lógicos
Permiten combinar condiciones y evaluar múltiples expresiones.
Operador Descripción Ejemplo Resultado
and Verdadero si ambas condiciones lo son (a > 5) and (b < 5) True
Operador Descripción Ejemplo Resultado
or Verdadero si al menos una lo es (a > 15) or (b < 5) True
not Invierte el valor de la condición not (a > 5) False
Importante: Precedencia de Operadores
Python sigue reglas de precedencia, lo que determina el orden en que se evalúan las
operaciones:
1. Paréntesis (), Exponenciación **
2. Multiplicación *, División /, División entera //, Módulo %
3. Suma +, Resta -
4. Comparaciones (==, !=, >, <, >=, <=)
5. Lógicos (not, and, or)
3. Estructuras de Control
Las estructuras de control permiten modificar el flujo de ejecución de un programa.
En Python, las más comunes son las estructuras condicionales y los bucles, que nos
permiten tomar decisiones y repetir bloques de código según ciertas condiciones.
3.1. Estructuras Condicionales
Las estructuras condicionales permiten ejecutar diferentes bloques de código
dependiendo de si se cumple o no una condición.
if
Se utiliza para ejecutar un bloque de código si una condición es verdadera.
Sintaxis:
python
if condicion:
# Bloque de código si la condición es verdadera
instrucciones
Ejemplo:
python
edad = 18
if edad >= 18:
print("Eres mayor de edad.")
if-else
Permite ejecutar un bloque alternativo si la condición del if es falsa.
Ejemplo:
python
edad = 15
if edad >= 18:
print("Eres mayor de edad.")
else:
print("Eres menor de edad.")
if-elif-else
Permite evaluar múltiples condiciones en orden.
Ejemplo:
python
calificacion = 85
if calificacion >= 90:
print("Excelente")
elif calificacion >= 80:
print("Muy bueno")
elif calificacion >= 70:
print("Bueno")
else:
print("Necesita mejorar")
3.2. Bucles (Loops)
Los bucles permiten repetir un bloque de código varias veces. En Python, los más
utilizados son for y while.
for
Se utiliza para iterar sobre una secuencia (lista, tupla, cadena, etc.).
Sintaxis:
python
for variable in secuencia:
# Bloque de código a repetir
instrucciones
Ejemplo:
python
frutas = ["manzana", "banana", "naranja"]
for fruta in frutas:
print(fruta)
while
Se ejecuta mientras una condición sea verdadera.
Ejemplo:
python
contador = 0
while contador < 5:
print(contador)
contador += 1
🔸 Precaución: Si la condición nunca se vuelve falsa, el bucle se ejecutará
indefinidamente (bucle infinito).
3.3. Control de Bucles
Python ofrece instrucciones especiales para modificar el comportamiento de los bucles:
break
Interrumpe el bucle antes de que termine.
Ejemplo:
python
contador = 0
while True:
print(contador)
contador += 1
if contador == 5:
break
continue
Salta el resto del bloque y pasa a la siguiente iteración.
Ejemplo:
python
for i in range(10):
if i % 2 == 0:
continue
print(i)
pass
No realiza ninguna acción. Se usa como marcador de posición.
Ejemplo:
python
for i in range(5):
pass
Conclusión
Las estructuras de control son esenciales para construir programas dinámicos y
funcionales. Con las condicionales (if, if-else, if-elif-else) tomamos decisiones,
y con los bucles (for, while) repetimos tareas. Además, las instrucciones break,
continue y pass nos permiten tener un control más preciso sobre el flujo de ejecución.
4. Estructuras de Datos
4.1. Listas
Una lista es una estructura de datos mutable y ordenada que permite almacenar una
colección de elementos. Los elementos pueden ser de distintos tipos y se encierran entre
corchetes [], separados por comas.
Creación y Acceso
Para crear una lista:
python
frutas = ["manzana", "banana", "naranja"]
Para acceder a los elementos, se utiliza el índice entre corchetes. Los índices comienzan
desde 0.
python
print(frutas[0]) # Imprime "manzana"
print(frutas[1]) # Imprime "banana"
print(frutas[2]) # Imprime "naranja"
También se puede acceder desde el final utilizando índices negativos:
python
print(frutas[-1]) # Imprime "naranja"
print(frutas[-2]) # Imprime "banana"
print(frutas[-3]) # Imprime "manzana"
Métodos de Listas
Las listas tienen varios métodos incorporados para modificar sus elementos:
Método Descripción
append(elemento) Agrega un elemento al final de la lista
Método Descripción
insert(indice, elem) Inserta un elemento en una posición específica
remove(elemento) Elimina la primera aparición del elemento
pop(indice) Elimina y devuelve el elemento en la posición indicada
sort() Ordena los elementos en orden ascendente
reverse() Invierte el orden de los elementos
Ejemplo:
python
frutas = ["manzana", "banana", "naranja"]
[Link]("pera")
print(frutas) # ["manzana", "banana", "naranja", "pera"]
[Link](1, "uva")
print(frutas) # ["manzana", "uva", "banana", "naranja", "pera"]
[Link]("banana")
print(frutas) # ["manzana", "uva", "naranja", "pera"]
fruta_eliminada = [Link](2)
print(frutas) # ["manzana", "uva", "pera"]
print(fruta_eliminada) # "naranja"
[Link]()
print(frutas) # ["manzana", "pera", "uva"]
[Link]()
print(frutas) # ["uva", "pera", "manzana"]
Listas de Comprensión
Las listas de comprensión permiten crear nuevas listas de forma concisa, filtrando y
transformando elementos en una sola línea.
Sintaxis:
python
nueva_lista = [expresión for elemento in secuencia if condición]
Ejemplo:
python
numeros = [1, 2, 3, 4, 5]
cuadrados = [x ** 2 for x in numeros if x % 2 == 0]
print(cuadrados) # [4, 16]
En este ejemplo, se crea una lista con los cuadrados de los números pares de numeros.
4.2. Tuplas
Una tupla es una estructura de datos inmutable y ordenada que permite almacenar una
colección de elementos. Los elementos se encierran entre paréntesis () y se separan por
comas.
Creación y Acceso
Para crear una tupla:
python
punto = (3, 4)
Para acceder a sus elementos:
python
print(punto[0]) # Imprime 3
print(punto[1]) # Imprime 4
🔸 A diferencia de las listas, las tuplas no se pueden modificar una vez creadas. No se
pueden agregar, eliminar ni cambiar elementos.
Son útiles cuando se necesita almacenar datos que no deben cambiar, como coordenadas
o configuraciones.
Métodos de Tuplas
Aunque son inmutables, Python ofrece algunos métodos útiles:
Método / Función Descripción
count(elemento) Devuelve cuántas veces aparece un elemento
index(elemento) Devuelve el índice de la primera aparición del elemento
len(tupla) Devuelve la longitud de la tupla (función incorporada)
Ejemplo:
python
mi_tupla = (1, 2, 3, 2, 4, 2)
print(mi_tupla.index(2)) # 1
print(mi_tupla.index(2, 2)) # 3
print(mi_tupla.index(2, 2, 4)) # 3
5. Funciones
Las funciones son bloques de código reutilizables que encapsulan tareas específicas y
se pueden ejecutar cuando sea necesario. Nos ayudan a organizar el código, evitar la
repetición y hacer que nuestros programas sean más modulares y fáciles de mantener.
Definición y Llamada de Funciones
Para definir una función en Python se utiliza la palabra clave def, seguida del nombre
de la función y paréntesis. Opcionalmente, se pueden incluir parámetros dentro de los
paréntesis. El bloque de código se indenta después de los dos puntos :.
Ejemplo:
python
def saludo():
print("¡Hola, mundo!")
saludo() # Imprime "¡Hola, mundo!"
Parámetros y Argumentos
Las funciones pueden aceptar parámetros, que son valores que se pasan al momento de
llamar la función.
Ejemplo:
python
def saludo(nombre):
print(f"¡Hola, {nombre}!")
saludo("Juan") # ¡Hola, Juan!
saludo("María") # ¡Hola, María!
Valores de Retorno
Las funciones pueden devolver valores utilizando la palabra clave return. El valor
devuelto puede ser utilizado por el código que llama a la función.
Ejemplo:
python
def suma(a, b):
return a + b
resultado = suma(3, 4)
print(resultado) # 7
Funciones Anónimas (lambda)
Python permite definir funciones anónimas en una sola línea usando la palabra clave
lambda. Son útiles para funciones pequeñas y concisas.
Ejemplo:
python
cuadrado = lambda x: x ** 2
print(cuadrado(5)) # 25
Alcance de las Variables (Local vs. Global)
Las variables definidas dentro de una función tienen alcance local y solo son accesibles
dentro de esa función. Las variables definidas fuera de cualquier función tienen alcance
global.
Ejemplo:
python
def funcion():
variable_local = 10
print(variable_local)
variable_global = 20
def funcion2():
print(variable_global)
funcion() # 10
funcion2() # 20
print(variable_global) # 20
print(variable_local) # Error: variable no definida en este alcance
Documentación de Funciones (docstrings)
Es buena práctica documentar las funciones usando docstrings, que son cadenas de
texto encerradas entre triples comillas dobles """.
Ejemplo:
python
def area_rectangulo(base, altura):
"""
Calcula el área de un rectángulo.
Args:
base (float): La base del rectángulo.
altura (float): La altura del rectángulo.
Returns:
float: El área del rectángulo.
"""
return base * altura
Funciones con Número Variable de Argumentos
Python permite definir funciones que acepten un número variable de argumentos
usando el operador *.
Ejemplo:
python
def suma_variable(*numeros):
total = 0
for numero in numeros:
total += numero
return total
print(suma_variable(1, 2, 3)) # 6
print(suma_variable(4, 5, 6, 7)) # 22
Conclusión
Las funciones son una herramienta esencial en la programación. Permiten estructurar,
modularizar y reutilizar código de manera eficiente. Además de las funciones
definidas por el usuario, Python ofrece una amplia gama de funciones incorporadas
como print(), len(), range(), entre otras.
6. Manejo de Errores y Excepciones
Al escribir programas, es común encontrarse con situaciones inesperadas o errores
durante la ejecución. Python proporciona un mecanismo para manejar estos errores de
forma controlada mediante el manejo de excepciones. Esto permite capturar y tratar
errores específicos sin que el programa se detenga abruptamente.
6.1. Errores Comunes en Python
Antes de abordar el manejo de excepciones, veamos algunos errores frecuentes:
🔹 Error de Sintaxis (SyntaxError)
Ocurre cuando el código no sigue las reglas de sintaxis de Python.
python
def mi_funcion() # Falta el signo de dos puntos
print("Hola")
🔹 Error de Nombre (NameError)
Se produce al hacer referencia a una variable o función que no ha sido definida.
python
print(variable_no_definida)
🔹 Error de Tipo (TypeError)
Ocurre cuando se intenta realizar una operación entre tipos de datos incompatibles.
python
resultado = 5 + "10" # No se puede sumar un entero y una cadena
🔹 Error de Índice (IndexError)
Se genera al intentar acceder a un índice fuera del rango válido de una lista o secuencia.
python
lista = [1, 2, 3]
print(lista[3]) # El índice 3 no existe
Cuando ocurre un error, Python lanza una excepción y muestra un mensaje que incluye
el tipo de error y una descripción del problema.
6.2. Manejo de Excepciones
El manejo de excepciones permite capturar y tratar errores utilizando las instrucciones
try, except y opcionalmente finally.
🔸 try
El bloque try contiene el código que puede generar una excepción.
python
try:
resultado = 10 / 0
print(resultado)
except ZeroDivisionError:
print("Error: División por cero")
🔸 except
El bloque except especifica el tipo de excepción que se desea capturar. Se pueden usar
múltiples bloques except para manejar distintos tipos de errores.
python
try:
resultado = 10 / 0
except ZeroDivisionError:
print("Error: División por cero")
except ValueError:
print("Error: Valor inválido")
🔸 finally
El bloque finally se ejecuta siempre, haya ocurrido o no una excepción. Es útil para
liberar recursos o realizar tareas de limpieza.
python
try:
archivo = open("[Link]", "r")
# Operaciones con el archivo
except FileNotFoundError:
print("Error: Archivo no encontrado")
finally:
[Link]() # Se ejecuta siempre
6.3. Excepciones Personalizadas
Además de las excepciones incorporadas, se pueden crear excepciones personalizadas
para manejar situaciones específicas.
Para ello, se define una clase que herede de Exception o alguna de sus subclases.
Ejemplo básico usando Exception:
python
def funcion():
if condicion:
raise Exception("Descripción del error")
try:
funcion()
except Exception as e:
print(f"Error: {str(e)}")
En este ejemplo, se lanza una excepción personalizada con raise, y se captura usando
try-except.
Conclusión
El manejo de errores y excepciones es una parte fundamental de la programación en
Python. Permite tratar situaciones inesperadas de forma controlada, evitando que el
programa se bloquee.
Los bloques try-except permiten capturar y manejar errores específicos.
El bloque finally garantiza la ejecución de tareas críticas como cerrar archivos
o liberar recursos.
Las excepciones personalizadas permiten definir comportamientos específicos
para tu aplicación.
7. Entradas y Salidas
En Python, la entrada y salida de datos nos permite interactuar con el usuario y
manipular archivos. Podemos solicitar información, mostrar resultados en pantalla y
leer o escribir datos en archivos externos.
7.1. Entrada de Datos del Usuario
Para obtener información del usuario durante la ejecución del programa, se utiliza la
función input(). Esta función muestra un mensaje en pantalla y espera que el usuario
ingrese un valor.
Ejemplo:
python
nombre = input("Ingresa tu nombre: ")
edad = input("Ingresa tu edad: ")
print("Hola, " + nombre + "!")
print("Tienes " + edad + " años.")
En este ejemplo:
Se solicita al usuario que ingrese su nombre y edad.
Los valores se almacenan en las variables nombre y edad.
Luego se muestra un saludo personalizado en pantalla.
🔸 Importante
La función input() siempre devuelve una cadena de texto (str). Si se desea trabajar
con otros tipos de datos, como enteros o flotantes, es necesario realizar una conversión
explícita.
Ejemplo con conversión:
python
edad = int(input("Ingresa tu edad: "))
if edad >= 18:
print("Eres mayor de edad.")
else:
print("Eres menor de edad.")
En este caso:
Se convierte el valor ingresado a entero usando int().
Luego se evalúa la edad con una estructura condicional.
7.2. Salida de Datos
Para mostrar información en pantalla, se utiliza la función print(). Esta función puede
recibir uno o más argumentos y los muestra en la consola.
🔹 Formateo de Cadenas (f-strings)
Las f-strings permiten incrustar variables directamente dentro de una cadena de texto.
Se colocan las variables entre llaves {} y se antepone la letra f a la cadena.
Ejemplo:
python
nombre = "Juan"
edad = 25
print(f"Hola, mi nombre es {nombre} y tengo {edad} años.")
Este método es más limpio y legible que concatenar cadenas con el operador +.
7.3. Lectura y Escritura de Archivos
Python permite leer y escribir datos en archivos externos. Podemos abrir archivos en
diferentes modos:
"r": lectura
"w": escritura (sobrescribe el contenido)
"a": anexar (agrega contenido al final)
Estas operaciones son fundamentales para guardar información, procesar datos y
generar reportes.
🔹 Lectura de Archivos
Para leer el contenido de un archivo, se utiliza la función open() en modo lectura ("r").
Luego, se puede usar el método read() para leer todo el contenido, o readlines()
para obtener una lista de líneas.
Ejemplo:
python
archivo = open("[Link]", "r")
contenido = [Link]()
print(contenido)
[Link]()
En este ejemplo:
Se abre el archivo "[Link]" en modo lectura.
Se lee todo el contenido y se almacena en la variable contenido.
Se imprime el contenido en pantalla.
Finalmente, se cierra el archivo con close().
🔹 Escritura de Archivos
Para escribir datos en un archivo, se abre en modo escritura ("w"). Si el archivo no
existe, se crea automáticamente. Si ya existe, su contenido se sobrescribe.
Ejemplo:
python
archivo = open("[Link]", "w")
[Link]("Hola, mundo!")
[Link]()
En este caso:
Se abre el archivo en modo escritura.
Se escribe la cadena "Hola, mundo!".
Se cierra el archivo para guardar los cambios.
🔸 Importante
Es fundamental cerrar los archivos después de usarlos para liberar recursos del
sistema. Una forma más segura y recomendada de manejar archivos es utilizando la
instrucción with, que se encarga de cerrar el archivo automáticamente.
Ejemplo con with:
python
with open("[Link]", "r") as archivo:
contenido = [Link]()
print(contenido)
En este ejemplo:
El archivo se abre en modo lectura.
Se lee su contenido.
Al finalizar el bloque with, el archivo se cierra automáticamente, incluso si
ocurre una excepción.
Conclusión
La entrada y salida de datos en Python brinda gran flexibilidad para interactuar con el
usuario y manipular archivos externos. Podés:
Solicitar información con input()
Mostrar resultados con print()
Leer y escribir archivos con open(), read(), write(), y with
🔹 Recordá siempre manejar correctamente la apertura y cierre de archivos, y considerar
posibles excepciones que puedan surgir durante estas operaciones.
8. Importación y Creación de Módulos
En Python, un módulo es un archivo que contiene definiciones de funciones, clases y
variables que pueden ser utilizadas en otros programas. La importación de módulos
permite acceder a funcionalidades definidas en otros archivos y reutilizar código de
manera eficiente.
Además, podemos crear nuestros propios módulos para organizar y modularizar
nuestro código.
🔸 Ten en Cuenta
Python incluye una amplia biblioteca estándar de módulos que ofrecen
funcionalidades adicionales. Estos módulos están disponibles sin necesidad de
instalación adicional.
8.1. Importar Módulos
Para utilizar un módulo en nuestro programa, se debe importarlo con la instrucción
import. Podemos importar el módulo completo o funciones específicas.
Ejemplo: importar módulo completo
python
import math
resultado = [Link](25)
print(resultado) # 5.0
Ejemplo: importar función específica
python
from math import sqrt
resultado = sqrt(25)
print(resultado) # 5.0
En este caso, se importa solo la función sqrt() del módulo math, lo que permite usarla
directamente sin anteponer el nombre del módulo.
8.2. Módulos Estándar Comunes
La biblioteca estándar de Python incluye muchos módulos útiles. Algunos ejemplos:
python
import random
import datetime
numero_aleatorio = [Link](1, 10)
print(numero_aleatorio) # Número entero aleatorio entre 1 y 10
fecha_actual = [Link]()
print(fecha_actual) # Fecha y hora actual
🔹 Ejemplos de módulos estándar
Módulo Funcionalidad principal
math Funciones matemáticas como sqrt(), sin(), cos()
random Generación de números aleatorios: random(), randint()
datetime Manejo de fechas y horas: [Link](), [Link](),
[Link]()
Podés consultar la documentación oficial de Python para explorar más módulos y sus
funcionalidades.
8.3. Creación de Módulos Propios
Además de usar los módulos estándar, podemos crear nuestros propios módulos para
organizar y reutilizar código.
🔸 Crear y Usar Módulos Personalizados
Para crear un módulo personalizado:
1. Crear un archivo .py con el nombre deseado.
2. Definir funciones, clases o variables dentro del archivo.
Ejemplo: archivo mi_modulo.py
python
# mi_modulo.py
def saludar(nombre):
print(f"Hola, {nombre}!")
def calcular_suma(a, b):
return a + b
Uso en otro archivo:
python
import mi_modulo
mi_modulo.saludar("Juan") # Hola, Juan!
resultado = mi_modulo.calcular_suma(5, 3)
print(resultado) # 8
🔹 Organización del Código en Módulos
A medida que los programas crecen, es buena práctica dividir el código en módulos
según su funcionalidad. Esto mejora la legibilidad, facilita el mantenimiento y
promueve la reutilización.
Ejemplo:
python
# [Link]
def sumar(a, b):
return a + b
def restar(a, b):
return a - b
python
# [Link]
def imprimir_mensaje(mensaje):
print(mensaje)
def obtener_nombre_usuario():
return input("Ingresa tu nombre: ")
Programa principal:
python
import operaciones
import utilidades
resultado = [Link](5, 3)
utilidades.imprimir_mensaje(f"El resultado de la suma es:
{resultado}")
nombre = utilidades.obtener_nombre_usuario()
utilidades.imprimir_mensaje(f"Hola, {nombre}!")
Conclusión
Organizar el código en módulos permite:
Reutilizar funciones en distintos programas
Mantener el código limpio y estructurado
Facilitar la colaboración y el mantenimiento
8.4. Paquetes
Un paquete es una forma de organizar módulos relacionados dentro de una estructura
jerárquica de directorios. Los paquetes permiten agrupar funcionalidades,
modularizar el código y evitar conflictos de nombres entre módulos.
🔹 Crear y Utilizar Paquetes
Para crear un paquete:
1. Crear un directorio con el nombre del paquete.
2. Agregar un archivo especial llamado __init__.py dentro del directorio.
Este archivo puede estar vacío o contener código de inicialización del paquete.
Ejemplo de estructura de paquete:
Código
mi_paquete/
__init__.py
[Link]
[Link]
🔸 Importar Módulos desde un Paquete
Una vez creado el paquete, se pueden importar sus módulos en otros programas:
python
from mi_paquete import modulo1, modulo2
modulo1.funcion1()
modulo2.funcion2()
En este ejemplo:
Se importan los módulos modulo1 y modulo2 del paquete mi_paquete.
Se utilizan las funciones definidas en cada módulo.
Beneficios de Usar Paquetes
Organizar el código en paquetes permite:
Agrupar módulos relacionados por funcionalidad
Reutilizar código en distintos proyectos
Mantener un código más estructurado, legible y escalable
🔹 Buenas Prácticas
A medida que tus programas crecen, es recomendable dividir el código en paquetes
temáticos. Por ejemplo:
Un paquete operaciones para funciones matemáticas
Un paquete utilidades para funciones generales
Un paquete interfaz para funciones relacionadas con la interacción con el
usuario
Conclusión
La importación y creación de módulos y paquetes en Python es clave para escribir
programas bien organizados y mantenibles. Explorá la biblioteca estándar de Python
para aprovechar los módulos ya disponibles, y no dudes en crear tus propios paquetes
para estructurar tu código de forma efectiva.