Lenguaje Python v2024
Lenguaje Python v2024
# Jaime E. Montoya M.
El lenguaje de programación Python
NOTAS DE CLASE
LÓGICA DE PROGRAMACIÓN CON
PYTHON
''' CON EL LENGUAJE DE PROGRAMACIÓN PYTHON '''
"""
* Versión 2.0
* Fecha: 2024, semestre 2
* Licencia software: GNU GPL
* Licencia doc: GNU Free Document License (GNU FDL)
"""
class Author:
year = 2024
2
El lenguaje de programación Python
Tabla de contenido
Introducción 6
Unidad 1. Introducción al lenguaje Python 7
Descarga e instalación 7
Características de hardware y software 7
Modo consola o intérprete 8
Crear scripts 9
Ejecutar scripts 9
Convenciones de nombres 9
Comentarios 10
Docstrings (cadenas literales de documentación) 10
Dividir una sentencia en varias líneas 11
Salida estándar 11
Constantes y variables 11
Tipos de datos 12
Numéricos 12
Cadenas 12
Booleanos 12
Secuencias 12
Función type() 12
Entrada estándar 13
Conversión de tipos o casteo de variables 13
Cadenas 13
Enteros 13
Reales (punto flotante) 13
Listas 13
Conjuntos 13
Binarios 14
Octales 14
Hexadecimales 14
Operadores 15
Operadores aritméticos 15
Operación de módulo y división entera 15
Operadores relacionales o de comparación 16
Operadores lógicos (booleanos) 16
Operador de asignación 17
Otros operadores aritméticos de asignación 17
Operador de concatenación de cadenas 18
Operadores de pertenencia 18
Operadores de identidad 19
3
El lenguaje de programación Python
Plantillas literales 19
Establecer color al texto en entorno de terminal 19
Preguntas 20
Ejercicios 21
Unidad 2. Estructuras de control y funciones 22
Condicionales 22
Condicional if else elif 22
Selector múltiple o estructura caso: sentencia match 24
Ciclos 25
Ciclo while 25
Ciclo for 27
Sentencias de bifurcación de control 29
break 29
continue 30
exit() 30
return 31
pass 31
Funciones incorporadas o predefinidas 31
Métodos y funciones matemáticas. La clase math 32
Números complejos. La clase complex 33
Métodos para la manipulación de cadenas de caracteres. La clase str 34
Métodos para la manipulación de fechas y horas. La clase datetime 35
Funciones definidas por el programador 35
Problemas resueltos 36
Preguntas 41
Ejercicios 41
Unidad 3. Datos estructurados y Programación Orientada a Objetos (POO) 42
Listas, tuplas, conjuntos y diccionarios 42
Listas 42
Declaración de listas 42
Métodos de listas 44
Tuplas 49
Declaración de tuplas 49
Métodos de tuplas 50
Desempaquetar una tupla (tuple unpacking) 51
Conjuntos 51
Diccionarios 51
Espacios de nombres 52
Módulos 53
Paquetes 53
Programación Orientada a Objetos 53
Preguntas 56
Ejercicios 56
Unidad 4. Aspectos avanzados del lenguaje: archivos, bases de datos (BD) y frameworks57
4
El lenguaje de programación Python
Archivos 57
Abrir archivos 57
Lectura de archivos 57
Escritura sobre archivos 58
Bases de datos (BD) 58
Instalar módulo MySQL 58
Conexión a una base de datos MySQL 58
Instalar mysql.connector 59
Framework Web Django (Python) 61
Preguntas 61
Ejercicios 61
Fuentes y referencias adicionales 62
5
El lenguaje de programación Python
Introducción
Este documento es un complemento a las clases presenciales y virtuales, y está basado en
la bibliografía del curso, así como de otras fuentes adicionales que se indican a lo largo del
texto, además de la experiencia del autor en su función docente en las áreas de desarrollo,
así como por su labor como desarrollador de software en distintas empresas.
6
El lenguaje de programación Python
Descarga e instalación
En Windows basta con descargar el ejecutable y seguir los pasos del asistente. En Linux
depende de la distribución, aunque en todos los casos es muy similar y en la red se dispone
de documentación al respecto. Para equipos Mac con sistemas operativo MacOS (una
versión especial de Unix) también está la documentación acerca de los paquetes y cómo
proceder.
1
Figura tomada de: Archivo:Python-logo-notext.svg - Wikipedia, la enciclopedia libre
7
El lenguaje de programación Python
Ejemplo 1.1
Ingresar al modo de comandos de Python desde una terminal y ejecutar algunas
instrucciones.
Realizar operaciones y usar instrucciones del lenguaje desde el modo consola de Python
>>>4 + 5
9
>>>print("Hola")
Hola
Figura 1.2. Modo comandos en Python desde una terminal cmder (Commander)
8
El lenguaje de programación Python
Crear scripts
Los archivos se crean con extensión .py. Siguiendo las convenciones del lenguaje, es
buena práctica utilizar en el nombre del archivo la notación snake_case en minúscula.
Ejecutar scripts
Desde la terminal y ubicados en el directorio donde esté el archivo ingresamos el comando
py seguido del nombre del archivo Python.
Ejemplo 1.2
Ejecutar un archivo llamado script_python.py.
>py script_python.py
Convenciones de nombres
Usar los caracteres permitidos para el nombre de identificadores según las reglas de
programación.
9
El lenguaje de programación Python
Comentarios
Python, al igual que otros lenguajes, también maneja dos tipos de comentarios: para una
línea y para varias líneas.
Ejemplo 1.3
Ilustración del uso de comentarios.
Ejemplo 1.4
Uso de otros operadores de asignación y su significado.
def function_example():
"""
Este es un comentario tipo docstrings para documentar la función
y también es utilizado por los programas de documentación para
realizar la respectiva generación de ésta
"""
print("Esto es una función")
10
El lenguaje de programación Python
Ejemplo 1.5
Dividir una instrucción en varias líneas.
a=2+3+5+\
7+9+4+\
6
Salida estándar
Para imprimir por pantalla se utiliza la instrucción print(). Más adelante veremos varias
formas de uso de esta función.
Ejemplo 1.6
Ilustrar la salida estándar: imprimir un mensaje por pantalla.
>>>print("Hola")
Constantes y variables
Python no implementa el concepto de constante como en otros lenguajes, solo usa
variables, sin embargo, usando las recomendaciones de la guía de estilos, podemos definir
constantes usando variables en la notación SNAKE_CASE. Como se mencionó antes, las
variables se definen usando la convención snake_case.
Notas
1. La constante del lenguaje None (valor del tipo NoneType) permite determinar la
ausencia de valor en una variable
2. Las constantes booleanas son: True y False
11
El lenguaje de programación Python
Tipos de datos
Python es un lenguaje fuertemente tipado que no requiere declarar las variables y que
cuenta con los siguientes tipos de datos (el tipo de la variable es asignado de manera
implícita con el primer valor que tome ésta).
Numéricos
Python cuenta con los siguientes tipos para el manejo de números:
● Enteros: int
● Reales (en punto flotante): float
● Complejos: complex
Cadenas
● str
Booleanos
● bool
Secuencias
● Tuplas: tuple
● Conjuntos: set
● Listas: list
● Diccionarios: dict
Función type()
Permite determinar el tipo de dato de una variable
Sintaxis
type(variable)
12
El lenguaje de programación Python
Entrada estándar
En el modo consola existe una forma para capturar datos desde el teclado; para ello se
utiliza la función input().
Ejemplo 1.7
Ingresar el nombre de una persona y mostrarlo por pantalla.
Cadenas
Función: str()
Enteros
Función: int()
Listas
Función: list()
Conjuntos
Función: set()
13
El lenguaje de programación Python
Binarios
Función: bin()
Octales
Función: oct()
Hexadecimales
Función: hex()
Ejemplo 1.8
Ingresar dos números por teclado y sumarlos.
Solución
Para trabajar con números ingresados por teclado, es necesario realizar la conversión de
tipos, ya que por defecto todo lo que viene del teclado se toma por defecto como cadena de
caracteres. En el desarrollo del ejemplo también se incluye la concatenación de cadenas
que se explica más adelante y que tiene como fin unir cadenas de caracteres. Dado que los
números no son cadenas, también se hace necesario castearlos para mostrarlos en la
salida.
Programa:
print("Ingrese x:", end = " ")
x = int(input())
print("Ingrese y:", end = " ")
y = int(input())
z = x + y
y = print(str(x) + str(y) + " = " + str(z))
Nota
La instrucción end = " " que aparece como segundo parámetro (argumento) de la función
print hace que el cursor no salte en la terminal (similar a la instrucción Sin Saltar de PSeInt).
14
El lenguaje de programación Python
Operadores
Un operador es un símbolo usado en matemáticas para representar una operación a
realizar, la cual puede ser unaria (con un operando) o binaria (con dos operandos). En la
aritmética y en el álgebra se cuenta, entre otros, con varios operadores elementales; cada
operador tiene una prioridad asignada, lo cual significa que los de mayor prioridad, se
ejecutarán primero. Se dividen en tres grupos, de los cuales se muestra su representación
en el lenguaje.
Operadores aritméticos
Utilizados para realizar las operaciones aritméticas básicas y otros cálculos (operaciones)
matemáticos; tenemos los siguientes:
Notas
● La negación aritmética es una operación unaria que consiste en negar el símbolo del
número (operando). Ejemplo: − (+ 2), − (8), − (− 5), − 94
● La prioridad se refiere al orden en que los operadores se efectúan en una expresión
aritmética: los de mayor prioridad se efectúan primero.
● Las operaciones encerradas entre paréntesis se efectúan primero, por lo que tienen
mayor prioridad. Los paréntesis modifican la prioridad de los operadores en una
expresión.
● Si hay dos operadores de igual prioridad, se ejecuta primero el que se encuentre
más a la izquierda, esto es, se sigue el orden de izquierda a derecha.
● Para calcular cualquier raíz, se puede usar el operador de potencia aprovechando
𝑚
𝑛 𝑚
las propiedades del álgebra para los exponentes fraccionarios: 𝑎 =𝑎𝑛
Ejemplo 1.9
15
El lenguaje de programación Python
a. 7 % 5 = 2; 7 // 5 = 1
b. 17 % 2 = 1; 17 // 2 = 8
c. 48 % 4 = 0; 48 // 4 = 12
d. 57 % 6 = 3; 57 // 6 = 9
e. 49 % 5 = 4; 49 // 5 = 9
f. 9 % 20 = 9; 9 // 20 = 0
g. 55 % 11 = 0; 55 // 11 = 5
Ejemplo 1.10
Resultados devueltos al realizar operaciones con los operadores relacionales.
a. 8 ! = 9 → (𝑇𝑟𝑢𝑒)
b. 9 >= 9 → (𝑇𝑟𝑢𝑒)
c. 7 ! = 14 / 2 → (𝐹𝑎𝑙𝑠𝑒)
d. 9 * 2 <= 50 / 10 → (𝐹𝑎𝑙𝑠𝑒)
e. − 8 = 8 → (𝐹𝑎𝑙𝑠𝑒)
16
El lenguaje de programación Python
Ejemplo 1.11
Resultados devueltos al realizar operaciones con los operadores booleanos.
Operador de asignación
Para asignar un valor (expresión) a una variable, utilizamos el operador igual (=).
Ejemplo 1.12
Ilustrar la asignación de valores a variables de diferente tipo y realizar operaciones
aritméticas y lógicas.
age = 10
profession = "Ingeniero"
sw = True
bool = sw or 4 > 2
percentage = 1000 * 15.4 / 100
print("El tipo de dato de la variable age es: ", type(age))
print("15.4% de 1000 es: ", type(percentage))
print("Resultado operación lógica: ", type(bool))
17
El lenguaje de programación Python
Ejemplo 1.13
Uso de otros operadores de asignación y su significado.
a = 10
b = 3
c = a + b
c+=a #Equivale a escribir: c = c + a
b-=c #Equivale a escribir: b = b - c
Ejemplo 1.14
Concatenar las variables nombre y apellido.
first_name = "Pedro"
last_name= "Gil"
full_name= first_name + last_name
print("Su nombre completo es: ", full_name)
Operadores de pertenencia
Se aplican a secuencias para determinar si un elemento se encuentra en ella. Devuelven
un valor booleano en caso de que el elemento se encuentre o no en la secuencia. Estos
operadores se tratarán más adelante.
● in
● not in
18
El lenguaje de programación Python
Operadores de identidad
Se aplican para saber si dos variables corresponden al mismo objeto. Estos operadores se
tratarán más adelante.
● is
● is not
Plantillas literales
Similar a otros lenguajes, es posible incluir variables en las cadenas de caracteres. A partir
de la versión 3.6 debe hacerse con formatted string literals ("f-strings").
Nota
Python permite en su sintaxis varias formas para combinar cadenas literales con variables.
Ejemplo 1.15
Veamos diferentes formas de uso de la función print para mostrar literales de cadena junto
con variables.
Programa:
print("Ingrese su nombre: ", end = " ")
name = input()
print("Ingrese su edad: ", end = " ")
age = int(input())
print("Ingrese su salario: ", end = " ")
salary = float(input())
Ejemplo 1.16
19
El lenguaje de programación Python
Crear una lista de colores con nombres a partir de sus códigos estándar para entorno de
terminal. Mostrar un mensaje con un color diferente al establecido por defecto.
Programa:
BLACK = '\033[30m'
RED = '\033[31m'
GREEN = '\033[32m'
YELLOW = '\033[33m' # orange on some systems
BLUE = '\033[34m'
MAGENTA = '\033[35m'
CYAN = '\033[36m'
LIGHT_GRAY = '\033[37m'
DARK_GRAY = '\033[90m'
BRIGHT_RED = '\033[91m'
BRIGHT_GREEN = '\033[92m'
BRIGHT_YELLOW = '\033[93m'
BRIGHT_BLUE = '\033[94m'
BRIGHT_MAGENTA = '\033[95m'
BRIGHT_CYAN = '\033[96m'
WHITE = '\033[97m'
print(f"{BRIGHT_CYAN}Menú de opciones{WHITE}")
Preguntas
1. ¿Qué tipo de lenguaje es Python? ¿Procedimental u orientado a objetos? ¿Débil o
fuertemente tipado? ¿Compilado o interpretado?
2. ¿Qué es un lenguaje de script? ¿Por qué Python entra en esta categoría?
3. ¿Cuál encuentra más interesante: Python o PSeInt? ¿Cuál es más “fácil”, por qué?
4. ¿Se puede escribir un programa en la terminal de Python?
5. ¿Cómo se finaliza la consola de Python?
6. ¿Qué es una guía de estilos y cuál es la qué se sigue para Python?
7. ¿Cuál es la sugerencia para la longitud de línea en Python?
8. ¿Cuál es la sugerencia para la notación de las variables en Python?
9. ¿Python declara variables y cómo se definen los tipos de datos de ellas?
10. ¿En qué consiste el casteo de variables?
11. Si en Python hago lo siguiente: a = 3 ¿Qué significado tiene realizar luego la
operación a+=5 y luego a-=4?
12. ¿Cómo concateno una cadena con un número entero o real en Python?
13. ¿Cuáles son las constantes booleanas en Python?
14. ¿Cómo es la salida y entrada estándar en Python?
15. ¿Qué es un literal de cadena? ¿Qué es una plantilla literal?
20
El lenguaje de programación Python
Ejercicios
21
El lenguaje de programación Python
Todas las estructuras de control tienen un único punto de entrada y un único punto de
salida. Éstas se pueden clasificar en: decisión, iteración y de control avanzadas.
Condicionales
Python permite el uso de condicionales y selectores múltiples, así como la variante elif para
simplificar las líneas de código en la toma de decisiones. Comparado desde el inicio de
Python (1991), el selector múltiple (sentencia match) es relativamente nuevo en el lenguaje,
por lo que antes debía solucionarse cualquier decisión mediante condicionales if else elif;
afortunadamente ya existe la implementación respectiva que permite simplificar el uso de
éstos.
Sintaxis
if condición:
instrucciones si la condición es verdadera
[else:
instrucciones si la condición es falsa]
Ejemplo 2.1
Leer el nombre y edad de una persona y determinar si es mayor de edad.
Programa:
print("Nombre:", end = " ")
name = input()
22
El lenguaje de programación Python
Nota
Similar a otros lenguajes con la sentencia elseif, en Python está su análoga elif. Esta
sentencia es útil para simplificar escritura de código en el programa.
Sintaxis
if condición_1:
instrucciones si la condición_1 es verdadera
[elif condición2:
instrucciones si la condición_2 es verdadera
elif condición3:
instrucciones si la condición_3 es verdadera
…
elif condición_N:
instrucciones si la condición_N es verdadera
else:
instrucciones si todas las condiciones anteriores son falsas]
Ejemplo 2.2
Leer un número por teclado y determinar si es positivo, negativo o cero. Este programa
ilustra el uso de la sentencia elif.
Programa:
print("Ingrese un número: ", end = " ")
number = float(input())
if number > 0:
message = "Número positivo"
elif number < 0:
message = "Número negativo"
else:
message = "Número igual a 0"
print(f"Dato ingresado {number}: {message}")
23
El lenguaje de programación Python
Esta estructura es muy útil en la creación de menús y casos donde una variable tome más
de dos valores. Veamos cómo se puede implementar.
Sintaxis
match variable:
case valor_1:
instrucciones si la variable coincide con valor_1
case valor_2:
instrucciones si la variable coincide con valor_2
…
case valor_N:
instrucciones si la variable coincide con valor_N
[case _:
instrucciones si la variable no coincide con ningún valor
Observe como el caso “_” es la equivalente en lógica de programación al caso “En Otro
Caso” o la opción default de lenguajes como los mencionados arriba, utilizada
opcionalmente para indicar algo en caso de que no se cumple ninguno de los otros casos.
Ejemplo 2.3
Ingresar un número y determinar: raíz cuadrada, si es par o impar y su valor absoluto.
Resolver utilizando un menú de opciones.
En este ejemplo se hará uso de la librería math para usar algunas de sus funciones
matemáticas. También se muestra una forma de asignar color al texto desplegado en un
entorno de terminal con códigos estándar
Programa:
import math
num = 0
opt = ""
while opt != "0":
print("\033[96mMenú de opciones\033[97m")
print("0. Salir")
print("1. Ingresar número")
24
El lenguaje de programación Python
match opt:
case "0":
print("¡Hasta pronto!")
case "1":
num = float(input("Ingrese un número: "))
case "2":
if num >= 0:
square_root = math.sqrt(num)
print(f"Raíz cuadrada de {num}: {square_root}")
else:
print("Raíz imaginaria")
case "3":
if num % 2 == 0:
print(f"{num} es par")
else:
print(f"{num} es impar")
case "4":
print(f"Valor absoluto de {num}: {abs(num)}")
case _:
print("Opción no válida")
Ciclos
Los ciclos o bucles son estructuras de control que repiten un grupo de instrucciones
mientras se cumpla una condición. Python solo implementa los ciclos while (mientras) y for
(para). El bucle for es usado además para iterar listas, diccionarios y otros elementos del
lenguaje.
Ciclo while
El ciclo while en Python se utiliza de forma muy similar a otros lenguajes, pero con su estilo
particular para las estructuras de control.
Sintaxis
while condición:
instrucciones del ciclo
25
El lenguaje de programación Python
Ejemplo 2.4
Mostrar los términos de la serie de Fibonacci menores o iguales a n. La serie de Fibonacci
está formada por los términos: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34,...2
Programa:
print("Ingrese n: ", end = " ")
n = int(input())
a = 0
b = 1
c = a + b
print(a)
print(b)
while c <= n:
print(c)
a = b
b = c
c = a + b
Notas
● Observe la sangría (indentación) que se debe mantener para que el lenguaje sepa
que está dentro del ciclo. Una vez comience a escribir en la misma columna de la
palabra while, dichas instrucciones estarán por fuera del ciclo.
● En Python existe una variante del ciclo while conocida como while else; el bloque de
código del else se ejecuta siempre y cuando la condición del ciclo se evalúe a false
y no se haya ejecutado una sentencia break en el ciclo. Esta alternativa es similar a
usar suiches o banderas.
Sintaxis
while condición:
instrucciones del ciclo
[else:
instrucciones del ciclo si condición es False y no se ejecuta break]
Ejemplo 2.5
Se ingresan varios números por teclado; indicar si se ingresa el número 2 y finalizar el ciclo.
El programa también finaliza si se ingresa un 0.
26
El lenguaje de programación Python
num = -1
sw = False #Supuesto: el número 2 nunca será ingresado
while num != 0:
print('Ingrese un número')
num = int(input())
if num == 2:
sw = True
if sw:
print(f'Elemento 2 encontrado en la lista')
else:
print('El elemento 2 no se encuentra en la lista')
Ciclo for
El ciclo for varía un poco en Python respecto a otros lenguajes; es particularmente usado
como el foreach de otros lenguajes, en este caso para objetos iterables como listas, tuplas,
conjuntos y diccionarios que se verán más adelante. Con la clase range() podemos
implementar un ciclo for basado en una secuencia numérica.
Sintaxis
Ejemplo 2.6
Imprimir los números del 0 al 10.
Programa:
for i in range(11):
print(i)
27
El lenguaje de programación Python
La función range permite especificar varios parámetros, para indicar los límites inicial y final
de la secuencia, así como el incremento.
Ejemplo 2.7
Mostrar los números impares del 1 al 100.
Programa:
print("Números pares de 0 a 100")
for i in range(1, 101, 2):
print(i)
Nota
Python también dispone de un ciclo for else. De forma análoga a como sucede con el ciclo
while, esta forma simplifica el uso de suiches o banderas. La sentencia else se ejecuta si
dentro del for nunca se ejecuta una sentencia break.
Sintaxis
Ejemplo 2.8
Leer el nombre de una lista de n estudiantes. Determinar si hay una alumna de nombre
“Luz Patricia”.
28
El lenguaje de programación Python
break
Permite romper o finalizar la estructura de control donde se encuentre pasando a la
instrucción que le sigue. En particular, si la instrucción se encuentra en un ciclo, lo finaliza
sin importar la condición de control y continúa con la instrucción siguiente al ciclo.
Ejemplo 2.9
Leer el nombre de un grupo de personas y contar cuantas se registraron; el último nombre
en ingresar es un registro centinela con nombre igual a “*”.
El ciclo contendrá una condición que en teoría genera un bucle infinito, pero dentro de éste
se encontrará una lectura de datos que llevará en algún momento a un registro centinela
permitiendo ejecutar la sentencia break que da por terminado el ciclo.
Programa:
c = 0
while True:
print("Ingrese un el nombre (* para terminar):", end = " ")
name = input()
29
El lenguaje de programación Python
if name == "*":
break
c+=1
print(f"Total personas: {c}")
continue
Utilizada en los ciclos, hace que salte el resto de instrucciones de éste desde donde se
encuentra la instrucción, pasando a la siguiente iteración.
Ejemplo 2.10
Imprimir cada carácter de un texto ingresado por teclado, excepto si éste es una “a”.
Las cadenas son objetos iterables, por lo que podemos usar un ciclo for para mostrar cada
carácter de éstas.
Programa:
print("Ingrese un texto:", end = " ")
string = input()
for letter in string:
if letter == "a":
continue
print(letter)
Nota
La diferencia de continue con break, es que esta última sentencia rompe el ciclo y sale de
éste ignorando las instrucciones que estuvieran pendientes de ejecutar; mientras que la
primera también ignora las instrucciones que le siguen, pero dirige el flujo del programa a
una nueva iteración del ciclo.
exit()
Python implementa esta sentencia de bifurcación de control como una función. exit()
interrumpe el script que se esté ejecutando, cancelando totalmente el programa e
ignorando las instrucciones que se encuentren después de ella.
Ejemplo 2.11
Leer el código de un grupo de empleados que inician labores y contar cuantas llegaron a
trabajar; una vez ingresen todos, se ingresa el registro centinela con código igual a “*”.
30
El lenguaje de programación Python
El ciclo contendrá una condición que en teoría genera un bucle infinito, pero dentro de éste
se encontrará una lectura de datos que llevará en algún momento a un registro centinela
permitiendo ejecutar la función exit() que da por terminado el programa ignorando el código
que continúe luego de ella.
Programa:
c = 0
while True:
print("Ingrese código (* para terminar):", end = " ")
code = input()
if code == "*":
exit()
c+=1
# Observe que la siguiente línea no se ejecuta, a diferencia de break
# que continúa el flujo del programa luego del ciclo
print(f"Total empleados: {c}")
return
Devuelve el control del programa a una función o porción de programa que llama; a su vez
puede devolver un valor a dicha función. Esta instrucción al igual que las anteriores,
interrumpe el flujo normal de ejecución, devolviendo el control a otra parte del programa e
ignorando las instrucciones que pudieran continuar. En la siguiente subsección se ilustra el
uso de esta sentencia muy utilizada en funciones.
pass
Python implementa esta sentencia para evitar errores de código vacío. Puede ser útil al
definir un encabezado de función u otros bloques de construcción de código donde se
piensa en “código a futuro”. No es propiamente una sentencia de bifurcación de control,
sino que la usa el lenguaje para evitar errores.
31
El lenguaje de programación Python
Ejemplo 2.12
Aplicar algunas funciones y métodos de la clase math de Python.
Algunas
Programa:
import math
z = math.trunc(x)
print(f"Redondeo trunc (0 decimales): {z}")
z = math.floor(x)
print(f"Redondeo por debajo: {z}")
z = math.ceil(x)
print(f"Redondeo por encima: {z}")
32
El lenguaje de programación Python
z = math.sin(y)
print(f"Radianes: sen({y}): {z}")
print(f"Grados: sen({y}): {math.degrees(z)}")
z = math.cos(y)
print(f"Radianes: cos({y}): {z}")
print(f"Grados: cos({y}): {math.degrees(z)}")
Los números complejos admiten los operadores conocidos, por los que pueden sumarse,
restarse, multiplicarse, dividirse, etc. El conjunto de los números complejos contiene al
conjunto de los números reales: R ⊂ C
Es posible extraer la parte real e imaginaria con las propiedades real e imag,
respectivamente, o hallar el conjugado con el método conjugate.
Ejemplo 2.13
Números complejos en Python.
Programa:
#Crear un complejo con la función complex
c = complex(-9, 3)
#Crear un complejo con la notación z = a + bi
z = 3 + 2j
print(c)
print(z)
z = c + (-5 - 1j)
print(z)
print(c.real) #Obtener la parte real
print(c.imag) #Obtener la parte imaginaria
print(z.conjugate()) #Hallar el conjugado de z = a + bi: z = a - bi
33
El lenguaje de programación Python
La clase cmath proporciona una serie de funcionalidades para el trabajo con números
complejos que puede emplearse en caso de que la clase complex no disponga de todas las
herramientas en un problema dado.
Python define las cadenas de caracteres en la clase str y dispone de una serie de métodos
y funciones para su manipulación que se encuentran agrupados en esta clase.
Las cadenas deben estar encerradas entre comillas dobles o simples (apóstrofos), y pueden
alternarse para mostrar por pantalla comillas cuando así se requiera. También se pueden
escapar caracteres para casos más complejos en el manejo de comillas: "\"cadena
escapada\"".
Cada carácter de una cadena tiene una posición asociada dentro de ella; en Python las
cadenas también son consideradas secuencias y pueden ser manipuladas como tal (similar
a los arreglos), donde el primer carácter ocupa la posición cero, el segundo la uno y así
sucesivamente.
Ejemplo 2.14
Recorrer cadenas en Python.
34
El lenguaje de programación Python
Ejemplo 2.15
Manejo de fechas y horas en Python.
35
El lenguaje de programación Python
Se definen los subprogramas con la palabra reservada def, el nombre de la función y entre
paréntesis los parámetros que contendrá. En el caso de que devuelva la función algún
valor, se utiliza la sentencia return seguida de dicho valor.
Sintaxis
Ejemplo 2.16
Dados dos números, cree una función que los sume y devuelva el resultado.
Programa:
# Función sum con los parámetro x e y
def sum(x, y) -> int:
return x + y
Problemas resueltos
Los siguientes ejercicios de programación resueltos incluyen los temas del manejo de
variables, operadores, asignaciones, entrada y salida de información, estructuras de control
(ciclos, condicionales, bifurcación de control) y funciones.
Ejercicio 2.1
Una empresa con cinco (3) sucursales desea conocer cuántos empleados participarán de
una rifa. La actividad es informal, por lo que las personas que están recolectando la
información no tienen claridad del número de empleados por sucursal ni de toda la
empresa. Ellos, aprovecharán esta encuesta para saber el total de empleados de la
empresa y por sucursal.
Programa: cycle_nested.py
cpe = 0 #Contador personas empresa
cp_yes = 0 #Contador personas participan
cp_no = 0 #Contador personas no participan
36
El lenguaje de programación Python
Ejercicio 2.2
Versión de la calculadora en Python empleando un menú de opciones y haciendo el uso de
funciones..
Programa: calculator_functions.py
from os import system
37
El lenguaje de programación Python
def show(message):
print(message)
38
El lenguaje de programación Python
Ejercicio 2.3
Crear un programa para convertir bases entre sistemas numéricos: de base 10 a base 2, 8 y
16, y viceversa.
Programa: conversion_bases.py
def conversion_number(num, base) -> str:
num_baseN = ""
div = num
while div > 0:
mod = div % base
div = div // base
if mod < 10:
num_baseN = str(mod) + num_baseN
else:
match mod:
case 10:
digit = "A"
case 11:
digit = "B"
case 12:
digit = "C"
case 13:
digit = "D"
case 14:
digit = "E"
case 15:
digit = "F"
num_baseN = digit + num_baseN
return num_baseN if num_baseN != "" else "0"
39
El lenguaje de programación Python
digit = 11
case "C":
digit = 12
case "D":
digit = 13
case "E":
digit = 14
case "F":
digit = 15
case _:
digit = d
sum += int(digit) * base ** int(i)
i -= 1
return sum
op = ""
num = 0
string_num = "0"
while op != "0":
print("Menú de opciones")
print("0. Terminar")
print("1. Solicitar valor decimal")
print(f"2. Valor decimal actual: {num}")
print(f"3. Convertir {num} a base 2")
print(f"4. Convertir {num} a base 8")
print(f"5. Convertir {num} a base 16")
print(f"6. Solicitar número en alguna base")
print(f"7. Convertir {string_num} (base 2) a base 10")
print(f"8. Convertir {string_num} (base 8) a base 10")
print(f"9. Convertir {string_num} (base 16) a base 10")
match op:
case "0":
print("Hasta pronto")
case "1":
num = int(input("Ingrese un número en decimal: "))
case "2":
print("-" * 30)
print(f"|Valor decimal actual: {num} |")
print("-" * 30)
case "3":
num_baseN = conversion_number(num, 2)
print(f"Base 2: {num_baseN}")
40
El lenguaje de programación Python
case "4":
num_baseN = conversion_number(num, 8)
print(f"Base 8: {num_baseN}")
case "5":
num_baseN = conversion_number(num, 16)
print(f"Base 16: {num_baseN}")
case "6":
string_num = input("Ingrese un número en la base deseada:
").upper()
case "7":
string_base10 = baseN_to_10(string_num, 2)
print(f"Base 10: {string_base10}")
case "8":
string_base10 = baseN_to_10(string_num, 8)
print(f"Base 10: {string_base10}")
case "9":
string_base10 = baseN_to_10(string_num, 16)
print(f"Base 10: {string_base10}")
case _:
print("-" * 18)
print("|Opción no válida|")
print("-" * 18)
Preguntas
Ejercicios
41
El lenguaje de programación Python
Listas
Las listas en Python son objetos de la clase list que se usan para almacenar conjuntos de
elementos de tipo heterogéneo. Junto a las clases tuple, range y str, list es uno de los
tipos de secuencia en Python.
Las listas en Python equivalen a los arreglos (arrays) en otros lenguajes de programación.
Declaración de listas
Para crear una lista en Python, asignamos a una variable corchetes vacíos ([]) para indicar
que la lista inicia vacía o con los elementos especificados dentro de ellos.
Sintaxis
1.
variableLista = [elementos]
2.
variableLista = list(iterable)
Donde:
elementos: es la secuencia o conjunto de elementos separados por comas de la lista. Si no
se indica, la lista se crea vacía
iterable: objeto iterable reconocible por Python, tal como listas, tuplas o cadenas. Si no se
especifica, la lista se inicializará vacía
Ejemplo 3.1
Crear una lista con números enteros y acceder a sus elementos.
42
El lenguaje de programación Python
El ciclo for es implementado al estilo foreach de otros lenguajes aprovechando que las
listas son elementos iterables.
Programa:
# Acceso a los elementos de una lista
array_data = [3, 5, 1]
print(array_data)
x = array_data[0] # x = 3
y = x + array_data[1] * array_data[2]
for d in array_data:
print(d)
Ejemplo 3.2
Crear una lista con números enteros; sumar sus datos y mostrar los resultados.
El ciclo for puede ser implementado con la clase range() accediendo a los elementos de la
lista tal y como se accede a los elementos de un arreglo unidimensional o vector.
Programa:
numbers = [1, 2, 7, 3, 5, 8, 6]
sum = 0
for i in range(len(numbers )):
sum += numbers [i]
print("Suma vector: ", sum)
Ejemplo 3.3
Buscar el elemento 3 en la lista dada que almacena números enteros usando un ciclo for
else.
Programa:
numbers = [1, 2, 4, 3, 5, 8, 6]
for n in numbers:
if n == 3:
break
else:
print('No se encontró el número 3')
Ejemplo 3.4
Buscar el elemento 2 en la lista dada que almacena números enteros usando un ciclo while
else.
Programa:
values = [5, 1, 9, 2, 7, 4]
index = 0
43
El lenguaje de programación Python
length = len(values)
while index < length:
values = values[index]
if values == 2:
print(f'Elemento 2 encontrado en posición: {index}')
break
else:
index += 1
else:
print('El elemento 2 no se encuentra en la lista de valores')
Métodos de listas
Para manipular las listas, existen una serie de métodos que proporciona el lenguaje.
Veamos algunos ejemplos con los más usados.
Sean:
array: una lista
dato: una variable
posicion: variable que guarda un índice de la lista
Ejemplo 3.5
Crear una lista con números (enteros o reales) y realizar las operaciones de agregado,
búsqueda (secuencial), eliminación, actualización e inserción implementando funciones con
el objetivo adicional de que puedan reutilizarse. Realizar otras operaciones sobre los
elementos de la lista: suma, promedio, mayor, menor
44
El lenguaje de programación Python
La apariencia en la interfaz de comandos usando este paquete puede verse como se ilustra
en la siguiente figura:
Programa: arrays.py
from os import system
from colorama import Fore, Back, Style
45
El lenguaje de programación Python
def sumArray(array):
sum = 0
for index, value in enumerate(array):
sum += array[index]
return sum
system('cls')
values = []
option = ""
while option.upper() != "X":
print(Fore.LIGHTGREEN_EX + Back.BLACK)
print("===========================================")
print("|| Menú de opciones ||")
print("===========================================")
print(Fore.LIGHTBLUE_EX)
print(" 1. Agregar")
46
El lenguaje de programación Python
print(" 2. Mostrar")
print(" 3. Buscar")
print(" 4. Actualizar")
print(" 5. Eliminar")
print(" 6. Sumar datos")
print(" 7. Promedio datos")
print(" 8. Mayor dato")
print(" 9. Menor dato")
print(" 0. Limpiar pantalla")
print(" X. Salir")
print(Fore.LIGHTYELLOW_EX)
option = input(" Digite opción: ")
if option == "1":
datum = float(input("\nDato a agregar: "))
addList(values, datum)
elif option == "2":
if len(values) > 0:
showList(values)
else:
print('No hay datos en la lista')
elif option == "3":
if len(values) > 0:
datum = float(input("\nDato a buscar: "))
pos = searchList(values, datum)
if pos > -1:
print(f'\nDato encontrado en posición: {pos}')
else:
print('El dato no se encuentra en la lista')
else:
print('No hay datos en la lista')
elif option == "4":
if len(values) > 0:
datum = float(input("\nDato a modificar: "))
pos = searchList(values, datum)
if pos > -1:
datum = float(input("\nNuevo dato: "))
values[pos] = datum
print(f'\nDato en posición {pos} actualizado')
else:
print('El dato no se encuentra en la lista')
else:
print('No hay datos en la lista')
elif option == "5":
if len(values) > 0:
datum = float(input("\nDato a eliminar: "))
pos = searchList(values, datum)
47
El lenguaje de programación Python
48
El lenguaje de programación Python
Tuplas
La clase tuple en Python permite instanciar objetos secuenciales llamados tuplas, similares
a los objetos de la clase list, pero, a diferencia de éstos, las tuplas son un tipo de
secuencia inmutable, lo cual significa que no puede ser modificada en tiempo de ejecución.
Declaración de tuplas
Para crear una tupla en Python, asignamos a una variable una secuencia válida separada
por comas; el uso de paréntesis es opcional.
Sintaxis
1.
variableTupla = elemento, elemento2, …, elementoN
2.
variableTupla = (elemento, elemento2, …, elementoN)
Ejemplo 3.6
Crear una tupla y acceder a sus elementos.
Programa:
# Creación y acceso a los elementos de una tupla
tupla = 3, 5, 1
print(tupla)
x = tupla[0] # x = 3
y = x + tupla[1] * tupla[2]
for d in tupla:
print(d)
Ejemplo 3.7
Pedir un número de 1 a 7 al usuario y mostrar el día equivalente. El primer día es el
domingo y el último el sábado.
Programa:
# Mostrar día
diasSemana = (
'domingo',
'lunes',
'martes',
'miércoles',
49
El lenguaje de programación Python
'jueves',
'viernes',
'sábado'
)
dia = input('Ingrese un número correspondiente al día del semana (1-7)')
print(f'El día es {diasSemana[dia] - 1}')
for d in diasSemana:
print(d)
Métodos de tuplas
Dado que las tuplas son inmutables, su manipulación es simple, ya que se limita a buscar
elementos en ellas.
Sean:
array: una tupla
dato: una variable
posicion: variable que guarda un índice de la tupla
Ejemplo 3.8
Modificar los elementos mutables de una tupla.
Programa:
# Modificar elemento mutable de una tupla
tupla = ('a', 'b', '[1, 2, 3]', 'x', 'y', 'z')
print(tupla)
tupla[2].append(4)
print(tupla)
50
El lenguaje de programación Python
Sintaxis
1.
var1, var2, …, varN = variableTupla
Ejemplo 3.9
Desempaquetar una tupla.
Programa:
# Desempaquetar tupla
tupla = ('a', 'b', 'c')
print(tupla)
a, b, c = tupla
print(a, b, c)
Conjuntos
Diccionarios
Es una estructura de datos muy útil para el almacenamiento de datos que asocia un valor a
una clave. Se podría decir que es similar a los objetos JSON del lenguaje Javascript.
Un diccionario puede contener información de cualquier tipo, desde datos primitivos hasta
estructurados, por lo que éstos no sólo soportan enteros o caracteres, sino también listas,
tuplas y otros diccionarios, entre otros.
Una aplicación útil, es crear listas de diccionarios, de esta forma, es posible manejar diversa
información en una misma estructura que contiene a su vez otras estructuras.
Veamos un ejemplo del uso de diccionarios con el que se ilustrará como crearlos y acceder
a sus elementos.
51
El lenguaje de programación Python
Ejemplo 3.
Crear un diccionario con las claves ‘Nombre’ y ‘Edad’. Agregar datos en el diccionario y
mostrarlo por pantalla. Acceder a sus datos de forma individual e iterar por sus claves, sus
valores y por las claves y valores.
Programa: dicts.py
name = input('Nombre: ')
age = int(input('Edad: '))
dict = {'Nombre': name, 'Edad': age}
print(dict)
print(f"Su nombre es: {dict['Nombre']}")
print(f"Su edad es: {dict['Edad']}")
Ejemplo 3.
Crear una lista de diccionarios con las claves ‘nombre’ y ‘edad’. Agregar datos en el
diccionario y mostrarlo para luego adicionarlo a una lista. Iterar la lista para mostrar sus
datos.
Programa: dicts_list.py
list1 = []
for i in range(2):
name = input('Nombre: ')
age = int(input('Edad: '))
list1.append({'nombre': name, 'edad': age})
print("-----" * 5)
for d in list1:
print(f"Nombre: {d['nombre']}")
print(f"Edad: {d['edad']}")
print(list1)
Espacios de nombres
52
El lenguaje de programación Python
Módulos
Paquetes
Suponemos que los conceptos relacionados con la POO ya han sido estudiados en otras
asignaturas, por lo que se usarán sobre dicho supuesto enfocando las explicaciones a las
implementaciones en Python.
Ejemplo 3.
Crear una clase llamada Person con las propiedades name y age. La clase debe contener
los métodos para agregar datos, devolverlos y otro que determine si la persona es mayor de
edad. Crear luego un objeto tipo Person y determinar si es mayor de edad y mostrar sus
datos.
Crear una clase (superclase) llamada Person con las propiedades nombre y edad. La clase
debe contener los métodos para agregar datos, devolverlos y otro que determine si la
persona es mayor de edad. Realizar además lo siguiente:
● Crear dos objetos de tipo Persona e ingresar la información respectiva
● Mostrar los datos de las personas
● Determinar cuál de éstas personas es mayor
● A partir de la clase Persona, crear otra clase para gestionar empleados llamada
Employee con los atributos salario mínimo y salario. Además de los métodos de
asignación y devolución, crear otro para determinar si un empleado gana el salario
mínimo. El constructor de la clase debe permitir cargar opcionalmente el salario
mínimo.
53
El lenguaje de programación Python
Programa: class.py
# Super clase Person
class Person:
# Atributos de clase
name = ""
age = 0
# Constructor
def __init__(self) -> None:
pass
# Métodos de clase
def set_name(self, name) -> None:
self.name = name
# Constructor
def __init__(self, min_sal = 0) -> None:
self.minimum_salary = min_sal
# Métodos
def set_minimum_salary(self, salary) -> None:
self.minimum_salary = salary
54
El lenguaje de programación Python
# Programa principal
per = Person()
per.set_name(input("Nombre: "))
per.set_age(int(input("Edad: ")))
print("Datos ingresados")
print(f"Nombre: {per.get_name()}")
print(f"Edad: {per.get_age()}")
if per.adult():
print(f"{per.get_name()} es mayor de edad")
else:
print(f"{per.get_name()} es menor de edad")
emp = Employee(1000000)
emp.set_name(input("Nombre empleado: "))
emp.set_age(int(input("Edad empleado: ")))
emp.set_salary(float(input("Salario empleado: ")))
print("Datos ingresados")
print(f"Nombre empleado: {emp.get_name()}")
print(f"Edad empleado: {emp.get_age()}")
print(f"Salario empleado: {emp.get_salary()}")
if emp.get_minimum_salary() > 0:
print("Salario mínimo actual: ", emp.get_minimum_salary())
print("Salario actual: ", emp.get_salary())
if emp.salary_basic():
print("Gana el mínimo")
else:
print("Salario diferente al mínimo")
else:
print("No ha indicado el salario mínimo")
55
El lenguaje de programación Python
Preguntas
Ejercicios
56
El lenguaje de programación Python
Archivos
Las funciones para el manejo de archivos, son: open, close, write
Abrir archivos
Un archivo puede ser abierto para lectura, escritura o ambas cosas.
Lectura de archivos
Este modo permite acceder al contenido del archivo sin alterarlo.
Sintaxis
Donde:
● path: ruta del archivo
● mode: modo apertura en modo texto (r, w, a, x, r+). Para modo binario agregar b (rb,
wb, …)
● file/variable_file: es una instancia -objeto- de la clase File e incluye el carácter de
escape \n -retorno de carro-
● variable_string: variable de tipo string (cadena) que guarda el contenido del archivo
57
El lenguaje de programación Python
Ejemplo 4.1
Programa:
print("----------Lectura general----------")
with open('file.txt', 'r') as file:
content = file.read()
print(content)
Ejemplo 4.2
Programa:
f = open('file', 'w')
try:
# Instrucciones para escribir en el archivo
finally:
f.close()
58
El lenguaje de programación Python
Ejemplo 4.3
Conectarse a una base de datos MySQL y hacer un CRUD a una tabla.
Programa:
import MySQLdb
DB_HOST = 'localhost'
DB_USER = 'root'
DB_NAME = 'academic-ai-001'
DB_PASS = ''
if query.upper().startswith('SELECT'):
data = cursor.fetchall()
else:
conn.commit()
data = None
cursor.close()
conn.close()
return data
Instalar mysql.connector
Ejemplo 4.4
Conectarse a una base de datos MySQL y hacer un CRUD a una tabla usando
mysql.connector.
Programa:
import mysql.connector
59
El lenguaje de programación Python
if query.upper().startswith('SELECT'):
data = cursor.fetchall()
else:
conn.commit()
data = None
cursor.close()
conn.close()
return data
60
El lenguaje de programación Python
print("Programa finalizado")
case "1":
data = run_query("SELECT * FROM table1")
show_records(data)
case "2":
run_query(
"INSERT INTO table1 (description, value) \
VALUES('Cálculo IV', 1)"
)
main_menu()
Preguntas
Ejercicios
61
El lenguaje de programación Python
El tutorial de Python
En Internet
El tutorial de Python
El Libro De Python
En Internet
El Libro De Python
Python Tutorial
En Internet
Python Tutorial
62
El lenguaje de programación Python
Cast en Python
En Internet
Casting Python
La función enumerate()
En Internet
La función enumerate() - Recursos Python
63