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

Libro de Python

El documento es un curso básico de programación en Python, diseñado para principiantes y desarrolladores en formación, que abarca desde los fundamentos del lenguaje hasta la resolución de problemas prácticos. Incluye teoría, ejemplos de código y ejercicios, organizados de manera progresiva para facilitar el aprendizaje. Se recomienda el uso de un entorno de desarrollo adecuado y se proporcionan pautas para la instalación y configuración de Python.

Cargado por

ceortiz38
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)
2 vistas22 páginas

Libro de Python

El documento es un curso básico de programación en Python, diseñado para principiantes y desarrolladores en formación, que abarca desde los fundamentos del lenguaje hasta la resolución de problemas prácticos. Incluye teoría, ejemplos de código y ejercicios, organizados de manera progresiva para facilitar el aprendizaje. Se recomienda el uso de un entorno de desarrollo adecuado y se proporcionan pautas para la instalación y configuración de Python.

Cargado por

ceortiz38
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

Curso Básico de Programación en Python

Un Enfoque Práctico y Estructurado

Fundamentos de Python
Curso básico de programación para principiantes y futuros
desarrolladores

Docente: Sergio Orjuela


Ibagué, Tolima, Colombia
20 de agosto de 2025
Prólogo y Prefacio

El presente texto, Fundamentos de Python: Un Enfoque Práctico y Estructurado, ha sido


elaborado con el propósito de ofrecer a estudiantes y desarrolladores en formación una
referencia clara, concisa y rigurosa sobre los elementos fundamentales del lenguaje de
programación Python. El material aquí reunido concentra los conceptos esenciales, las
prácticas recomendadas y un conjunto de ejercicios diseñados para facilitar el tránsito
desde los primeros pasos en programación hasta la resolución de problemas aplicados
en contextos de ingeniería y desarrollo de software.
El libro pretende cubrir las necesidades básicas de aprendizaje de quienes se aproximan
por primera vez a la programación, así como servir de guía de consulta para desarrolla-
dores independientes que requieran afianzar o actualizar sus conocimientos en Python.
El enfoque es eminentemente práctico: cada bloque temático incluye explicaciones
teóricas, ejemplos reales de código, y ejercicios con diferentes niveles de complejidad
que fomentan la comprensión activa y la transferencia a problemas reales.
La metodología adoptada privilegia el aprendizaje por la práctica y la resolución
sistemática de problemas. Los contenidos han sido organizados de forma progresiva para
facilitar un aprendizaje escalonado: introducción del lenguaje y su entorno, estructuras
de control y datos, programación modular y funciones, manipulación de archivos y
datos, y finalmente una selección de aplicaciones básicas en ámbitos de análisis de
datos y automatización. Se incorporan además buenas prácticas de desarrollo y pautas
para la depuración y pruebas del código.
Se espera que el lector cuente con acceso a un entorno de desarrollo Python (instalación
local de Python 3.x o plataformas en la nube) y con nociones elementales de lógica
matemática. No obstante, el libro incluye indicaciones para la instalación y configuración
básica del entorno, así como referencias a recursos complementarios y bibliografía
seleccionada para extensión temática.
Confío en que este material contribuya a consolidar competencias programáticas
fundamentales y fomente una actitud crítica y experimental frente al desarrollo de
soluciones computacionales. El curso está pensado para ser usado en aulas, talleres o
estudio autodidacta; su estructura modular facilita la adaptación a distintas duraciones
y niveles formativos.
Agradezco a quienes colaboraron en la revisión técnica y pedagógica de los contenidos.
Cualquier sugerencia que mejore la claridad, precisión o utilidad práctica del texto será
bienvenida en futuras ediciones.

1
Índice general

Prólogo y Prefacio 1

1. Introducción a Python 4
Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.1. ¿Qué es Python? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.2. Instalación y entornos de trabajo . . . . . . . . . . . . . . . . . . . . . 4

2. Sintaxis y Estructuras Básicas 7


Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.1. Variables y tipos de datos . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.2. Operadores y expresiones . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.3. Entrada y salida de datos . . . . . . . . . . . . . . . . . . . . . . . . . 9

