El lenguaje Python
Trabajo previo¶
Lecturas¶
Severance, D. C. R. (2016). Python for Everybody: Exploring Data in Python 3 (S. Blumenberg & E. Hauser, Eds.). CreateSpace Independent Publishing Platform. https://
Downey, Allen B. (2024). Think Python: How to Think Like a Computer Scientist (3rd ed.). O’Reilly Media. https://
Otros recursos¶
Tipos de datos¶
Python puede trabajar con una gran variedad de tipos de datos, entre los que están los siguientes:
| Nombre | Palabra reservada | Descripción |
|---|---|---|
| Enteros | int | Números enteros: 0, 20, -34 |
| Punto flotante | float | Números con punto decimal: 0.1, 35.0, -100.5 |
| Booleanos | bool | Valores lógicos de True (verdadero) o False (falso) |
| Hileras | str | Secuencias ordenadas de caracteres: "Python", "Hola mundo" |
| Listas | list | Secuencias ordenadas de objetos: [1, 2, 3, "cuatro", True, [5, 6, 7]] |
| Tuplas | tuple | Secuencias ordenadas inmutables de objetos: ("tres", [23, 34], -89, False) |
| Conjuntos | set | Colecciones no ordenadas de objetos: {1, 2, "a", "b"} |
| Diccionarios | dict | Pares ordenados atributo:valor: {“nombre”:“Juan”, “apellido”:“Pérez”, “salario”: 800000} |
Existen otros tipos de datos más especializados (ej. fechas, horas, enumerados). Todos pueden consultarse en la documentación de la biblioteca estándar de Python.
La función type() retorna el tipo del objeto que recibe como argumento.
type(25)inttype(3.14)floattype("Costa Rica")strtype([1, 2, 3])listtype(2 > 5)boolVariables¶
Una variable es un nombre que se asigna a un valor en la memoria de una computadora. El valor se asigna mediante el operador =.
# Asignar a la variable x el valor 10
x = 10# Imprimir el valor de x
print(x)10
# En un cuaderno de notas, el valor de una variable también puede desplegarse con solo escribirse en una celda
x10# Sumar 10 a la variable x
x = x + 10
x20# Realizar más operaciones aritméticas
x = x * 10 + 20 / 2
x210.0# Asignar a la variable nombre el valor "Marta"
nombre = "Marta"
nombre# A la variable lista_primos se le asigna una lista de números primos
lista_primos = [2, 3, 5, 7, 11, 13, 17]
lista_primos[2, 3, 5, 7, 11, 13, 17]# Tipo de lista_primos
type(lista_primos)list# Tipo de nombre
type(nombre)strLos nombres de las variables deben cumplir con varias condiciones:
No pueden empezar con un número (sí pueden usarse números en el resto del nombre).
No pueden contener espacios (se sugiere usar el guión bajo:
_).No pueden contener ninguno de los siguientes símbolos:
'",<>:/?|\!@#%^&*~-+.No deben utilizarse palabras reservadas de Python.
Se considera una buena práctica utilizar nombres en minúscula y con guiones bajos, para así mejorar la legibilidad.
Es importante utilizar nombres significativos para las variables, que reflejen su propósito.
Comentarios¶
Los comentarios son textos que se incluyen en el código fuente de un programa, pero que no son instrucciones.
En Python, existen varios tipos de comentarios. Los más usados, comienzan con el símbolo #. Todo lo que esté después de # es ignorado por el interpretador de Python.
# Esto es un comentario
estatura = 1.7 # Esto es otro comentarioExpresiones¶
Una expresión es una combinación de:
Literales: valores constantes de números, hileras, listas, booleanos y otros tipos de datos.
Variables.
Los dos anteriores combinados mediante operadores o funciones.
Una expresión tiene un valor numérico, textual, booleano o de otro tipo.
Aritméticas¶
Se utilizan para realizar operaciones matemáticas con números enteros, complejos o de punto flotante.
Operadores aritméticos¶
| Operador | Descripción | Ejemplo |
|---|---|---|
| + | Suma | 4 + 3 (= 7) |
| - | Resta | 10 - 5 (= 5) |
| * | Multiplicación | 3 * 4 (= 12) |
| / | División | 5 / 2 (= 2.5) |
| // | División entera | 5 // 2 (= 2) |
| % | Módulo | 5 % 2 (= 1) |
| ** | Exponenciación | 2 ** 3 (= 8) |
Ejemplos¶
# Literal
00# Variable
peso = 75.7# Literal, variable, operador aritmético y función
34 + int(peso)109Booleanas¶
Se les llama también expresiones lógicas. Tienen solamente dos posibles valores:
True(verdadero)False(falso)
Son muy importantes en Python, ya que permiten que un programa “tome decisiones” mediante estructuras de control como condicionales y ciclos.
Operadores booleanos¶
| Operador | Descripción | Ejemplo |
|---|---|---|
| and | Retorna True si ambos operandos son verdaderos y False en caso contrario | (1 < 2) and (4 > 3) [= True] |
| or | Retorna True si al menos uno de los operandos es verdadero y False en caso contrario | (10 > 20) or (40 < 30) [= False] |
| not | Retorna True si el operando es falso y False en caso contrario | not (4 > 2) [= False] |
Operadores relacionales¶
Se utilizan para comparar.
| Operador | Descripción | Ejemplo |
|---|---|---|
| == | Igual | (3 + 1) == (2 ** 2) |
| != | Diferente | 0 != 1 |
| > | Mayor que | 3 > 2 |
| < | Menor que | 2 < 3 |
| >= | Mayor o igual que | 3 >= (2 + 1) |
| <= | Menor o igual que | 2 <= 5 |
Ejemplos¶
# Literal
TrueTrue# Literal y variable
peso == 100False# Literal, variable y operador
peso > 100False# Literales, variables, operador aritmético y operador relacional
(peso + 45) > 100True# Literales, variables, operadores aritméticos, operadores relacionales y operadores lógicos
((peso + 45) > 10) and ((x - 20) <= 0)FalseCadenas de caracteres (strings)¶
Hay muchos operadores y funciones para trabajar con cadenas de caracteres. Por ejemplo, el operador + concatena (une) cadenas de caracteres.
# Concatenar cadenas de caracteres
"Manuel" + " " + "Vargas"Listas¶
Las listas también pueden concatenarse con el operador +.
# Concatenar listas
[1, 2, 3] + ["a", "b", "c"][1, 2, 3, 'a', 'b', 'c']Condicionales¶
La sentencia if¶
En Python, los condicionales se implementan a través de la sentencia if. En su forma más básica, tiene la siguiente estructura:
if <condición>:
<bloque de sentencias><condición> es una expresión lógica (que es verdadera o falsa). Si la condición es verdadera, se ejecutará el bloque de sentencias que está luego de los dos puntos (:). En Python, un bloque de instrucciones se identifica por la tabulación a un mismo número de espacios.
Por ejemplo:
print("Inicio del programa.")
print("Este programa indica si una persona es menor de edad.")
print("\n")
edad = 15
if edad < 18:
print("- La persona es MENOR.")
print("- No puede votar en las elecciones presidenciales.")
print("- No puede tener licencia para conducir automóviles.")
print("\n")
print("Fin del programa.")Inicio del programa.
Este programa indica si una persona es menor de edad.
- La persona es MENOR.
- No puede votar en las elecciones presidenciales.
- No puede tener licencia para conducir automóviles.
Fin del programa.
Después de ejecutar el bloque (si se cumple la condición), el programa continúa ejecutando las instrucciones que están fuera del bloque, si es que las hay.
La cláusula else¶
Es una cláusula opcional que se utiliza para especificar un bloque alterno que se ejecuta si no se cumple la condición del if. Tiene la siguiente estructura:
if <condición>:
<bloque de sentencias>
else:
<bloque de sentencias>Solamente puede usarse una cláusula else en cada sentencia if. Por ejemplo:
print("Inicio del programa.")
print("Este programa indica si una persona es menor o adulta.")
print("\n")
edad = 22
if edad < 18:
print("- La persona es MENOR.")
print("- No puede votar en las elecciones presidenciales.")
print("- No puede tener licencia para conducir automóviles.")
else:
print("- La persona es ADULTA.")
print("- Puede votar en las elecciones presidenciales.")
print("- Puede tener licencia para conducir automóviles.")
print("\n")
print("Fin del programa.")Inicio del programa.
Este programa indica si una persona es menor o adulta.
- La persona es ADULTA.
- Puede votar en las elecciones presidenciales.
- Puede tener licencia para conducir automóviles.
Fin del programa.
La cláusula elif¶
Es una cláusula opcional que permite especificar condiciones adicionales entre las cláusulas if y else.
if <condición>:
<bloque de sentencias>
elif <condición>:
<bloque de sentencias>
else:
<bloque de sentencias>Puede usarse cualquier cantidad de cláusulas elif. La cláusula elif puede utilizarse sin la cláusula else y viceversa.
Ejemplo:
print("Inicio del programa.")
print("Este programa indica si una persona es menor, adulta o adulta mayor.")
print("\n")
edad = 65
if edad < 18:
print("- La persona es MENOR.")
print("- No puede votar en las elecciones presidenciales.")
print("- No puede tener licencia para conducir automóviles.")
elif edad < 65:
print("- La persona es ADULTA.")
print("- Puede votar en las elecciones presidenciales.")
print("- Puede tener licencia para conducir automóviles.")
else:
print("- La persona es ADULTA MAYOR.")
print("- Puede votar en las elecciones presidenciales.")
print("- Puede tener licencia para conducir automóviles.")
print("- Tiene acceso gratuito al servicio público de autobuses.")
print("- Tiene prioridad en las filas de atención en bancos y otros servicios.")
print("\n")
print("Fin del programa.")Inicio del programa.
Este programa indica si una persona es menor, adulta o adulta mayor.
- La persona es ADULTA MAYOR.
- Puede votar en las elecciones presidenciales.
- Puede tener licencia para conducir automóviles.
- Tiene acceso gratuito al servicio público de autobuses.
- Tiene prioridad en las filas de atención en bancos y otros servicios.
Fin del programa.
Acerca de los bloques de Python¶
Los bloques son conjuntos de sentencias contiguas que están tabulados con la misma cantidad de espacios. La cantidad de espacios puede ser decidida por el programador, pero se recomienda usar cuatro espacios.
NOTA: deben utilizarse espacios y NO TABULADORES. Si se mezclan espacios y tabuladores, el programa puede comportarse de forma errónea.
Ejercicios¶
Cálculo del Índice de Masa Corporal (IMC)¶
Desarrolle un programa que calcule el Índice de Masa Corporal (IMC) de una persona. El IMC se calcula mediante la fórmula:
El peso se expresa en kilogramos y la estatura en metros. El valor del IMC se categoriza de acuerdo con la siguiente tabla:
| Categoría | Rango de IMC |
|---|---|
| Peso bajo | Menor que 18.5 |
| Peso normal | Mayor o igual que 18.5 y menor que 25 |
| Sobrepeso | Mayor o igual que 25 |
Por ejemplo, si una persona pesa 70 kg y mide 1.75 m, su IMC es:
Y corresponde a peso normal.
Solución
# ENTRADA
peso = 70
estatura = 1.71
# PROCESAMIENTO
# Cálculo del IMC
imc = peso / (estatura ** 2)
# Determinación de la categoría del IMC
if imc < 18.5:
categoria = "peso bajo"
elif imc < 25:
categoria = "peso normal"
else:
categoria = "sobrepeso"
# SALIDA
print(f"El IMC de la persona es {imc:.1f} y se considera {categoria}.")El IMC de la persona es 23.9 y se considera peso normal.
Note el empleo del modelo Entrada - Procesamiento - Salida para estructurar la solución:
Se reciben datos de entrada (ej. números).
Se procesan (ej. con cálculos aritméticos).
Se generan salidas (resultados de los cálculos).
Cálculo de coordenadas en grados decimales¶
Calcule la longitud y la latitud en grados decimales a partir de su equivalente en grados, minutos y segundos. Para estructurar la solución, utilice el modelo Entrada - Procesamiento - Salida.
Excepciones¶
Las excepciones son un mecanismo que provee Python para manejar errores o situaciones inesperadas que se producen durante la ejecución de los programas. Mediante este mecanismo, el curso de ejecución del programa se interrumpe cuando ocurre un error y una excepción es “levantada” (raised). El control pasa entonces a otro bloque de instrucciones, el cual se encarga de manejar el error.
Las sentencias try y except¶
Las sentencias try y except son las que implementan el manejo de excepciones en Python. En el bloque try se coloca el código que puede ocasionar que se levante la excepción y en el bloque except se ubica el código que maneja la excepción.
La estructura básica es la siguiente:
try:
<bloque de sentencias que puede generar un error>
except:
<bloque de sentencias que maneja el error>Por ejemplo, un llamado a la función float(), que convierte una hilera de texto a un número en punto flotante (i.e. decimal), puede ocasionar un error si la hilera de entrada no corresponde a un número.
x = float("8,5")
x---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
Cell In[1], line 1
----> 1 x = float("8,5")
2 x
ValueError: could not convert string to float: '8,5'El siguiente bloque de código maneja el error mediante un bloque try except y evita el mensaje de error que genera el interpretador de Python, sustituyéndolo por uno más amigable.
try:
x = float("8,5")
except:
print("Por favor utilice un número")El siguiente ejemplo maneja el mismo tipo de error. En este caso, la función input() se utiliza para leer un número desde el teclado.
fahr_hilera = input('Ingrese la temperatura en grados Fahrenheit: ')
try:
fahr = float(fahr_hilera)
celsius = (fahr - 32.0) * 5.0 / 9.0
print("El equivalente el grados Celsius es: ", celsius)
except:
print('Por favor ingrese un número.')Ejercicios¶
Modificación del programa que calcula el IMC¶
Modifique el programa que calcula el IMC y maneje las excepciones que puedan producirse.
Ciclos¶
Los ciclos son bloques de instrucciones que se ejecutan varias veces. Para manejar ciclos, Python provee dos mecanismos: la sentencia while y la sentencia for.
La sentencia while¶
La sentencia while se utiliza para ejecutar repetidamente un bloque de instrucciones mientras que una condición sea verdadera. Su estructura básica es:
while <condicion>:
<bloque de sentencias>Típicamente, en el bloque hay instrucciones que provocan que la condición se vuelva falsa eventualmente y el ciclo termine. De lo contrario, se producirá un ciclo infinito. Nótese que si la condición ya es falsa cuando el flujo del programa llega al while, el bloque no se ejecutará nunca.
Ejemplos:
# Contador de números en orden ascendente
n = 1
while n <= 5:
print(n)
n = n + 11
2
3
4
5
# Contador de números en orden descendente
n = 5
while n >= 1:
print(n)
n = n - 15
4
3
2
1
# Recorrido de una hilera
texto = "Lorem ipsum"
n = 0
while n < len(texto) :
print(texto[n])
n = n + 1L
o
r
e
m
i
p
s
u
m
# Validación de entrada de datos
numero = -1
while not(numero >= 5 and numero <= 10) :
numero = float(input("\nPor favor ingrese un número entre 5 y 10: "))
if not(numero >= 5 and numero <= 10) :
print("El número no está entre 5 y 10, por favor inténtelo de nuevo...")
print("¡Gracias!")
Por favor ingrese un número entre 5 y 10: 9
¡Gracias!
La sentencia for¶
La sentencia for se utiliza para iterar sobre los elementos de estructuras de datos como secuencias (ej. hilera, lista, tupla). Su sintaxis puede resumirse de la siguiente manera:
for <variable_iteracion> in <secuencia>:
<bloque de sentencias>La variable de iteración es una variable que asume el valor del elemento que se procesa en cada iteración.
Ejemplos:
# Recorrido de una lista
alumnos = ['Juan', 'María', 'Pedro']
for alumno in alumnos:
print("¡Buenos días " + alumno + "!")¡Buenos días Juan!
¡Buenos días María!
¡Buenos días Pedro!
# Recorrido de un rango de números
# La función range(a, b) crea una secuencia de números entre a y b-1.
for numero in range(1, 11):
print(numero)1
2
3
4
5
6
7
8
9
10
# Cálculo de la cantidad de elementos de una lista
lista = [3, 41, 12, 9, 74, 15]
contador = 0
print("Lista: ", lista)
for item in lista :
contador += 1 # esto es lo mismo que: contador = contador + 1
print("Cantidad de elementos:", contador)Lista: [3, 41, 12, 9, 74, 15]
Cantidad de elementos: 6
# Suma de los elementos de una lista
lista = [3, 41, 12, 9, 74, 15]
suma = 0
print("Lista: ", lista)
for item in lista :
suma += item
print("Suma de los elementos:", suma)Lista: [3, 41, 12, 9, 74, 15]
Suma de los elementos: 154
La sentencia break¶
La sentencia break finaliza un ciclo y pasa el flujo del programa a la instrucción que sigue al bloque del while o del for.
# Busca el primer número de una lista que sea mayor que 20 y sale del ciclo una vez que lo ha encontrado
lista = [3, 41, 12, 9, 74, 15]
print("Lista: ", lista)
for item in lista :
if item > 20 :
print("Primer número mayor que 20: ", item)
breakLista: [3, 41, 12, 9, 74, 15]
Primer número mayor que 20: 41
La sentencia continue¶
La sentencia continue interrumpe la iteración actual de un ciclo y continúa con la siguiente. No sale completamente del ciclo, como la sentencia break.
# Imprime el doble de cada uno de los números mayores que 20 que hay en una lista.
# Si el número de la iteración es menor o igual que 20, utiliza la sentencia continue para "saltarse" esa iteración.
lista = [3, 41, 12, 9, 74, 15]
print("Lista: ", lista)
for item in lista :
if item <= 20:
continue
print(item * 2)Lista: [3, 41, 12, 9, 74, 15]
82
148
Ejercicios¶
Promedio de los elementos de una lista¶
Escriba un programa que calcule el promedio de los elementos de una lista.
Funciones¶
Las funciones son conjuntos de sentencias que tienen un nombre y realizan una tarea específica como, por ejemplo, un cálculo matemático o un procesamiento de texto. Por lo general, una función recibe datos de entrada, llamados argumentos, y retorna un valor.
El uso de funciones tiene múltiples ventajas, entre las que pueden mencionarse:
Mejoran la legibilidad de los programas: mediante el uso de nombres significativos para las secciones de código que realizan una tarea.
Evitan la duplicidad de código fuente: una función se define una vez y luego pueden ser invocada muchas veces en un programa.
Facilitan el mantenimiento de los programas: al realizar las modificaciones en el código de una función, se evita la necesidad de realizarlas en múltiples secciones de un programa.
Facilitan la reutilización de código: mediante mecanismos como módulos de funciones (archivos con colecciones de funciones).
Funciones predefinidas¶
Python tiene una lista de funciones predefinidas. Algunas se han utilizado ya en este curso:
# type(): tipo de datos de una expresión
type(20)int# int(): convierte una expresión a un número de tipo entero (int)
int("100")100# len(): retorna la cantidad de elementos (items) de una hilera, lista
# u otros tipos de secuencias y de colecciones.
provincias = ["Limón", "Guanacaste", "Puntarenas", "Heredia", "Alajuela", "Cartago", "San José"]
len(provincias)7# pow(): eleva un número a una potencia
pow(5, 2)25Estas funciones predefinidas pueden invocarse en cualquier parte de un programa en Python, con solo escribir su nombre y argumentos.
Funciones definidas en módulos de la biblioteca estándar¶
La biblioteca estándar de Python es el conjunto de módulos que se incluye con cada distribución de Python, sin necesidad de instalarlos separadamente. Estos módulos proporcionan un conjunto de funciones más especializadas en áreas como matemáticas, multimedios, redes y otras. Para utilizar estas funciones, primero debe importarse el módulo del que forman parte mediante la sentencia import. Por ejemplo:
import mathLa instrucción anterior brinda acceso a las funciones del módulo math, que contiene un conjunto de funciones matemáticas. Por ejemplo:
# math.factorial(): retorna el factorial de un número
math.factorial(4)24# math.sqrt(): retorna la raíz cuadrada de un número
math.sqrt(9)3.0Nótese que para invocar a estas funciones, debe escribirse antes el nombre del módulo y un punto. También puede usarse la siguiente sintaxis.
from math import factorial, sqrtfactorial(4)24sqrt(9)3.0Funciones definidas en módulos de paquetes externos¶
No están incluidos en la biblioteca estándar de Python y deben instalarse de acuerdo con el procedimiento definido por sus autores, como por ejemplo con los programas administradores de paquetes pip y Conda.
Muchos de estos paquetes se distribuyen a través de repositorios como el Python Package Index (PyPI), que a la fecha alberga más de 600000 proyectos desarrollados por la comunidad de desarrolladores en Python.
Sintaxis para la definición de nuevas funciones¶
En Python, el programador puede definir nuevas funciones a través de la palabra reservada def, con la siguiente sintaxis:
def <nombre_funcion>(<arg1>, <arg2>, ..., <argn>):
<bloque de sentencias>
return <valor_retorno>El nombre de la función es elegido por el usuario y sigue las mismas reglas y recomendaciones que en el caso de los nombres de las variables.
Los argumentos se especifican entre paréntesis y se separan por comas. Si la función no tiene argumentos, deben incluirse paréntesis vacíos.
La palabra reservada return especifica el valor de retorno de la función.
Ejemplos:
# Definición de una función
def fahrenheit_a_celsius(grados_fahrenheit):
grados_celsius = (grados_fahrenheit - 32.0) * 5.0 / 9.0
return grados_celsius
# Llamados a la función
print(fahrenheit_a_celsius(104))
print(fahrenheit_a_celsius(50))
print(fahrenheit_a_celsius(32))
print(fahrenheit_a_celsius(14))40.0
10.0
0.0
-10.0
Ejercicios¶
Cálculo del IMC¶
Escriba un programa que:
Le solicite al usuario su peso y su estatura.
Calcule su índice de masa corporal (IMC).
Imprima el valor del índice y si este es considerado bajo (menor que 18.5), normal (entre 18.5 y 25) o alto (mayor o igual que 25).
Los detalles del cálculo del índice están en https://
Como parte del programa, defina una función llamada imc() que retorne el IMC a partir del peso y la estatura y otra función llamada imc_interpretacion() que retorne en una hilera si el IMC es bajo, normal o alto.
Programación orientada a objetos¶
La Programación Orientada a Objetos (POO) es un paradigma de programación basado en el concepto de objeto. En el contexto de la POO, los objetos son entidades que poseen:
Estado: implementado con un conjunto de variables llamadas propiedades.
Comportamiento: implementado con un conjunto de funciones llamadas métodos.
Los objetos se agrupan en clases. Todos los objetos de una clase contienen los mismos métodos y propiedades. Una clase puede verse como una plantilla a partir de la cual se crean objetos. A un objeto creado a partir de una clase se le llama también una instancia de esa clase.
# Definición de la clase CuentaBancaria
class CuentaBancaria:
# Propiedades
propietario = ""
balance = 0
# Métodos
# Constructor de la clase: crea nuevas instancias e inicializa las propiedades
def __init__(self, propietario, balance):
self.propietario = propietario
self.balance = balance
# Método para realizar depósitos
def depositar(self, monto):
self.balance = self.balance + monto
# Método para realizar retiros
def retirar(self, monto):
self.balance = self.balance - monto
# Método para imprimir información
def imprimir_informacion(self):
print("Propietario: " + self.propietario + ", Balance: " + str(self.balance))Una vez definida una clase, pueden declararse objetos o instancias de esta. Las instancias pueden invocar métodos de la clase mediante la notación:
<instancia>.<método>A continuación, se presentan algunos ejemplos de instancias de la clase CuentaBancaria y de llamados a sus métodos.
# Instancia cuenta01
cuenta01 = CuentaBancaria("Juan Pérez", 1000)
cuenta01.depositar(5000)
cuenta01.imprimir_informacion()# Instancia cuenta02
cuenta02 = CuentaBancaria("María Pérez", 10000)
cuenta02.depositar(15000)
cuenta02.retirar(24000)
cuenta02.imprimir_informacion()Objetos y clases predefinidas de Python¶
Todos los datos de un programa en Python se representan mediante objetos o por relaciones entre objetos. Los tipos de datos corresponden a las clases de los objetos.
# Clase int
print(type(234))<class 'int'>
# Clase float
print(type(10.3))<class 'float'>
# Clase bool
print(type(True))<class 'bool'>
# Clase list
print(type([True, 23, 20.6, (1, 2, 3)]))<class 'list'>
El que un dato sea un objeto, implica que además de su valor tiene un conjunto de operaciones asociadas (métodos) que se aplican mediante operadores (ej. +, -, *, %) o funciones (ej. len(), type()). Tanto los operadores como las funciones pueden aplicarse en varias clases. Por ejemplo, el operador + se usa para int, float, str, list y otras clases; len() se usa también en varios tipos de datos.
Estructuras de datos: cadenas de caracteres, listas y diccionarios¶
La clase str¶
Como ya se ha explicado, la clase str se utiliza para representar datos textuales en Python. Esta clase proporciona un conjunto de métodos, de los que se presentan algunos ejemplos a continuación.
# str.capitalize(): retorna una copia de 'str' con el primer carácter en mayúscula y el resto en minúscula.
'hola'.capitalize()# str.lower(): retorna una copia de 'str' con todos los caracteres en minúscula
'HOLA'.lower()# str.count(sub[, start[, end]]): retorna el número de hileras no traslapadas de la subhilera 'sub'
# en el rango [start, end], el cual es opcional, de 'str'.
cita_socrates = 'Solo sé que no sé nada'
cita_socrates.count('sé') # se cuentan todas las ocurrencias de 'sé'2# str.find(sub[, start[, end]]): retorna el índice menor en donde se encuentra 'sub'
# en el rango [start, end] de 'str'
cita_socrates.find('Solo')0# str.replace(old, new[, count]): retorna una copia de 'str' con todas las ocurrencias
# de la subhilera 'old' reemplazadas por 'new'.
# Si 'count' es especificado, solo se reemplazan las primeras 'count' ocurrencias de 'old'
cita_socrates.replace("Solo", "Solamente")Formateo de hileras
Se implementa a través del método str.format(). Pueden verse varios ejemplos en https://
# Formateo de números enteros
'La suma de 3 + 4 es {} y la resta de 10 - 6 es {}'.format(7, 4)# Formateo de un número en punto flotante (6 caracteres, 4 después del punto decimal)
'La relación entre la longitud de una circunferencia y su diámetro es {:6.4f}'.format(3.141592653589793)# Formateo de fecha y hora
from datetime import datetime
'{:%d/%m/%Y %H:%M}'.format(datetime(2001, 2, 3, 4, 5))El formateo también puede realizarse a través de f-strings.
longitud_centroide_cr = -84.19451
latitud_centroide_cr = 9.972725
# Hilera formateada con f-string
f'El centroide de Costa Rica se ubica aproximadamente en {longitud_centroide_cr} grados de longitud oeste y {latitud_centroide_cr} grados de latitud norte.'# Hilera formateada con f-string para desplegar dos decimales
f'El centroide de Costa Rica se ubica aproximadamente en {longitud_centroide_cr:.2f} grados de longitud oeste y {latitud_centroide_cr:.2f} grados de latitud norte.'La clase list¶
La clase list implementa secuencias mutables (i.e. modificables) de objetos que se especifican como ítems separados por comas y encerrados entre paréntesis cuadrados.
Se presentan a continuación algunos ejemplos de operaciones y métodos de la clase list, los cuales son comunes a todas las clases de secuencias mutables:
# Definición de una lista
lista = [10, 20, 30, 40, 50]# Borrado de un elemento con base en su posición
del lista[4]
lista[10, 20, 30, 40]# list.append(x): agrega 'x' al final de 'list'
lista.append(50)
lista[10, 20, 30, 40, 50]# list.insert(i, x): inserta 'x' en la posición 'i'
lista.insert(4, 45)
listaLa clase dict¶
La clase dict (o diccionario) implementa un conjunto de pares ordenados de la forma llave:valor. Por ejemplo:
# Definición de un diccionario
persona = {"cedula":"408730281", "nombre":"Juan", "apellido":"Pérez"}Ejemplos de operaciones y métodos de la clase dict:
# Retorno de valor correspondiente a una llave
persona["cedula"]# Asignación de un valor a una llave
persona["nombre"] = "María"
persona{'cedula': '408730281', 'nombre': 'María', 'apellido': 'Pérez'}# Verificación de la existencia de una llave
"apellido" in personaTrue# dict.items(): retorna los ítems (pares (llave, valor)) de 'dict'
persona.items()dict_items([('cedula', '408730281'), ('nombre', 'María'), ('apellido', 'Pérez')])# dict.keys(): retorna las llaves de 'dict'
persona.keys()dict_keys(['cedula', 'nombre', 'apellido'])# dict.values(): retorna los valores de 'dict'
persona.values()dict_values(['408730281', 'María', 'Pérez'])# dict.get(key[, default]): retorna el valor de la llave 'key' en 'dict'
persona.get("apellido")