3. Estructuras de Control 10
Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3.1. Condicionales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3.2. Bucles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
3.3. Control de flujo avanzado . . . . . . . . . . . . . . . . . . . . . . . . . 11

4. Funciones y Programación Modular 13


Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
4.1. Definición y uso de funciones . . . . . . . . . . . . . . . . . . . . . . . . 13
4.2. Funciones con parámetros . . . . . . . . . . . . . . . . . . . . . . . . . 13
4.3. Funciones con valores de retorno . . . . . . . . . . . . . . . . . . . . . . 14
4.4. Parámetros por defecto . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
4.5. Ámbito de las variables . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
4.6. Documentación de funciones . . . . . . . . . . . . . . . . . . . . . . . . 14
4.7. Programación modular . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

5. Estructuras de Datos en Python 16


Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
5.1. Listas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
5.2. Tuplas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
5.3. Conjuntos (set) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
5.4. Diccionarios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
5.5. Comprensiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

2
6. Manejo de Archivos en Python 19
Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
6.1. Abrir y cerrar archivos . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
6.2. Lectura de archivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
6.3. Escritura de archivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
6.4. Manejo de archivos binarios . . . . . . . . . . . . . . . . . . . . . . . . 20
6.5. Buenas prácticas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
6.6. Ejercicios y Problemas . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

3
Capítulo 1

Introducción a Python

Introducción
Python es un lenguaje de programación de alto nivel, interpretado y de propósito
general. Su sintaxis clara y legible, junto con su amplia biblioteca estándar, lo convierten
en una herramienta poderosa para principiantes y profesionales. En este capítulo,
exploraremos qué es Python, sus características principales, y cómo preparar nuestro
entorno de trabajo para comenzar a programar.

1.1. ¿Qué es Python?


Python fue creado por Guido van Rossum a finales de los años 80 y lanzado
oficialmente en 1991. Es un lenguaje multiplataforma que se utiliza en áreas como:
Desarrollo web (Django, Flask)

Ciencia de datos y análisis (Pandas, NumPy)

Inteligencia artificial y aprendizaje automático (TensorFlow, PyTorch)

Automatización de tareas

Programación de scripts y utilidades


Entre sus ventajas destacan:
Sintaxis simple y clara.

Gran comunidad y soporte.

Amplia gama de librerías y frameworks.

1.2. Instalación y entornos de trabajo


Para comenzar a programar en Python, es necesario instalarlo en nuestro sistema:
1. Descarga Python desde el sitio oficial [Link]

4
2. Instala la versión más reciente (Python 3.x)

3. Verifica la instalación ejecutando:

python -- version
# o
python3 -- version

Recomendación del autor


Como entorno de trabajo visual, se recomienda Visual Studio Code por su
flexibilidad, amplia gama de extensiones y soporte para múltiples lenguajes. Otras
alternativas ampliamente utilizadas incluyen:

PyCharm: Potente IDE especializado en Python, ideal para proyectos grandes.

Jupyter Notebook: Excelente para ciencia de datos y análisis interactivo.

Spyder: Orientado a programación científica y análisis numérico.

Ilustraciones sugeridas

Figura 1.1: Logo oficial de Python.

5
Figura 1.2: Interfaz de Visual Studio Code.

6
Capítulo 2

Sintaxis y Estructuras Básicas

Introducción
La sintaxis de un lenguaje de programación define cómo se deben escribir las
instrucciones para que el intérprete o compilador las entienda. Python se caracteriza
por tener una sintaxis sencilla y legible, lo que facilita su aprendizaje y permite escribir
programas claros y concisos. En este capítulo abordaremos los elementos básicos de
la sintaxis y las estructuras de datos fundamentales que servirán como base para
programas más complejos.

2.1. Variables y tipos de datos


En Python, una variable es un nombre que hace referencia a un valor almacenado
en memoria. No es necesario declarar el tipo de dato de forma explícita, ya que Python
lo infiere automáticamente en el momento de asignación.
Ejemplo:
nombre = " Alejandro " # Cadena de texto ( string )
edad = 25 # Entero ( int )
altura = 1.75 # N m e r o de punto flotante ( float )
es_estudiante = True # Valor booleano ( bool )

Tipos de datos primitivos más comunes:


int: números enteros.

float: números decimales.

str: cadenas de texto.

bool: valores lógicos (True o False).

2.2. Operadores y expresiones


Los operadores permiten realizar operaciones sobre variables y valores. Entre los
más importantes se encuentran:

7
Operadores aritméticos
+ Suma

- Resta

* Multiplicación

/ División

// División entera

% Módulo (residuo)

** Potencia

Ejemplo:
a = 10
b = 3
print ( a + b) # 13
print ( a / b) # 3.3333...
print ( a // b ) # 3
print ( a % b) # 1
print ( a ** b ) # 1000

Operadores de comparación
Se utilizan para comparar valores y devuelven un resultado booleano.

== Igual que

!= Distinto de

> Mayor que

< Menor que

>= Mayor o igual que

<= Menor o igual que

8
Operadores lógicos
and Conjunción lógica

or Disyunción lógica

not Negación lógica

Ejemplo:
x = True
y = False
print ( x and y ) # False
print ( x or y ) # True
print ( not x ) # False

2.3. Entrada y salida de datos


La interacción con el usuario se logra mediante funciones de entrada y salida.

Entrada
Para recibir datos del usuario utilizamos la función input():
nombre = input ( " Ingrese su nombre : " )
print ( " Hola , " , nombre )

Salida
Para mostrar información en pantalla se usa la función print():
print ( " El resultado es : " , 42)

9
Capítulo 3

Estructuras de Control

Introducción
Las estructuras de control permiten modificar el flujo de ejecución de un programa
en función de condiciones lógicas o repeticiones. En Python, estas estructuras son
esenciales para la toma de decisiones y la automatización de tareas repetitivas. En este
capítulo estudiaremos las sentencias condicionales, los bucles y algunas instrucciones
que permiten controlar de manera precisa la ejecución del código.

3.1. Condicionales
Las sentencias condicionales permiten ejecutar bloques de código únicamente si se
cumple una condición.

Sentencia if
edad = 18
if edad >= 18:
print ( " Eres mayor de edad . " )

if-else
edad = 16
if edad >= 18:
print ( " Eres mayor de edad . " )
else :
print ( " Eres menor de edad . " )

if-elif-else
nota = 85
if nota >= 90:

10
print ( " Excelente " )
elif nota >= 70:
print ( " Aprobado " )
else :
print ( " Reprobado " )

3.2. Bucles
Los bucles permiten ejecutar un bloque de código repetidas veces.

Bucle for
Se utiliza para recorrer secuencias como listas, tuplas o cadenas:
for i in range (5) :
print ( " I t e r a c i n " , i )

Bucle while
Ejecuta un bloque de código mientras una condición sea verdadera:
contador = 0
while contador < 5:
print ( " Contador : " , contador )
contador += 1

3.3. Control de flujo avanzado


Python ofrece instrucciones especiales para modificar el comportamiento de los
bucles:

break: interrumpe el bucle inmediatamente.

continue: salta a la siguiente iteración.

pass: no realiza ninguna acción (instrucción nula).

Ejemplos:
# Uso de break
for numero in range (10) :
if numero == 5:
break
print ( numero )

# Uso de continue
for numero in range (5) :

11
if numero == 2:
continue
print ( numero )

# Uso de pass
for numero in range (3) :
pass # Lugar reservado para c d i g o futuro

12
Capítulo 4

Funciones y Programación Modular

Introducción
Las funciones son bloques de código que realizan una tarea específica y pueden ser
reutilizados en diferentes partes de un programa. La programación modular se basa en
dividir un programa en partes más pequeñas y manejables, cada una con una responsa-
bilidad bien definida. Este enfoque mejora la legibilidad, facilita el mantenimiento y
promueve la reutilización del código.

4.1. Definición y uso de funciones


En Python, las funciones se definen con la palabra clave def, seguida del nombre
de la función y sus parámetros (si los hay).
Ejemplo básico:
def saludar () :
print ( " Hola , bienvenido al curso de Python . " )

# Llamada a la f u n c i n
saludar ()

4.2. Funciones con parámetros


Las funciones pueden recibir uno o varios valores como entrada (parámetros) para
trabajar con ellos.
def saludar_persona ( nombre ) :
print ( " Hola , " , nombre )

saludar_persona ( " Juan " )

13
4.3. Funciones con valores de retorno
Una función puede devolver un valor utilizando la palabra clave return.
def sumar (a , b ) :
return a + b

resultado = sumar (5 , 3)
print ( " La suma es : " , resultado )

4.4. Parámetros por defecto


Es posible asignar valores por defecto a los parámetros, que se usarán si no se
especifica un valor al llamar la función.
def saludar_persona ( nombre = " Invitado " ) :
print ( " Hola , " , nombre )

saludar_persona ()
saludar_persona ( " M a r a " )

4.5. Ámbito de las variables


El scope o ámbito de una variable determina dónde puede ser utilizada:

Local: definida dentro de una función, solo accesible allí.

Global: definida fuera de cualquier función, accesible en todo el programa.

mensaje = " Variable global "

def mi_funcion () :
mensaje_local = " Variable local "
print ( mensaje ) # Accede a la global
print ( mensaje_local ) # Accede a la local

mi_funcion ()
print ( mensaje ) # Funciona
# print ( mensaje_local ) # Error : no existe en este mbito

4.6. Documentación de funciones


Es buena práctica incluir cadenas de documentación (docstrings) para explicar el
propósito de una función.

14
def sumar (a , b ) :
"""
Suma dos n m e r o s y devuelve el resultado .
Par metros :
a ( int o float ) : primer n m e r o .
b ( int o float ) : segundo n m e r o .
Retorna :
int o float : la suma de a y b .
"""
return a + b

4.7. Programación modular


En programas grandes, es recomendable dividir el código en varios archivos (módulos)
para mejorar su organización. Un módulo en Python es simplemente un archivo con
extensión .py que contiene funciones, clases y variables.
Ejemplo de módulo:
# archivo : operaciones . py
def sumar (a , b ) :
return a + b

def restar (a , b ) :
return a - b

Ejemplo de uso de un módulo:


import operaciones

print ( operaciones . sumar (5 , 3) )


print ( operaciones . restar (10 , 4) )

También es posible importar funciones específicas:


from operaciones import sumar

print ( sumar (7 , 2) )

15
Capítulo 5

Estructuras de Datos en Python

Introducción
Las estructuras de datos permiten almacenar, organizar y manipular información
de forma eficiente. En Python, las más utilizadas son: listas, tuplas, conjuntos y
diccionarios. Cada una tiene características particulares que las hacen más adecuadas
para diferentes situaciones.

5.1. Listas
Las listas son colecciones ordenadas y mutables que pueden contener elementos de
diferentes tipos.

# C r e a c i n de una lista
numeros = [1 , 2 , 3 , 4 , 5]

# Acceso a elementos
print ( numeros [0]) # Primer elemento

# Modificaci n
numeros [1] = 20

# Agregar elementos
numeros . append (6)

# Eliminar elementos
numeros . remove (3)

# Recorrer una lista


for num in numeros :
print ( num )

16
5.2. Tuplas
Las tuplas son colecciones ordenadas e inmutables, ideales para datos que no deben
cambiar.
# C r e a c i n de una tupla
coordenadas = (10 , 20)

# Acceso a elementos
print ( coordenadas [0])

# Desempaquetado
x , y = coordenadas
print ( " X : " , x )
print ( " Y : " , y )

5.3. Conjuntos (set)


Los conjuntos son colecciones no ordenadas de elementos únicos.
# C r e a c i n de un conjunto
colores = { " rojo " , " verde " , " azul " }

# Agregar elementos
colores . add ( " amarillo " )

# Eliminar elementos
colores . discard ( " verde " )

# Operaciones de conjuntos
otros_colores = { " negro " , " azul " }
print ( colores . union ( otros_colores ) )
print ( colores . intersection ( otros_colores ) )

5.4. Diccionarios
Los diccionarios almacenan pares clave-valor, ideales para datos estructurados.
# C r e a c i n de un diccionario
persona = { " nombre " : " Ana " , " edad " : 30}

# Acceso a valores
print ( persona [ " nombre " ])

# Modificaci n
persona [ " edad " ] = 31

# Agregar nueva clave - valor

17
persona [ " ciudad " ] = " B o g o t "

# Recorrer un diccionario
for clave , valor in persona . items () :
print ( clave , " : " , valor )

5.5. Comprensiones
Las comprensiones son una forma concisa de crear listas, conjuntos o diccionarios a
partir de secuencias existentes.
# Lista de cuadrados
cuadrados = [ x **2 for x in range (5) ]
print ( cuadrados )

# Conjunto de valores nicos en m a y s c u l a s


colores_mayus = { color . upper () for color in colores }
print ( colores_mayus )

# Diccionario con n m e r o s y sus cubos


cubos = { x : x **3 for x in range (5) }
print ( cubos )

18
Capítulo 6

Manejo de Archivos en Python

Introducción
El manejo de archivos es una parte fundamental en la programación, ya que permite
almacenar y recuperar información de forma persistente. Python ofrece herramientas
sencillas y poderosas para trabajar con archivos de texto y binarios.

6.1. Abrir y cerrar archivos


La función open() permite abrir un archivo y especificar el modo de apertura:

r": lectura (por defecto).

"w": escritura (sobrescribe si existe).

.a": añadir contenido al final.

"b": modo binario (combinable con los anteriores).

Ejemplo:
archivo = open ( " datos . txt " , " r " )
contenido = archivo . read ()
print ( contenido )
archivo . close ()

6.2. Lectura de archivos


# Leer todo el contenido
with open ( " datos . txt " , " r " ) as archivo :
contenido = archivo . read ()
print ( contenido )

# Leer l n e a por l n e a
with open ( " datos . txt " , " r " ) as archivo :

19
for linea in archivo :
print ( linea . strip () )

# Leer l n e a s como lista


with open ( " datos . txt " , " r " ) as archivo :
lineas = archivo . readlines ()
print ( lineas )

6.3. Escritura de archivos


# Sobrescribir archivo
with open ( " salida . txt " , " w " ) as archivo :
archivo . write ( " Primera l n e a \ n " )
archivo . write ( " Segunda l n e a \ n " )

# A a d i r contenido a un archivo existente


with open ( " salida . txt " , " a " ) as archivo :
archivo . write ( " Nueva l n e a a a d i d a \ n " )

6.4. Manejo de archivos binarios


# Escribir datos binarios
with open ( " imagen . png " , " rb " ) as archivo :
datos = archivo . read ()

with open ( " copia . png " , " wb " ) as archivo :


archivo . write ( datos )

6.5. Buenas prácticas


Usar siempre la instrucción with para abrir archivos, ya que asegura su cierre
automático.

Manejar excepciones al trabajar con archivos para evitar errores inesperados.

Ejemplo con manejo de excepciones:


try :
with open ( " archivo_inexistente . txt " , " r " ) as archivo :
contenido = archivo . read ()
except FileNotFoundError :
print ( " El archivo no existe . " )
except Exception as e :
print ( " Error : " , e )

20
6.6. Ejercicios y Problemas
1. Crea un archivo llamado [Link] y escribe en él tres líneas con nombres de
estudiantes y sus calificaciones. Luego, lee el archivo y muestra su contenido en
pantalla.

2. Escribe un programa que lea un archivo de texto y cuente cuántas líneas, palabras
y caracteres contiene.

3. Crea un archivo llamado [Link] que contenga todos los números pares del 1
al 100, cada uno en una línea.

4. Escribe un programa que copie el contenido de un archivo de texto [Link]


a otro llamado [Link].

5. Modifica el programa anterior para que antes de copiar, verifique si el archivo de


origen existe. Si no existe, debe mostrar un mensaje de error.

6. Escribe un programa que lea un archivo de texto y cree otro archivo con el mismo
contenido pero en mayúsculas.

7. Descarga una imagen cualquiera y crea un programa que genere una copia exacta
de esa imagen usando lectura y escritura en modo binario.

8. Escribe un programa que abra un archivo [Link] y añada una línea con la fecha
y hora actuales cada vez que se ejecute.

9. Lee un archivo de texto donde cada línea tenga un número. Calcula y muestra la
suma y el promedio de todos los números.

10. (Reto) Crea un programa que recorra todos los archivos de una carpeta y genere
un archivo [Link] con los nombres de todos los archivos encontrados.

21

También podría gustarte