Programacion en Python
Programacion en Python
Programacion en Python
Profesores adscritos al
Programa de Ingeniería de Sistemas y Computación
Facultad de Ingeniería
Universidad del Quindío
Armenia 2019
Introducción a la Programación en Python
Derechos Reservados
Armenia - Quindío
Primera edición, diciembre de 2019
ISBN
978-958-8801-95-7
Elizcom
NIT 18497593-4
Armenia, Quindío – Colombia
Tel. 7369378
Introducción a la Programación en Python
TABLA DE CONTENIDO
CAPÍTULO 1 ........................................................................................................... 15
FUNDAMENTOS DEL LENGUAJE .................................................................... 15
Objetivos: ................................................................................................................. 15
1.1 Dato.............................................................................................................. 11
1.1.1 Tipos de datos.................................................................................. 11
1.4 Variables...................................................................................................... 19
1.5 Operadores ................................................................................................. 21
1.5.1 Operadores matemáticos ............................................................... 21
1.5.2 Operadores relacionales ................................................................. 22
1.7 Comentarios................................................................................................ 34
1.8 Entrada y salida de datos.......................................................................... 34
2 FUNCIONES ................................................................................................... 50
2.1 Funciones propias de Python ................................................................... 51
PRESENTACIÓN
Cada capítulo inicia con los conceptos básicos del tema a tratar, acompañados de
varios ejemplos que permiten comprender mejor y afianzar la teoría estudiada, de
igual manera, se introducen actividades que deben ser desarrolladas por el lector.
Algo importante a tener en cuenta es que, cada ejemplo tiene una amplia explicación
que hace más fácil el entendimiento de la lógica aplicada. Así mismo, su desarrollo se
hace de una manera progresiva, donde algunos ejemplos son una versión mejorada
de la anterior, esto con el propósito de que el lector analice como se van
incorporando nuevos conceptos para lograr mejores funcionalidades.
El texto está organizado en cinco capítulos, que corresponden a los contenidos que
se desarrollan en los cursos iniciales de programación del Programa de Ingeniería de
Sistemas y Computación de la Universidad del Quindío. Cada uno de los cuales
estudia lo siguiente:
Capítulo 3 – Estructura de decisión. Este es uno de los temas que no pueden faltar
en el estudio de la programación. Se estudia las diferentes formas que se presentan
en el lenguaje, como la tradicional decisión simple, la decisión anidada y el uso de if-
elif.
Capítulo 5 – Colecciones. En este capítulo se estudiarán las tuplas, las listas y los
diccionarios, elementos que fueron definidos de manera parcial en el capítulo uno.
Estos tipos de datos nos permitirán manejar la información de una manera más
ordenada. El tema inicia con las tuplas, luego continúa con las listas en 1 y 2
dimensiones, finalizando con el estudio de los diccionarios.
Por último, es de resaltar que, los programas fueron construidos abordando las
buenas prácticas de programación. Entre las cuales se destacan: uso de funciones de
usuario o programador en la mayoría de los ejemplos, en las cuales se estableció un
único retorno; para las variables y demás identificadores se usaron nombres
nemotécnicos que facilitan el entendimiento del código.
14
Introducción a la Programación en Python
CAPÍTULO 1
FUNDAMENTOS DEL
LENGUAJE
Objetivos:
Las características que hacen de Python un lenguaje popular y muy utilizado son las
siguientes:
10
Introducción a la Programación en Python
1.1 Dato
Así las cosas, se debe tener presente que la información está compuesta por un
conjunto de datos agrupados y ubicados dentro de un contexto.
Los tipos de datos permiten clasificar los datos de una manera adecuada para su
manejo; además le indican al computador o al dispositivo de procesamiento cuánta
11
Introducción a la Programación en Python
memoria debe reservar, ya que el tamaño en bits de cada uno de ellos es diferente.
Python maneja los siguientes tipos de datos:
Numéricos
int (enteros)
float (reales)
complex (Complejos)
Boolean
bool (Booleano)
Secuencias
str (String)
tuple (Tuplas)
list (Listas)
Diccionarios
dict
NUMÉRICOS
Son aquellos datos con los cuales se pueden realizar operaciones de tipo matemático.
Están compuestos por la combinación de los números del 0 al 9, el carácter punto (.)
para separar los decimales y el signo + o – que se usan para indicar si el número es
positivo o negativo. En el caso de los números positivos no se requiere el empleo del
signo +.
Numérico real. Un número real es de tipo float, también son conocidos como
números de punto flotante. Ellos están compuestos por números positivos o
negativos que contienen parte entera y fraccional (decimal) los cuales se separan
12
Introducción a la Programación en Python
mediante un punto. Por ejemplo: 4.0, -20.56, 16.456. Observe que este último valor,
no es el número Dieciséis mil cuatrocientos cincuenta y seis, sino el número entero
16 con una parte fraccional o decimal de 456.
Número complejo. Un número complejo es de tipo complex. Son aquellos que están
compuestos por una parte real y otra imaginaria. Son una extensión de los float. Por
ejemplo: -2+3.3j, 7.7+3j. Observe que para su representación se usa la letra j y no la
letra i como se acostumbra en las matemáticas.
Este tipo de dato es poco común en otros lenguajes de programación. Son muy
usados para cálculos científicos o de ingeniería.
bool - BOOLEAN.
Los datos booleanos, también llamados lógicos solo permiten uno de dos valores:
False o True (Falso o Verdadero en español).
str - STRING.
Comúnmente se le conocen como datos de tipo cadena. Son de tipo str. Están
representados por todas las letras, números, el espacio en blanco y los caracteres
especiales. Una cadena se identifica porque los caracteres están encerrados entre
comillas. Por ejemplo: "Gato", "Calle 78 Norte 15-451", "Juan Pablo Correa Guzmán",
"74454548".
13
Introducción a la Programación en Python
SECUENCIAS
Una secuencia es un contenedor de cero o varios objetos ordenados que, pueden ser
de diferentes tipos de datos y fácilmente accedidos utilizando la posición que ocupen
dentro de ella. Las secuencias que están presenten en Python son las tuplas y listas.
Por el momento solo se van a definir, posteriormente se abordarán con más detalle.
Listas. Una lista es de tipo list. Al estar dentro de la categoría de secuencias, se define
como un contenedor de objetos que pueden ser modificables. Los objetos que hacen
parte de la lista pueden ser todos del mismo tipo o una combinación de ellos. Una
lista se identifica porque sus elementos están encerrados entre corchetes [ ]. Por
ejemplo:
Lista vacía:
[]
[2018]
["Luna"]
Las listas también pueden estar compuesta por elementos de diferente tipo de dato:
14
Introducción a la Programación en Python
Tupla. Una tupla es de tipo tuple. Es similar a una lista, con la diferencia que sus
objetos no son modificables. Los objetos que hacer parte de la lista pueden ser del
mismo tipo o de una combinación de ellos. Una lista se identifica porque sus
elementos están encerrados entre paréntesis ( ), aunque también pueden omitirse.
Por ejemplo:
Tupla vacía:
()
(2018, )
("Luna", )
Las tuplas también pueden estar compuesta por elementos de diferente tipo de dato:
15
Introducción a la Programación en Python
Hay que notar que, en el anterior ejemplo se le dio el nombre de paises al diccionario.
En él se aprecia que hay parejas de clave y valor. Las claves son los nombres de los
países y los valores sus capitales, ambos se separan mediante dos puntos. Cada pareja
(clave: valor) se separa de las demás mediante una coma.
Basados en este ejemplo, se mostrará el uso de una lista en la cual se tienen más
datos de cada país (capital, moneda, idioma, población), de esta forma la pareja
clave: valor, la conforma el nombre del país y su lista de datos.
1.2 Identificadores
16
Introducción a la Programación en Python
Existen algunas reglas que deben respetarse al definir un identificador, así como
también, hay recomendaciones que han resultado de las buenas prácticas de
programación.
Recomendaciones: son buenas prácticas que se han establecido con el fin de facilitar
el trabajo de mantenimiento de un programa. Si se omiten, el programa funcionará
sin ningún inconveniente.
Python soporta la letra ñ y las vocales con tildes en los identificadores, pero no
es aconsejable su uso.
Se deben usar identificadores nemotécnicos, es decir, que sean muy descriptivos
con relación a lo que hacen dentro del programa.
Cuando se define el identificador para un valor que va a permanecer durante toda
la ejecución del programa, se aconseja escribirlo en mayúsculas.
No se deben incluir artículos como parte del identificador (el, la, los, de, un, unos,
de, etc.).
Cuando se tienen identificadores con más de dos palabras, debe seguirse una
misma convención dentro de todo el programa. Las convenciones más conocidas
en Python son:
17
Introducción a la Programación en Python
Las palabras reservadas son aquellas que, se emplean de acuerdo con su tarea
específica dentro del lenguaje de programación. Como se dijo en el apartado
anterior, ningún identificador puede ser denominado con el nombre de una palabra
reservada.
18
Introducción a la Programación en Python
1.4 Variables
Para asignar un valor a una variable se utiliza el signo igual (=). La sintaxis es la
siguiente:
identificador = valor
19
Introducción a la Programación en Python
1) x=5
2) x = "Armenia"
3) x = 3.6
Para una mejor explicación se ha numerado cada instrucción. Por lo cual, se puede
apreciar que en la línea uno se ha definido una variable llamada x con un valor inicial
de tipo int (entero) de 5. En la línea dos se conserva la misma variable, pero en esta
ocasión su valor es de tipo str (string o cadena). Ya en la línea tres su valor es de 3.6,
que corresponde a un tipo float (flotante).
Actividad 1.2 Dadas las siguientes variables, determine a qué tipo de dato pertenece.
20
Introducción a la Programación en Python
1.5 Operadores
Así mismo, se encuentran los operadores unarios, es decir, actúan sobre un solo
operando:
Operador operando
Son operadores binarios, se utilizan para realizar operaciones con valores numéricos.
Python maneja los siguientes operadores matemáticos:
21
Introducción a la Programación en Python
Para explicar los otros dos operadores, tengamos en cuenta los conceptos que se
muestran a continuación:
Por su parte, el operador % permite encontrar el módulo o resto de una división. Para
el caso del ejemplo anterior, se tendría: 13 % 3, dando como resultado el valor de 1.
Son operadores binarios que permiten hacer comparaciones entre dos operandos.
Operador Significado
> Mayor que
< Menor que
== Igual a
!= Diferente de
>= Mayor o igual a
<= Menor o igual a
22
Introducción a la Programación en Python
Es importante tener en cuenta que, el operador relacional == (dos iguales) indica una
comparación entre dos operandos y es diferente a = (un solo igual) que es usado para
asignar un valor a una variable.
and Conjunción.
or Disyunción.
not Negación.
23
Introducción a la Programación en Python
Operando Resultado
True False
False True
1.6 Expresiones
24
Introducción a la Programación en Python
Este tipo de expresiones también pueden conformarse por variables. Por ejemplo, a
+ b, en este caso suma el valor que tenga la variable a con el valor que tenga la
variable b, el resultado dependerá de los valores almacenados en estas variables.
Operador Precedencia
** Prioridad más alta
*, /, //, % Prioridad media
+, - Prioridad más baja
Lo expresado en la tabla indica que, lo primero que se debe calcular en una expresión
matemática es la potencia, luego las operaciones de división, multiplicación y
módulo, finalmente se realizan las sumas y restas. Cuando los operadores tienen igual
prioridad, se procede de izquierda a derecha. Además, si por alguna circunstancia se
tiene que cambiar la prioridad de la operación se usan los paréntesis, los cuales
asumen la prioridad más alta.
4+5*2
Si esta instrucción se calcula en el orden en que está escrita, sin tener en cuenta la
precedencia de los operadores, se obtendrá un resultado de 18.
4+5*2
Se obtiene un 9 de la suma de 4 + 5
9*2
25
Introducción a la Programación en Python
4+5*2
Para un resultado de 10
4 + 10
Si lo que usted buscaba era que el resultado fuera 18, la expresión correcta sería:
(4 + 5) * 2
(4 + 5) * 2
9*2
18
Ahora se analizará una expresión donde hay operaciones con la misma precedencia.
Entonces, ¿cuál será el resultado de la siguiente expresión?
7+4/8*3
26
Introducción a la Programación en Python
7+4/8*3
7 + 0.5 * 3
7 + 1.5
8.5
Actividad 1.3 Realice las siguientes operaciones, paso a paso, teniendo en cuenta la
precedencia de los operadores:
a. 7 + 4 / (8 * 3)
b. (7 + 4) / 8 * 3
c. (7 + 4) / (8 * 3)
d. 10 * (10 + (-5)) % (8 + (-1)) // 10
e. 5 // 2 * 3 + 4 ** (3 * 2) // 3 + (4 – 2)
f. 10 * (10 + 4) % (8 + 3) // 3
g. 3 % 2 - 4 // 1 * 4 + 3
27
Introducción a la Programación en Python
𝑥
a. 𝑟
𝑦+
𝑙
𝑥
𝑦
b.
𝑦+ 𝑐
4 𝑏 34
c. √ − 𝑥+4
2𝑥
28
Introducción a la Programación en Python
5
d. √ 2√3(𝐵 + 4)(5 − 𝐴)
20∗ 42 +7∗4−6
4
e. 4
−52
42
Al igual que las expresiones matemáticas, las relacionales también pueden estar
conformadas por variables. Observe las siguientes situaciones.
5 + 4 * 2 >= 30 – 20 / 5
29
Introducción a la Programación en Python
Para poder obtener el resultado, se debe tener en cuenta que primero se realizan las
operaciones matemáticas y luego se evalúa la relación. En el caso de haber
paréntesis, estos se ejecutan primero.
5 + 4 * 2 >= 30 – 20 / 5
5 + 4 * 2 >= 30 – 20 / 5
Al analizar cada uno de los lados de la expresión, se observa que hay operaciones
matemáticas, las cuales se deben desarrollar según la prioridad de operación, así:
5 + 4 * 2 >= 30 – 20 / 5
5 + 8 >= 30 – 4
13 >= 26
30
Introducción a la Programación en Python
1) a=5
2) b = 2.5
3) nombre = "Adriana"
Todas ellas son expresiones de asignación, ya que a cada una de las variables se les
estaba asignando un valor, a la variable a se le asignó el valor de 5, a la variable b se
le asignó el valor de 2.5 y a la variable nombre se le asignó el valor de Adriana.
De este modo se puede concluir que, una expresión de asignación tiene la siguiente
forma general:
variable = valor
Donde, variable es un identificador válido y valor puede ser otra variable, un número,
una cadena de caracteres, un carácter, el resultado de una operación o de una
función que se haya ejecutado, entre otros. El tema de funciones será tratado con
más detalle en el siguiente capítulo.
31
Introducción a la Programación en Python
Ahora bien, esta forma general de realizar una asignación tiene algunas variantes que
son interesantes de analizar. Python permite la asignación de valores de manera
agrupada. Para ello se usa la siguiente forma general:
1) numero = 100
2) ciudad = "Armenia"
3) nota = 3.6
4)
5) numero, ciudad, nota = 100, "Armenia", 3.6
En las líneas 1, 2 y 3, a las variables numero, ciudad y nota le son asignados los valores
100, Armenia y 3.6 respectivamente de manera independiente. Con la instrucción
que hay en la línea 5, se logra el mismo resultado. Tenga presente que las
asignaciones se hacen de derecha a izquierda.
a=b=c=1
32
Introducción a la Programación en Python
33
Introducción a la Programación en Python
1.7 Comentarios
Un comentario es una explicación o anotación que se hace dentro del cuerpo del
programa. No hacen parte de la lógica de este y son ignorados en el momento de su
ejecución.
Hasta el momento, se han dado ejemplos donde los valores de las variables se han
asignado previamente a través del operador igual (=), pero, generalmente los datos
deben ser dados por el usuario a los programas.
Una función es una instrucción que el lenguaje reconoce y ejecuta para desarrollar
una tarea determinada. En el caso de la función print( ), Python la utiliza para
desplegar mensajes en pantalla.
34
Introducción a la Programación en Python
print(mensaje)
Python interpreta que todo lo que está entre comillas dobles o sencillas es una
cadena de caracteres (mensaje) que debe mostrarse en pantalla. Observe que en la
instrucción de la fila uno, se usaron comillas dobles y en la fila dos se usaron comillas
sencillas. En ambos casos, se obtuvieron los mismos resultados. En la fila tres el
mensaje corresponde a una operación matemática, por lo tanto, Python la ejecuta e
imprime su resultado.
35
Introducción a la Programación en Python
1) nombre = "Niña"
2) edad = 6
3)
4) print ("Mi mascota se llama", nombre,"y tiene", edad,"años.")
Observe que lo que está entre comillas se imprime tal cual está escrito, las variables
son separadas de los mensajes mediante la coma, en el lugar que ellas están se
muestra el valor que tienen almacenado.
Note que para imprimir un dato de tipo str (nombre), en lugar de la coma se usó el
signo +, el cual al ser usado con cadenas de caracteres realiza la operación de
concatenación, es decir, las une. Para el dato de tipo int (edad) se debe utilizar la
coma como se hizo en el ejemplo anterior a este. A continuación, se muestra el
resultado que se verá en pantalla:
36
Introducción a la Programación en Python
que ubicará dentro de esas llaves. Suena un poco complejo, pero es fácil de utiliza.
Veamos el siguiente ejemplo:
Dentro de la cadena de caracteres hay dos pares de llaves ({ }), las cuales serán
reemplazadas respectivamente por los argumentos que hay en el método format( ),
dicho de otra forma, las primeras llaves se reemplazarán por el contenido que hay en
la variable nombre y el segundo par de llaves se reemplazará por el valor de la variable
edad, obteniendo así el siguiente mensaje:
Todas las anteriores instrucciones son válidas, pero pueden prestarse a un poco de
confusión. A partir la versión 3.6 de Python, se introdujeron las f-strings o literals
strings.
Continuando con las posibilidades que ofrece la función print( ) se tiene que, se
pueden incluir expresiones matemáticas. En este caso, Python realiza la operación e
imprime el resultado:
37
Introducción a la Programación en Python
De igual forma, en la línea tres se definió el formato 8.2f para la impresión del dato.
En este caso, Python interpreta que se debe imprimir un dato de tipo float en un
espacio de ocho caracteres, de los cuales dos son para decimales, uno para el punto
y los restantes cinco para la parte entera.
De la misma manera como se hace con los datos de tipo float, se puede trabajar con
los datos de tipo int, en este caso se usa la letra d para especificar el formato. Suponga
la inicialización de la variable z con un valor de 7 y observe las líneas de código en la
siguiente tabla.
z=7
Algo semejante se puede hacer con el manejo de los datos de tipo str (string –
cadena). En este tipo de dato se emplea la letra s. Para ejemplarizar su uso, se
inicializará la variable nombre, con la cadena “María Camila”.
Paralelamente a las diferentes formas que puede tener la función print( ), en ella se
pueden incluir las secuencias de escape para realizar tareas o imprimir caracteres
determinados. Su funcionalidad se describe en la siguiente tabla:
38
Introducción a la Programación en Python
Esta función permite que el usuario introduzca datos desde el teclado al computador.
Su forma general es la siguiente:
variable = input( )
En las líneas 1 y 4, mediante una función print( ) se solicitan los datos por pantalla.
Mediante las funciones input( ) que hay en las líneas 2 y 5 se almacenan en las
variables nombre y edad, los valores digitados por el usuario.
39
Introducción a la Programación en Python
Suponga que a la petición que hace el programa, el usuario digita el nombre María
Camila y en la edad digita un 26. En pantalla se vería así:
Digite su nombre:
María Camila
Digite su edad:
26
Esto obedece a que cuando la función print( ) se ejecuta, finaliza con un salto de línea.
Debe tener especial cuidado con estas lecturas de datos ya que, la función input( )
almacena en las variables los datos como de tipo cadena. Esto quiere decir que,
aunque se haya digitado un valor numérico a la petición del ejemplo anterior (Digite
su edad:), este será tratado como cadena y no como un valor float o int. Si se
intentara hacer alguna operación de tipo matemático con él, se generará un error.
Ahora, ¿qué se debe hacer para que el dato sea pedido en la misma línea y para que
la edad digitada sea tratada como un valor numérico y no como una cadena?
En este caso, el dato será tratado como un número int (entero) y podrá hacerse
operaciones matemáticas con la variable edad. Si se quisiera que el dato fuera de tipo
float, aunque las edades generalmente se trabajan de tipo int, se procedería de
manera similar:
Pero aún, el dato se sigue solicitando en una línea independiente. Ahora bien, para
dar solución a la primera parte de la pregunta planteada anteriormente (¿qué se debe
40
Introducción a la Programación en Python
hacer para que el dato sea pedido en la misma línea?), se procede de la siguiente
manera:
La función input( ), ha sido usada tanto para leer el dato que digita el usuario y
también para mostrar un mensaje en pantalla, por lo tanto se ahorra el uso de la
función print( ) en la entrada de datos.
Así las cosas, se han solucionado las dos partes de la pregunta planteada. Los datos
se piden en la misma línea y el valor digitado para la variable edad, será tratado como
un dato numérico, con el cual se pueden realizar operaciones matemáticas.
Para finalizar con la función input(), se mostrará cómo se puede usar para entrar
datos y a la vez para mostrar valores de otras variables.
En la línea uno se solicita el nombre, luego en la línea dos, de acuerdo al nombre que
le hayan digitado muestra ese valor y le solicita la edad. Continuando con el ejemplo
de María Camila que tiene 26 años, se vería así:
41
Introducción a la Programación en Python
Con todos los elementos que se han estudiado hasta el momento, el lector ya está en
capacidad de solucionar problemas sencillos, usando la programación en Python.
Ejemplo 1.1 Se leerán dos números de los cuales se hallará la suma y luego se
mostrará el resultado.
Explicación:
¿Qué sucedió? Recuerde que con anterioridad se dijo que los datos que son leídos
con la función input( ) son tratados como cadenas. En este ejemplo en particular,
Python no hizo una suma matemática, sino una concatenación de cadenas; la cadena
12 fue concatenada con la cadena 10, dando como resultado la cadena 1210.
42
Introducción a la Programación en Python
Hecha esta aclaración, ¿entonces cuál sería la solución para que el programa sume
los valores como números y no como cadenas? La respuesta a este interrogante tiene
varias soluciones, a continuación, se analizarán dos de ellas.
Primera solución:
Segunda solución:
43
Introducción a la Programación en Python
Explicación:
En la línea tres se define una variable llamada IVA con un valor de 0.19, la cual
será tratada como si fuera una “constante”. Este valor representa el 19%,
resultado de dividir 19 entre 100. Es importante tener en cuenta que, en Python
no existen las constantes definidas por el usuario, pero conservando las buenas
prácticas de programación, que se aplican en los otros lenguajes, los
identificadores de las constantes se escriben en mayúsculas.
44
Introducción a la Programación en Python
Las instrucciones de las líneas 6, 7 y 8, son las encargadas de leer los datos que
proporciona el usuario. Esos datos son almacenados en las variables codigo,
costo_unitario y cantidad respectivamente.
Para la variable codigo se usa la función input(), que permite capturar un dato de
tipo str. Para costo_unitario se usa la combinación de la función input() junto con
la función float(), la primera muestra el mensaje “Costo por unidad”, a la vez que
lee el dato como una cadena; con la función float() se convierte esta cadena a
dato numérico de tipo float. Para leer la cantidad, se usó la función int(), con la
cual el dato es convertido a entero (int). Estas conversiones deben hacerse para
poder usar las variables dentro de las expresiones matemáticas con las cuales se
realizan los cálculos.
Una vez leídos los datos, en las líneas 10, 11 y 12 se realizan los cálculos
respectivos. Observe que la expresión de la línea 11 usa la “constante” llamada
IVA:
Finalmente se muestran los resultados (líneas 14, 15 y 16). Para ello, se usó la
función print(), donde se muestra un mensaje, acompañado del valor de la
variable. El mensaje se separa del valor de la variable usando una coma, por
ejemplo:
Las líneas 14, 15 y 16, pueden ser reemplazadas por las siguientes instrucciones:
45
Introducción a la Programación en Python
Ejemplo 1.3 Escriba un programa en Python que, permita hallar y conocer la suma de
los cuadrados de los números desde 1 hasta un valor n, utilizando la siguiente
fórmula:
𝑛(𝑛 + 1)(2𝑛 + 1)
𝑠𝑢𝑚𝑎 =
6
Antes de plantear cualquier solución, conviene tener presente que se debe hacer un
análisis del problema. En este caso en particular, es importante entender cómo
funciona la fórmula y corroborar si efectivamente es una solución al problema
planteado. Para este propósito entonces ilustremos el enunciado, hallando la suma
de los cuadrados de los números desde 1 hasta 10. Es decir, se debe realizar la
siguiente suma:
𝑠𝑢𝑚𝑎 = 12 + 22 + ⋯ + 𝑛2
𝑠𝑢𝑚𝑎 = 12 + 22 + 32 + 42 + 52 + 62 + 72 + 82 + 92 + 102
𝑠𝑢𝑚𝑎 = 1 + 4 + 9 + 16 + 25 + 36 + 49 + 64 + 81 + 100
𝑠𝑢𝑚𝑎 = 385
46
Introducción a la Programación en Python
10 ∗ (10 + 1) ∗ (2 ∗ 10 + 1)
𝑠𝑢𝑚𝑎 =
6
10 ∗ 11 ∗ 21
𝑠𝑢𝑚𝑎 =
6
2310
𝑠𝑢𝑚𝑎 =
6
𝑠𝑢𝑚𝑎 = 385
suma = (n * (n + 1) * (2 * n + 1)) // 6
47
Introducción a la Programación en Python
Explicación.
48
Introducción a la Programación en Python
Actividad 1.6 Construya un programa en Python para cada uno de los siguientes
enunciados. No olvide realizar el respectivo análisis.
b. Tres hermanos forman una sociedad para comprar una propiedad. Cada uno de
ellos invierte una suma diferente de dinero. Se necesita conocer el porcentaje
que cada uno invirtió con relación al total de dinero invertido.
Base mayor
e. Halle e informe la suma de los cubos de los números desde 1 hasta un valor n,
para ello use la siguiente fórmula:
2
𝑛(𝑛 + 1)
𝑠𝑢𝑚𝑎 = ( )
2
49
Introducción a la Programación en Python
CAPÍTULO 2
2 FUNCIONES
Objetivos:
Funciones
Una función es un bloque de líneas de código que realizan una tarea específica. Al
igual que todos los elementos de Python, las funciones también son objetos.
Hasta ahora, se han usado varias de las funciones propias del lenguaje, entre las que
se destacan las funciones print(), input(), float(), int(). Python ofrece un gran número
de funciones que, realizan tareas que le permiten ahorrar tiempo a los
programadores en sus desarrollos de software. Para ilustrar el uso de las funciones
propias del lenguaje, se estudiarán algunas para el manejo de cadenas y otras para
realizar operaciones matemáticas.
Funciones para cadenas. Estas funciones operan sobre datos de str. Las más
destacadas se pueden visualizar en la siguiente tabla.
Función Descripción
len(cadena) Devuelve la longitud de la cadena
cadena.upper() Convierte el contenido de cadena en mayúsculas
cadena.lower() Convierte el contenido de cadena en minúsculas
cadena.capitalize() Devuelve la primera letra de la cadena en mayúscula
cadena.swapcase() Convierte las mayúsculas en minúsculas y viceversa
cadena.title() Convierte en mayúsculas la primera letra de cada palabra de
la cadena
Centra la cadena en n espacios, usando un carácter específico
cadena.center(n, “a”)
(a) de relleno
Devuelve el número de ocurrencias de un carácter (a) dentro
cadena.count(“a”)
de la cadena
51
Introducción a la Programación en Python
Ejemplo 2.1. Este programa en Python lee un nombre de una persona y una letra a
buscar dentro de ese nombre. Luego informará la cantidad de caracteres que tiene y
el número de ocurrencias de la letra dentro del nombre digitado, igualmente se les
dará aplicación a las demás funciones relacionadas en la tabla anterior.
9) print(nombre.lower())
10) print(nombre.capitalize())
11) print(nombre.swapcase())
12) print(nombre.title())
13) print(nombre.center(30, "*"))
Explicación:
La secuencia de escape (\n) se usa para dejar una línea en blanco antes de
imprimir el mensaje. Luego se escribe el nombre que se haya digitado, seguido
del número de caracteres que posea.
52
Introducción a la Programación en Python
Ella se encarga de imprimir la letra que se haya digitado para ser buscada dentro
del nombre, acompañada de la cantidad de ocurrencias que tenga dentro de la
cadena digitada. La secuencia de escape \’ se emplea para mostrar comillas
simples.
Instrucción import
En el anterior programa se puede observar que, las funciones se usaron con solo
escribir su nombre acompañado de la cadena sobre la cual deben ejecutar la acción
que les corresponde. Pero, no todas las funciones están disponibles de forma
inmediata. Muchas de ellas se encuentran organizadas dentro de módulos, los cuales
se deben cargar en el programa para que sean reconocidas y ejecutadas.
53
Introducción a la Programación en Python
import nombre_módulo
import math
De esta forma, todas las funciones presentes en este módulo, quedan disponibles
para ser usadas por el programador.
Pero, si lo que se desea es solo importar las funciones sqrt() y sin() del módulo math,
se debe escribir la siguiente instrucción:
Hay otra función que resulta de utilidad en el manejo de este tema, con ella se puede
obtener el listado de funciones que hay dentro de un módulo:
dir(nombre_modulo)
import math
dir(math)
54
Introducción a la Programación en Python
help(nombre_módulo.nombre_función)
Por ejemplo:
help(math.sqrt)
sqrt(x, /)
Hasta este punto solo le hemos indicado al intérprete de Python que se van a usar
funciones, pero aún no se le ha dado la instrucción de ejecutarla. Para ello, se procede
con la siguiente sintaxis:
nombre_módulo.nombre_función()
55
Introducción a la Programación en Python
Ejemplo 2.2. En el siguiente programa se usarán algunas funciones del módulo math.
56
Introducción a la Programación en Python
Explicación:
Entre las líneas 8 a la 15, se usan varias funciones matemáticas. Observe con
detalle que desde las líneas 9 a la 15, al nombre de las funciones se les antepuso
el nombre del módulo. Sin él generarían un error en el momento de su ejecución.
from math import sqrt, ceil, floor, modf, cos, tan, sin
Esto, en lenguaje natural se interpretaría así: desde el módulo math importe las
funciones sqrt, ceil, floor, modf, cos, tan, sin
Así las cosas, el código desde la línea 8 hasta la 15 queda de la siguiente manera:
8) print(pow(3,4))
9) print(sqrt(25))
10) print(ceil(x))
11) print(floor(y))
12) print(modf(x))
13) print(cos(y))
14) print(tan(x))
15) print(sin(y))
57
Introducción a la Programación en Python
Función Resultado
pow(3, 4) 81
sqrt(25) 5.0
ceil(x) 6
floor(y) 3
modf(x) (0.20000000000000018, 5.0)
cos(y) -0.7909677119144168
tan(x) -1.8856418775197639
sin(y) -0.6118578909427189
h
a
ℎ2 = 𝑎2 + 𝑏 2
Donde:
h: hipotenusa
a y b: catetos
58
Introducción a la Programación en Python
Explicación:
En la línea tres se importa desde el módulo math, la función sqrt() que permite
calcular la raíz cuadrada de un número.
En las líneas 5 y 6, se leen los valores para los catetos y se convierten a datos de
tipo float.
Vale la pena resaltar que, el módulo math también cuenta con la función hypot(),
con la cual se puede realizar el cálculo de la hipotenusa. Para ello debe hacer los
siguientes ajustes en el programa:
59
Introducción a la Programación en Python
h = hypot(a, b)
Ejemplo 2.4. Para calcular el perímetro de una elipse, se utilizan diferentes fórmulas
que arrojan resultados aproximados.
s
r
Una de las fórmulas más utilizadas para hallar el perímetro de una elipse es:
𝑟2 + 𝑠2
𝑝 ≈ 2𝜋√
2
Así mismo, el matemático indio Ramanujan planteó la siguiente expresión, que hace
un cálculo más aproximado:
60
Introducción a la Programación en Python
Explicación:
61
Introducción a la Programación en Python
Finalmente, en las líneas 11 y 12, se muestran los resultados que arrojan estas
fórmulas.
Actividad 2.1. Construya un programa en Python que lea los datos correspondientes
para calcular e informar el área de un círculo.
Área de un circulo
Radio
á𝑟𝑒𝑎 = 𝜋 𝑟 2
á𝑟𝑒𝑎 = 𝜋 𝑟 2
Donde: r es el radio.
62
Introducción a la Programación en Python
Para escribir una función se deben tener en cuenta la siguiente sintaxis general:
Instrucción_1
Instrucción_2
.
.
Instrucción_n
return(valor)
La palabra def, es una de las palabras reservadas y se usa para indicar que lo que
viene a continuación de ella es una función.
63
Introducción a la Programación en Python
return(valor). La palabra reservada return, se usa para devolver valores. En este caso,
el valor es retornado al sitio donde se hizo el llamado a la función. No todas las
funciones tienen que tener un return. Generalmente cuando una función no devuelve
valores, se le conoce con el nombre de procedimiento o subrutina.
Como complemento a esta forma general, el manejo de las funciones definidas por
el usuario tiene algunas particularidades que se van a analizar con los siguientes
ejemplos, es por eso que le recomendamos leer atentamente las explicaciones que
se darán en cada programa presentado.
Es la forma más básica de una función, se les conoce con el nombre de subrutinas.
Aunque no van a ser muy usadas en este libro es necesario que sean conocidas ya
que, es una herramienta que podría necesitarse en alguna futura implementación.
def nombre_función():
Instrucción_1
Instrucción_2
.
.
64
Introducción a la Programación en Python
Instrucción_n
Explicación:
En la línea tres se usa la palabra reservada def para definir una función llamada
sumar(). Esta función está compuesta por las instrucciones que hay desde la línea
4 a la 7, en ellas se definen las variables y se leen los datos que proporcione el
usuario. Se ejecuta la operación donde se suman los dos valores almacenados en
las variables numero1 y numero2. Finalmente, se imprime el resultado en la línea
siete.
65
Introducción a la Programación en Python
Hasta este punto del programa, a excepción de la línea tres de esta nueva
solución, las instrucciones son las mismas que las del ejemplo 1.2. Sin embargo,
la función no se ejecuta por sí sola; se debe hacer un llamado o invocación a ella,
esto se logra con la instrucción que hay en la línea nueve: sumar().
66
Introducción a la Programación en Python
Esta situación obedece a que, la variable suma fue definida dentro de la función (línea
seis) y no puede ser reconocida por fuera de ella, es una variable local a la función.
Esto nos lleva a los conceptos de variable local y global que se analizarán después de
que realice la siguiente actividad.
Actividad 2.2. Usando funciones, escriba la solución en Python para los siguientes
enunciados.
a. Construya un programa que contenga una función llamada pote() que calcule la
potencia de xn.
𝑥
𝑣=
𝑡
Se denomina variable local, aquella que está definida dentro de una función. Tiene la
característica que solamente es reconocida dentro de la función a la cual pertenece,
por lo tanto, no podrá ser usada en otra parte del programa.
De otro lado una variable global, puede ser reconocida en cualquier parte del
programa.
67
Introducción a la Programación en Python
Ejemplo 2.6. Este programa muestra el uso y alcance de una variable local y una
global.
Explicación:
Para hacer más fácil la explicación, en la línea tres se define una función llamada
funcion_uno(), dentro de ella se ha definido una variable local llamada
var_ejemplo de tipo str. Como valor inicial se le ha asignado la frase "Soy local".
68
Introducción a la Programación en Python
funcion_uno()
En esta parte del programa, el control pasa a la cabecera de la función (línea tres)
e inicia ejecutando la siguiente instrucción:
Una vez se haya ejecutado esta instrucción, el control del programa regresa a la
siguiente instrucción de donde fue llamada, es decir, regresa a ejecutar lo que
hay en la línea nueve.
Soy global
Algunos se estarán preguntando, ¿por qué imprimió Soy global y no imprimió Soy
local?
Es importante hacer énfasis en las instrucciones que hay entre las líneas 6 y 9,
inclusive, ellas conforman la lógica principal del programa, con ello se quiere
69
Introducción a la Programación en Python
Explicación:
print(var_ejemplo)
Soy global
Soy local
Soy global
70
Introducción a la Programación en Python
la impresión con la función print() de la línea cinco. El último mensaje "Soy global"
es de la función print() de la línea diez que, corresponde al valor de la variable
global.
Una variable que haya sido definida dentro de una función y que por naturaleza es
una variable local, puede dársele la característica de variable global. Para ello se usa
la siguiente sintaxis:
global nombre_variable
La palabra reservada global permite que una variable local, se convierta en una
variable global y de esa forma pueda ser utilizada en cualquier parte del programa.
Explicación:
global var_ejemplo
71
Introducción a la Programación en Python
Soy global
Soy local
Soy local
Así mismo, anteriormente se dio la forma general para definir una función, acá se
hará énfasis en lo que refiere a los parámetros:
Para que la función se ejecute se debe hacer el llamado, en este caso, se deben incluir
los valores que recibirán los parámetros de la función, así:
72
Introducción a la Programación en Python
Ejemplo 2.9. Se retomará el ejemplo 2.5, donde se suman dos números, pero esta
vez se le agregarán parámetros a la función.
Explicación:
1 Algunos autores no hacen distinción entre parámetros y argumentos. En este libro se hablará de
argumentos para referirse a los valores que se envían a los parámetros de la función que se invoque.
73
Introducción a la Programación en Python
dos variables, en ellas están almacenados los datos que digitó el usuario cuando
se le solicitaron los dos números como datos de entrada.
sumar(numero1, numero2)
74
Introducción a la Programación en Python
Explicación:
return(suma)
Por otro lado, la salida de este programa se puede simplificar; para ello observe
como las líneas 10 y 11 se pueden reemplazar por una sola instrucción:
75
Introducción a la Programación en Python
La función sumar() está siendo usada dentro de la función print(), de esta forma
el resultado de la operación se imprime directamente sin necesidad de usar la
variable resultado.
Ejemplo 2.11. Aunque en el módulo math existe la función pow() para calcular la
potencia de un número, se va a construir una función de usuario para realizar el
cálculo de xn.
Explicación:
Se define la función pote(x, n), con los parámetros x y n. Dentro de ella se realiza
el cálculo y se retorna el valor que se almacene en la variable resultado.
En las líneas 7 y 8 se leen dos números de tipo float, que representan la base y el
exponente de la operación.
76
Introducción a la Programación en Python
Ejemplo 2.12. Se tomará el mismo ejemplo anterior para ilustrar que los argumentos
pueden estar en diferente orden a los parámetros.
Explicación:
77
Introducción a la Programación en Python
Explicación:
No se entrará en detalle con varios de los aspectos que ya fueron explicados con
el ejemplo 2.11.
defleer_float(mensaje):
numero=float(input(mensaje))
return numero
78
Introducción a la Programación en Python
Aunque analizando a fondo esta función, es casi igual a leer el dato como se venía
haciendo hasta el ejemplo anterior. La idea con ella es usarla como apoyo
didáctico para comprender mejor el uso de las funciones; además, para que el
lector se vaya familiarizando con estas instrucciones, ya que cuando se estudie el
tema de ciclos, se le anexarán otras funcionalidades.
Leer_float()
base=leer_float("Digite la base: ")
exponente = leer_float("Digite el exponente: ")
Cada una de ellas tiene una cadena como argumento, la cual es entregada al
parámetro denominado mensaje, que se encuentra en la función
leer_float(mensaje) (línea siete).
Los valores que retorne la función leer_float(), en cada llamado, son asignados a
las variables base y exponente, respectivamente.
Algo que se debe tener en cuenta es que, cuando se hace el llamado a una
función, ésta ya debe estar definida.
Ejemplo 2.14. Una empresa de buses urbanos, desea un programa que permita
calcular cuánto devenga en total un conductor en un día domingo. El turno dominical
se paga con un incremento del 30% sobre el valor de turno normal, además por cada
pasajero que movilice, al conductor se le otorga un bono de $200.
79
Introducción a la Programación en Python
Explicación:
Se definen cuatro funciones, cuyas instrucciones están entre las líneas 3 y 19:
80
Introducción a la Programación en Python
BONO = 200
Se usó una “constante” para definir el valor del bono que recibirá el
conductor por cada pasajero movilizado, en este caso es de $200.
ɷ En la línea seis, se usó el valor literal de 1.30, esto con el fin de incrementar
el valor del turno normal en un 30%.
Como se dijo anteriormente, estas funciones son muy similares a leer el dato de
forma normal, pero al llegar al tema de ciclos se implementarán otras
funcionalidades.
81
Introducción a la Programación en Python
a. Lea un número de dos cifras y halle la suma entre los dos dígitos que lo
conforman. Por ejemplo, si el número leído es 59 el resultado será 14 (5 + 9).
𝑛(𝑛 + 1)(2𝑛 + 1)
𝑠𝑢𝑚𝑎 =
6
82
Introducción a la Programación en Python
𝑣𝑓
𝑝𝑐 = ( ∗ 100) − 100
𝑣𝑖
Donde:
d. Lea la fecha actual en el formato dd-mm- aaaa, luego lea un número entero
positivo, el cual representará una cantidad de días futuros. Calcule e informe la
fecha futura, partiendo de la fecha inicial y teniendo en cuenta la cantidad de
días leídos. Ejemplo:
83
Introducción a la Programación en Python
Ejemplo 2.15. Con el propósito de ser más didácticos, se retomará el ejemplo 2.10
que se ha solucionado de diferentes maneras; de esta forma el lector puede ir viendo
su evolución y la diversidad de soluciones de cualquier problema. Recuerde que el
ejercicio consiste en leer dos números y realizar la suma entre ellos.
Explicación:
En la línea tres se definió una función lambda llamada sumar. Al contrario de los
ejemplos anteriores este tipo de funciones no requiere de los paréntesis. La
función presenta dos parámetros num1 y num2 que se separan de una expresión
matemática mediante dos puntos (:).
84
Introducción a la Programación en Python
Ejemplo 2.16. En este ejemplo se calcula el valor de una potencia (xn), usando una
función lambda.
Explicación:
En la línea tres se define una función lambda llamada pote, tiene como
parámetros a x y n, que recibirán los valores cuando sea llamada la función. La
potencia la calcula mediante la expresión x ** n. El resultado es asignado a pote
y retornado al sitio donde sea llamada.
Al igual que todos los programas anteriores, se hace la lectura de los datos (líneas
5 y 6).
85
Introducción a la Programación en Python
𝑏∗ℎ
á𝑟𝑒𝑎 =
2
Donde:
b: base
h: altura
2.4 Módulos
Al inicio de este capítulo se explicó el uso de los módulos, pero se hizo para usar las
funciones propias del lenguaje. Ahora se dará un ejemplo de cómo crear y usar un
módulo creado por el usuario del lenguaje.
Ejemplo 2.17. Este ejemplo consiste en construir un módulo que contendrá tres
funciones. Con ellas se podrá calcular el área de alguna de las siguientes figuras
geométricas: cuadrado, rectángulo o triángulo.
86
Introducción a la Programación en Python
Explicación:
Cada función dentro del módulo calcula el área de una figura geométrica. Los
valores para realizar el cálculo los reciben a través de los parámetros que tienen
definidos.
Una vez realicen el cálculo respectivo, retornan el valor obtenido al sitio de donde
se les haga el llamado.
Al crear este módulo, ya no va a ser necesario que el programa que lo use tenga la
función escrita dentro de él, solo basta con importarlo y hacer el llamado a la función
requerida.
El segundo paso de este ejemplo es crear el programa que hará uso del módulo
llamado areas.py.
87
Introducción a la Programación en Python
Explicación:
En la línea tres se hace la importación del módulo llamado areas. Con esto se
logra que, las funciones que hay escritas dentro de él, queden disponibles para
que el programa pueda usarlas.
Para este llamado a cada función se le debe anteponer el nombre del módulo:
areas.triangulo(10, 5)
areas.cuadrado(6)
areas.rectangulo(3, 10)
En este ejemplo, los argumentos se han enviado como valores literales, pero
también funcionará correctamente si el usuario los proporciona a través de una
entrada de datos y en su lugar se envían los valores capturados.
88
Introducción a la Programación en Python
leer_float(mensaje)
leer_int(mensaje)
leer_cadena(mensaje)
Con ellas debe crear un módulo llamado leer.py. Si desea puede cambiar el
nombre de las funciones.
b. Modifique el programa del ejemplo 2.17, de tal forma que los datos para calcular
las figuras geométricas sean solicitados al usuario del programa. En la lectura de
esos datos, debe hacer uso del módulo leer.py creado en el punto anterior de esta
actividad.
89
Introducción a la Programación en Python
CAPÍTULO 3
3 ESTRUCTURA DE
DECISIÓN
Objetivos:
Conocer las diferentes estructuras de decisión que proporciona el
lenguaje.
Determinar que estructura de decisión usar dependiendo del problema
a resolver.
Construir programa en Python utilizando estructuras de decisión.
Introducción a la Programación en Python
Estructuras de decisión
if condición:
Instrucciones_T
else:
Instrucciones_F
La palabra reservada if le indica al intérprete del lenguaje que, debe evaluar una
condición donde se obtendrá un resultado True (verdadero) o False (falso). Esta
condición está representada por una expresión relacional o lógica. Si el resultado es
True, ejecutará a Instrucciones_T; por el contrario, si es False, ejecutará a
Instrucciones_F. Observe que la condición finaliza con dos puntos (:).
La palabra reservada else, es interpretada como “en caso contrario”, indicando así
que en el caso de que la condición del if, sea False, se ejecuta Instrucciones_F.
91
Introducción a la Programación en Python
Conviene subrayar que, esta forma general puede presentar algunas variaciones que
se estudiarán a lo largo del capítulo.
92
Introducción a la Programación en Python
Explicación:
if numero > 0:
print("Es positivo")
else:
Ella indica “en caso contrario”, es decir, en caso de que la condición no sea
verdadera se ejecuta la instrucción de la línea ocho:
print("Es negativo")
Los números pares son aquellos que tienen división exacta entre 2, lo cual quiere
decir que al dividirlos entre 2, no queda residuo.
93
Introducción a la Programación en Python
Explicación:
if es_par(numero):
94
Introducción a la Programación en Python
def es_par(numero):
if(numero % 2 == 0):
es_num_par = True
else:
es_num_par = False
return es_num_par
if numero % 2 == 0:
Esta expresión relacional está compuesta a su vez, por una expresión matemática:
numero % 2
if numero % 2 == 0:
Así las cosas, esta expresión se debe interpretar de la siguiente manera: si al dividir
a numero entre 2, el módulo es igual a 0.
95
Introducción a la Programación en Python
En la línea seis, se encuentra la palabra reservada else, que se interpreta como “en
caso contrario”, o sea, en caso de que la condición sea falsa, ejecute la instrucción
de la línea siete, en la cual se asigna el valor de False a la variable es_num_par.
Una vez sea asignado el valor True o False, se ejecuta la línea ocho, de donde se
retorna el valor que tenga la variable es_num_par al sitio donde fue llamada la
función.
✧ Como parte de las buenas prácticas que se deben tener en programación, analice
que los dos bloques de instrucciones que se muestran a continuación producen
iguales resultados, pero se recomienda usar el de la columna derecha.
96
Introducción a la Programación en Python
Actividad 3.1. Construya un programa para cada uno de los siguientes enunciados.
b. Lea dos números y halle la división del primero entre el segundo. En caso de
que el segundo sea un 0, imprima un mensaje que diga que la división entre
0 es indeterminada.
if condición:
Instrucciones_T
97
Introducción a la Programación en Python
Ejemplo 3.3 En este programa se calcula el valor a pagar por la compra de un artículo.
Si el precio del artículo es mayor o igual a $1500000 se aplicará un descuento del 13%
sobre el precio, en caso contrario no tendrá descuento. Se debe informar: el precio
del artículo, el valor del descuento y el valor a pagar.
98
Introducción a la Programación en Python
Explicación:
valor_descuento = valor_dcto(precio)
def valor_dcto(precio):
porcentaje_descuento = 0.0
99
Introducción a la Programación en Python
Con ellas se está calculando el valor del descuento y devolviendo, a la línea 18,
el resultado obtenido en la variable local valor_descuento. Este valor es
almacenado en la variable global valor_descuento. Recuerde que, aunque ambas
variables tengan el mismo nombre, se trata de dos variables diferentes, una es
local a la función y la otra es global al programa.
100
Introducción a la Programación en Python
Ejemplo 3.4. De acuerdo al ejemplo 3.1, se hará una modificación de tal forma que
se leerá un número entero y se determinará si es positivo, negativo o neutro.
Explicación:
if numero > 0:
If numero < 0:
101
Introducción a la Programación en Python
True, imprime el mensaje Es negativo (línea nueve). De igual forma, si esta nueva
expresión es False (línea diez) se imprime el mensaje Es neutro (línea once).
102
Introducción a la Programación en Python
Explicación:
def leer_booleano(mensaje):
respuesta = input(mensaje).upper()
103
Introducción a la Programación en Python
if respuesta == "S":
respuesta = True
else:
respuesta = False
En este punto pasa algo bien particular con la variable respuesta, inicialmente se
pregunta que, si es igual a la letra S, en el caso de que esta expresión relacional
sea verdadera, a la misma variable respuesta se le asigna el valor True y en caso
de que sea falsa se le asigna el valor de False. Observe cómo se hace uso y se
aprovecha la ventaja que tiene Python de asignar diferentes tipos de datos a una
misma variable en diferentes momentos. Inicialmente la variable es de tipo str
(string), luego cuando se toma la decisión, pasa a ser de tipo boolean (booleano
o lógico).
✧ Una vez sea asignado el valor True o False a la variable respuesta, se retorna su
valor al sitio donde fue llamada la función, para ello se hace uso de la instrucción
return:
return respuesta
Ahora que se conoce como opera esta función, revisemos las demás instrucciones del
programa.
✧ Con el valor que haya obtenido la variable es_activo, se toma otra decisión en la
línea 20:
if es_activo:
es_mujer = leer_booleano("Es usted mujer [S] [N]?: ")
if es_mujer:
104
Introducción a la Programación en Python
Ahora bien, en el caso de que la variable es_activo tenga el valor de True, se pasa
a preguntar si es mujer (línea 21). Para la lectura de esta pregunta se vuelve a
hacer uso de la función leer_booleano(), que devolverá el valor de True o False a
la variable es_mujer.
if es_mujer:
✧ Ahora bien, no olvide que lo que se acabó de analizar corresponde solo al caso
cuando la condición de la línea 20 es True (cuando la persona es activa), pero
¿qué pasaría si la esta condición es False?
105
Introducción a la Programación en Python
instrucciones que hay entre las líneas 21 a 25. Finalmente se imprime el resultado
y termina la ejecución del programa.
✧ Rectángulo: el ángulo interior es recto (90 grados) y los otros dos son ángulos
agudos.
✧ Obtusángulo: El ángulo interior es obtuso (más de 90 grados), los otros dos son
agudos.
De acuerdo con la siguiente información, construya un programa que determine la
clase de triángulo.
if condición1:
Instrucción1
elif condición2:
Instrucción2
elif condición_n:
Instrucción_n
else:
Instrucción_F
106
Introducción a la Programación en Python
sea True, se ejecuta la instrucción relacionada y el control del programa sale del
bloque de esta estructura if-elif.
Explicación:
Ejemplo 3.7. Si se ingresa uno de los siguientes números: 1, 5, 10, 50, 100, 500 o
1000, se debe informar su equivalente valor romano. En caso de ser cero o negativo
se informará que estos números no existen dentro de los romanos; de igual manera,
si es un número diferente a los relacionados, debe informar la situación.
107
Introducción a la Programación en Python
Explicación:
108
Introducción a la Programación en Python
Ejemplo 3.8. Georg Simon Ohm, físico y matemático, estableció la ley de Ohm, la cual
determina las leyes de la corriente eléctrica. La fórmula general de la ley de Ohm es
la siguiente:
V=I*R
Donde:
V: voltaje.
I: corriente.
R: resistencia.
Antes de codificar el programa, se deben despejar las fórmulas que se van a utilizar.
I R
V=I*R
I=V/R
R=V/I
109
Introducción a la Programación en Python
110
Introducción a la Programación en Python
Explicación:
✧ En este programa se emplean cuatro funciones: una para leer los datos de tipo
float y las otras tres para el cálculo del voltaje, la corriente y la resistencia,
respectivamente.
[V]oltaje
[R]esistencia
[C]orriente
opcion = input().upper()
✧ En este punto del programa, la variable opcion ya tiene un valor, por lo tanto, se
procede a tomar decisiones para determinar qué instrucciones ejecutar.
En la línea 29, se hace el llamado a la función que realizará el cálculo del voltaje
y a la vez se mostrará el resultado, usando la función print().
111
Introducción a la Programación en Python
✧ En las líneas 30 y 34, se localizan las condiciones que revisan si el usuario eligió
calcular la resistencia o la corriente, respectivamente. Tenga presente que solo
se calculará la variable que el usuario haya elegido. Si se eligió una de estas
opciones, se pedirán los datos y se llamará a la función que hace el cálculo
correspondiente, finalizando en la impresión del resultado.
Ejemplo 3.9. En este ejemplo, se hará uso de las diferentes formas que puede tener
la estructura de decisión if, al igual que se aplicarán varios de los conceptos
estudiados hasta el momento.
Una empresa de alquiler de vehículos desea conocer cuánto debe pagar un cliente,
el valor del descuento y el valor de la cuenta antes del descuento.
Tarifa de incremento
Kms recorridos Tipo de vehículo
1. Automóvil 2. Camioneta
0.0 .. 20.0 500 700
20.1 .. 40.0 600 800
40.1 .. 60.0 700 1.000
60.1 .. 800 1.200
112
Introducción a la Programación en Python
Como incentivo, a los clientes que recorran más de 80 kilómetros, se les otorga un
descuento del 10% sobre el total de la cuenta.
113
Introducción a la Programación en Python
Explicación:
1. valor_incremento(vehi, kms):
2. valor_descuento(kms, valor_bruto):
3. leer_int(mensaje):
4. leer_float(mensaje):
Inicia con una decisión principal (línea cuatro) y dentro de ella tiene una decisión
anidada (línea cinco). La condición inicial tiene como objetivo determinar si el
vehículo es de tipo automóvil:
if vehi == 1:
114
Introducción a la Programación en Python
Una vez se haya determinado el valor del incremento, el control del programa
salta a la línea 23, desde donde se hace el retorno del valor calculado. Observe
que ninguna de las decisiones que hay entre las líneas 14 y 21 son analizadas, ya
que hacen parte del else de la línea 13 que se analizará a continuación.
if vehi == 1:
115
Introducción a la Programación en Python
✧ Entre las líneas 43 y 46, se hace la solicitud de los datos requeridos: tipo de
vehículo, horas de alquiler y kilómetros recorridos.
En el caso del tipo de vehículo, recuerde que la secuencia de escape (\n) produce
un salto de línea:
Tipo de vehículo
[1] Automóvil
[2] Camioneta
>>>
✧ Luego de leer los datos de entrada se realizan los cálculos. En el caso del
incremento y del descuento, se hace el llamado a las funciones que se explicaron
previamente. Las variables incremento y descuento, toman los valores que sean
retornados desde dichas funciones.
116
Introducción a la Programación en Python
Actividad 3.3. Construya los programas necesarios para dar solución a los siguientes
enunciados.
b. Construya un programa que lea dos números y uno de los operadores de las cuatro
operaciones básicas (+ , - , / o *), calcule e imprima el resultado de la respectiva
operación.
Observaciones:
c. Una empresa colombiana que vende libros físicos a través de internet, desea un
programa que le permita conocer cuánto cobrará a un cliente por concepto de
envío de su pedido, teniendo en cuenta los siguientes criterios:
117
Introducción a la Programación en Python
2. Para los despachos la empresa tiene dividido el país en cinco zonas: centro,
norte, sur, oriente y occidente. Dependiendo de la zona se tiene un
incremento sobre el costo básico de envío, así:
✧ Centro = 2%
✧ Norte = 5%
✧ Sur = 7%
✧ Oriente y occidente = 4%
Construya el programa, que lea los datos necesarios para arrojar los
resultados que la empresa requiere.
118
Introducción a la Programación en Python
CAPÍTULO 4
4 ESTRUCTURAS DE
REPETICIÓN
Objetivos:
ESTRUCTURAS DE REPETICIÓN
Los programas que se han hecho hasta el momento se ejecutan una sola vez, es decir,
solicitan los datos en el caso de ser necesarios, realizan un proceso y arrojan un
resultado. Si se quisiera volver a repetir estas actividades, sería necesario volver a
ejecutar el programa.
En este capítulo se estudiarán dos instrucciones que permiten que una instrucción o
inclusive todas las instrucciones que hacen parte del programa, se repitan la cantidad
de veces que sean necesarias, estas instrucciones son conocidas como ciclos, bucles
o instrucciones repetitivas.
En Python existen dos instrucciones repetitivas que, son conocidas como while y for.
A continuación, se estudiarán con más detalle y se realizarán varios ejemplos que
permitirán comprender su funcionamiento y la diferencia entre ellas.
La condición de este ciclo se plantea al inicio de las instrucciones que debe repetir,
razón por la cual se le conoce como un ciclo condicionado al comienzo.
while condición:
Instrucción1
Instrucción2
.
.
Instrucción_n
120
Introducción a la Programación en Python
De acuerdo con la anterior forma general se tiene que, mientras (while) la condición
sea True se ejecuta la Instrucción1, Instrucción2 hasta Instrucción_n. Este grupo de
instrucciones se conoce como el cuerpo del ciclo y al igual que el cuerpo de las
funciones y de las decisiones, temas vistos en los capítulos anteriores, deben
conservar la sangría.
Así las cosas, después de ejecutar a Instrucción_n (última instrucción del cuerpo del
ciclo), el control del programa regresa al while y evalúa nuevamente la condición, si
esta sigue siendo True se vuelve a ejecutar el cuerpo del ciclo. Este proceso continúa,
mientras la condición siga siendo True.
121
Introducción a la Programación en Python
Ejemplo 4.1. El siguiente programa imprime los números del 1 al 10 usando el ciclo
while.
Si se pensara en una solución de acuerdo con los temas vistos en los capítulos
anteriores, tendría que hacerse algo similar a lo siguiente:
print("1")
print("2")
print("3")
print("4")
print("5")
print("6")
print("7")
print("8")
print("9")
print("10")
Note que se imprimieron uno a uno los números del 1 al 10, en este caso la solución
es sencilla al tratarse de poquitos números.
122
Introducción a la Programación en Python
Si se pensara en el uso de una variable para otra solución del mismo problema, se
tendría un código similar al siguiente:
i=1
print(i)
i += 1
print(i)
i += 1
print(i)
i += 1
print(i)
i += 1
print(i)
i += 1
… y así sucesivamente.
Como se pudo apreciar, las dos soluciones anteriores, producen iguales resultados,
pero, ¿qué pasaría si en lugar de los números del 1 al 10, el enunciado solicitara la
impresión del 1 al 1000 o del 1 al 100000? Sería bastante tedioso hacer la impresión
de esta gran cantidad de números. Es aquí donde cobra importancia el uso de las
instrucciones repetitivas. Veámos la solución usando el ciclo while:
123
Introducción a la Programación en Python
Explicación:
En la línea cinco, se codificó la instrucción while, cuya condición es numero <= 10.
Con ella se establece que debe ejecutarse mientras el valor de la variable numero
sea menor o igual a 10, como en este momento la variable tiene el valor de 1, esa
condición arroja un resultado True, indicando así que debe ejecutarse el cuerpo
del ciclo.
El cuerpo del ciclo está conformado por dos instrucciones. La primera imprime el
valor de la variable, la segunda incrementa la variable en una unidad, esto lo hace
en cada ejecución del ciclo.
print(numero)
numero += 1
Observe que las dos instrucciones que conforman el cuerpo del ciclo, conservan
la misma sangría.
124
Introducción a la Programación en Python
La variable de control debe modificarse dentro del cuerpo del ciclo, para que en
algún momento la condición tome el valor de False. En este programa la
modificación se hace en la línea siete.
Ejemplo 4.2 En este ejemplo se utiliza la instrucción continue. Con ella se logra que
las instrucciones que faltan por ser ejecutadas dentro del while, sean omitidas y se
regrese directamente a la evaluación de la condición para continuar con el proceso
correspondiente.
El siguiente programa imprime los números del 1 al 100, excluyendo los múltiplos de
4.
Explicación:
En la línea cinco, se estableció la condición del ciclo while, la cual expresa que debe
ejecutarse el cuerpo del ciclo, mientras la variable contador sea menor o igual a
100. Como en este momento la variable tiene un valor de 0, el resultado de la
condición es True, por lo tanto, se ejecuta el cuerpo del ciclo.
El cuerpo del ciclo está compuesto por las instrucciones que hay entre las líneas 6
y 9. Note que todas conservan la misma sangría.
125
Introducción a la Programación en Python
if contador % 4 == 0:
continue
Con esta condición se está preguntando que, si la división del valor de la variable
contador entre 4, deja como residuo 0. En caso de ser True el resultado, se ejecuta
la instrucción continue. La cual automáticamente retorna el control del programa
a la línea cinco, donde se evalúa una vez más la condición del while para
determinar si se repite el cuerpo del ciclo o termina su ejecución.
El control del programa sigue hacia la línea nueve, donde se imprime el valor de
la variable contador, en esta primera ocasión, imprime el valor de 1.
La fórmula que se emplea para calcular el valor futuro de una cantidad dada, en un
periodo de tiempo con interés compuesto es: 𝑣𝑓 = 𝑣𝑝 ∗ (1 + 𝑖)𝑛
Donde:
126
Introducción a la Programación en Python
127
Introducción a la Programación en Python
Explicación:
Se implementaron tres funciones, dos para la lectura de datos y una más para el
cálculo del valor futuro.
Indicando así, que debe ejecutarse mientras la variable de control per sea menor
o igual al número de períodos que se desean capitalizar.
El cuerpo del ciclo está compuesto por tres instrucciones, ubicadas en las líneas
25, 26 y 27.
La primera instrucción (fila 25), asigna a la variable vr_futuro, el valor que retorne
la función valor_futuro(vr_presente, interes, i), de acuerdo a los valores de los
argumentos que se envían.
128
Introducción a la Programación en Python
La siguiente instrucción (línea 26), imprime el número del periodo y el valor futuro
correspondiente.
6! = 1 x 2 x 3 x 4 x 5 x 6 = 720
129
Introducción a la Programación en Python
Explicación:
Entre las líneas 3 y 13, se definió la función facto(tope): con la cual se calcula el
valor del factorial de un número, cuyo valor será enviado cuando se haga el
llamado a la función.
130
Introducción a la Programación en Python
Cuando la condición del while se hace False, se termina la ejecución del ciclo
y el control del programa pasa a la línea 13, donde se retorna el valor
acumulado en la variable local factorial.
131
Introducción a la Programación en Python
Ejemplo 4.5. Con este ejemplo se ilustra el uso de una variable centinela. Esta clase
de variables son usadas para controlar diferentes acciones dentro de un programa.
En este caso se usará como variable de control del ciclo.
El programa simulará un juego para niños en edad escolar, que les mostrará una
operación de suma de dos números aleatorios, entre 1 y 9; el niño deberá ingresar el
resultado de dicha suma. A medida que se realice el juego, se felicitará al niño por las
respuestas correctas o se le dará la retroalimentación en las respuestas erradas. El
juego finalizará cuando el jugador así lo determine.
132
Introducción a la Programación en Python
Explicación:
randint(a, b)
133
Introducción a la Programación en Python
La función jugar() está escrita desde la línea 19 hasta la 38. No posee parámetros,
ni retorno.
La primera instrucción (línea 20) inicializa dos variables que harán el papel de
contadores dentro del ciclo, con ellas se contarán las respuestas correctas y las
erradas. Estos contadores inician con un valor de 0.
El cuerpo del ciclo while, va desde la línea 23 hasta la línea 38. Su condición fue
definida con la siguiente expresión lógica:
while pausa:
Esta condición se interpreta como: mientras la variable pausa tenga un valor True,
ejecute el cuerpo del ciclo. En este caso la condición es verdadera, ya que en la
línea 21 le fue asignado este valor.
Las dos primeras instrucciones del cuerpo del ciclo, asignan a las variables
numero1 y numero2, valores enteros aleatorios entre 1 y 9. Con estos valores,
en la fila 27 se realiza una operación de adición:
134
Introducción a la Programación en Python
En la línea 29, se solicita que el usuario, en este caso el niño, que digite la
respuesta de la suma de estos números, la cual se almacenará en la variable
resultado:
5+8=
if resultado == suma:
buenas += 1
print("Muy bien… ¡Felicitaciones!")
malas += 1
print(f"¡Error!... La respuesta correcta es: {suma}")
135
Introducción a la Programación en Python
Como esta es la última instrucción del cuerpo del ciclo, se regresa al while
(línea 23) y se evalúa nuevamente la condición.
Si la condición del while sigue siendo True, una vez más se repite el proceso.
Cuando la condición sea False, el control del programa lo asume la línea 40 donde
se imprime la cantidad de respuestas acertadas, seguidamente pasa a la línea 41
e imprime el total de respuestas erradas y finaliza la ejecución del programa.
Las validaciones son controles que se ejercen a los datos en su entrada. Hasta el
momento se ha asumido que el usuario digita los valores correctamente, pero en la
vida real, es bien sabido que las cosas no son así; por esta razón es importante que,
desde el código del programa se establezcan los controles necesarios para que los
datos sean digitados correctamente.
Dentro de estas validaciones se pueden tener, por ejemplo, aquellas que controlen
que un número sea positivo o que esté dentro de un rango de valores; en el caso de
una cadena podría ser que se digite mínimo una cantidad de caracteres, entre otros.
136
Introducción a la Programación en Python
Explicación:
Acto seguido se establece un ciclo while. El cuerpo de este ciclo se encuentra entre
las líneas 8 y 12. Al evaluar la condición del while, el resultado que se obtiene es
verdadero:
137
Introducción a la Programación en Python
while siga:
Así las cosas, se hace la lectura del dato en la línea ocho, el valor leído se almacena
en la variable numero.
if numero >= 0
Con esta expresión se evalúa que el número digitado sea mayor o igual a 0, es
decir, que no sea un número negativo. Si el resultado es True, se procede a
cambiarle el valor a la variable centinela:
siga = False
Luego de esta asignación, el control es devuelto a la cabecera del ciclo (línea siete)
donde se vuelve a evaluar la condición, dando un resultado False, con ello se
obliga a salir del ciclo y ejecutar la instrucción que está por debajo de él (línea 13).
En este punto se retorna el valor de la variable numero, el cual debe corresponder
a un 0 o a un número positivo.
138
Introducción a la Programación en Python
Ejemplo 4.7. Una empresa de buses urbanos, desea un programa que permita
calcular cuánto devenga en total un conductor en un día domingo. El turno dominical
se paga con un incremento del 30% sobre el valor de turno normal, además por cada
pasajero que movilice, al conductor se le otorga un bono de $200.
139
Introducción a la Programación en Python
140
Introducción a la Programación en Python
Explicación:
Las instrucciones de las líneas 11, 12 y 13, son exactamente las mismas del
ejemplo 4.6, anterior a este. En ellas se inicializa la centinela en True, se plantea
la condición del while, que es verdadera en su primera evaluación y se lee un
número float que se almacena en la variable numero.
Ya en la línea 14, donde se plantea la decisión del if, difiere un poco al ejemplo
4.6:
Si esta condición es True se cambia el valor de la variable siga, que actúa como
centinela o control del while, de tal forma qué al evaluar nuevamente la condición
del ciclo, obliga a salir de él y hacer el retorno del valor digitado.
141
Introducción a la Programación en Python
Una vez se informe del error, se procederá a evaluar la condición del while, la cual
dará nuevamente True, ya que la variable centinela no ha cambiado su valor
inicial. El proceso se repite y termina cuando se digite un valor que esté dentro
del rango que se establezca.
leer_cadena(mensaje, minimo):
siga = True
while siga:
cadena = input(mensaje)
142
Introducción a la Programación en Python
Si esta condición es True, se trata de una cadena con una longitud válida, en cuyo
caso, se procede a cambiar el valor de la variable siga, con lo cual se saldrá del
ciclo en la próxima evaluación del while. Una vez se salga del ciclo se procede a
retornar el valor almacenado en la variable cadena.
Cuando el control del programa salga del ciclo while, se procede a retornar el valor
de la variable cadena:
return cadena
En cuanto a la solicitud de los datos, esta se hace en las líneas 41, 42 y 43. Analice
las tres instrucciones que se emplean:
143
Introducción a la Programación en Python
Con el valor del turno se está indicando que mínimo debe ser de 25000 y
máximo 150000.
A pesar que el enunciado fue muy preciso en los valores que debe recibir el
programa, se hizo de manera genérica, de tal forma que pueda ser usado con
cualquier otro problema. Solamente bastaría con cambiar los argumentos al
momento de llamar las funciones.
Actividad 4.1. Usando el ciclo while y los demás temas vistos hasta ahora, si son
necesarios, escriba los programas que den solución a los siguientes enunciados.
El juego terminará por una de dos razones. La primera porque el usuario adivine
el número, en cuyo caso se le felicitará y a la vez se le informa en cuántos intentos
lo hizo. La segunda razón es porque se agotaron las cinco oportunidades. Cuando
144
Introducción a la Programación en Python
V=I*R
1. El usuario podrá elegir, las veces que quiera, cuál de las variables desea
calcular.
2. El programa terminará cuando el usuario lo determine.
3. Las entradas de datos deben estar validadas.
Al igual que la instrucción while, el for se usa para repetir una o un conjuntos de
instrucciones un determinado número de veces.
145
Introducción a la Programación en Python
for: es una palabra reservada que se usa para codificar instrucciones que se
repetirán n veces.
iteración: son los elementos sobre los cuales actúa el ciclo, pueden ser un dato de
tipo secuencia o una función range().
Antes de iniciar con los ejemplos de aplicación de este ciclo, vamos a analizar la
función range(), la cual será ampliamente usada con la instrucción for.
Función range()
Devuelve todos los datos entre dos valores, el primero incluido y el segundo excluido:
vf: es el valor final excluído, es decir, no será tenido en cuenta dentro de la lista de
valores generados.
cambio: indica cómo debe comportarse la lista de valores, puede ser un valor positivo
o negativo. Es opcional.
146
Introducción a la Programación en Python
Por ejemplo, para generar los números entre el 10 y el 49, se usa así:
range(10, 50)
range(10, 51, 2)
Con la anterior expresión se generan los números: 10, 12, 14, … , 46, 48, 50
Ahora bien, también puede ser usada para generar los números en orden
descendente. La siguiente expresión genera los números del 10 al 1:
range(10, 0, -1)
range(10)
Explicación:
147
Introducción a la Programación en Python
La variable i opera como control del ciclo, ella recorre y va tomando los valores
generados en la función range(), en este caso los números del 1 al 10.
En primera instancia la variable i toma el primer valor generado por range(1, 11),
o sea, toma el valor de 1, luego ejecuta el cuerpo del ciclo en donde imprime el
valor de i. Regresa nuevamente al for y la variable i toma el valor del 2, que es
parte del rango de valores generados por range(), nuevamente ejecuta el cuerpo
del ciclo donde imprime el número 2. El proceso continúa de esta misma manera,
hasta llegar al valor de 10, en cuyo caso hace la última impresión y se sale del ciclo,
terminando el programa.
Recuerde que este ejemplo ya se había solucionado con el ciclo while, compare
las dos estructuras y podrá apreciar que el ciclo for es más simple en su
codificación:
Ejemplo 4.9. Con este ejemplo se mostrará que los valores generados por la función
range(), pueden ser asignados a una variable. Retomaremos el ejemplo anterior y se
imprimirán los números del 1 al 10.
148
Introducción a la Programación en Python
Explicación:
Ejemplo 4.10. Con este programa se mostrará como la iteración se hace usando una
cadena de caracteres.
Explicación:
P
y
t
h
o
n
149
Introducción a la Programación en Python
Explicación:
150
Introducción a la Programación en Python
La segunda instrucción del ciclo, imprime en pantalla el valor de las variables tabla,
fila y producto.
Suponiendo que la tabla a calcular sea la del número 5, en una de las ejecuciones
del programa, se observaría lo siguiente:
Tabla del 5
5*1=5
5 * 2 = 10
5 * 3 = 15
5 * 4 = 20
5 * 5 = 25
5 * 6 = 30
5 * 7 = 35
5 * 8 = 40
5 * 9 = 45
Ejemplo 4.12. Un número primo, es un número mayor que 1 que es divisible por sí
mismo y por la unidad. Son ejemplos de números primos: 2, 3, 5, 7, 11, 41, 97, 157,
439, 521, 617, 809, 911.
151
Introducción a la Programación en Python
Explicación:
152
Introducción a la Programación en Python
En cada iteración del ciclo se evalúa la condición del if que, pregunta si el número
dividido entre el valor de i deja como residuo 0, es decir, si es una división exacta.
Lo que se está haciendo con este ciclo es inicializar la variable i en 1 y llevarla hasta
el valor del número que se está evaluando. El número en cuestión, es divido entre
153
Introducción a la Programación en Python
cada valor que tome la variable i, a la vez que se van contando las divisiones
exactas que se le puedan practicar.
Note que el cuerpo del ciclo consiste solamente en una instrucción if, y a la vez, el
cuerpo del if consta de una operación.
Una vez se termine la ejecución del ciclo for, se procede a evaluar el if de la línea
14:
if divisiones == 2:
En los ejemplos del for que se plantearon en este apartado, solo se mostró el manejo
con cadenas y con la función range(); en el siguiente capítulo se estudiarán programas
que usarán las tuplas, listas y diccionarios como elemento de iteración del for.
c. Lea un número desde el teclado e imprima todos los números primos menores al
número leído.
154
Introducción a la Programación en Python
f. 1 3 5 7 9 11 … n
155
Introducción a la Programación en Python
CAPÍTULO 5
5 COLECCIONES
Objetivos:
Identificar los diferentes tipos de colecciones que ofrece Python.
Incorporar las colecciones en la solución de un problema.
Determinar qué tipo de colección usar dependiendo del problema
a resolver.
Construir programas que combinen el uso de colecciones.
Realizar operaciones de matrices matemáticas usando listas.
Introducción a la Programación en Python
Colecciones
Todas las variables que se han trabajado hasta el momento reciben un único valor.
Sin embargo, existen variables que tienen la capacidad de almacenar colecciones de
datos de diferentes tipos. Con ellas se pueden agrupar varios objetos bajo un mismo
nombre.
En este capítulo se estudiarán las tuplas, las listas y los diccionarios, elementos que
fueron definidos en el capítulo uno de este libro. Estos tipos de datos nos permitirán
manejar la información de una manera más ordenada. El tema inicia con las tuplas,
luego continúa con las listas en 1 y 2 dimensiones, finalizando con el estudio de los
diccionarios.
5.1 Tupla
Una tupla es de tipo tuple. Es una colección organizada de objetos. Se les conoce
como objetos inmutables, es decir no son modificables. Los objetos que hacen parte
de la tupla pueden ser del mismo tipo o de una combinación de ellos. Una tupla se
identifica porque sus elementos están separados por comas, pueden o no estar
encerrados entre paréntesis.
Tupla vacía:
()
(2018, )
("Luna", )
161
Introducción a la Programación en Python
Cuando una tupla está conformada por un solo elemento, este debe ir
acompañado de una coma (,). Si se dejara sin la coma, el tipo de dato ya sería
diferente:
Las tuplas también pueden estar compuesta por elementos de diferente tipo de
dato:
La tupla no necesariamente debe estar entre paréntesis, basta con separar los
elementos mediante comas:
162
Introducción a la Programación en Python
Como se observa, la primera tupla está compuesta por datos numéricos de tipo
entero, la segunda presenta la combinación de tipos de datos float, int y str; por
último, se construyó una tupla que contiene otra tupla.
print(numeros)
print(datos)
print(combinada)
Usando subíndices
Los elementos dentro de una tupla ocupan una posición específica, que inicia desde
0 y va hasta n -1 elemento. Por ejemplo:
En el anterior caso de la tupla llamada vehiculos se tiene que, cada elemento ocupa
las siguientes posiciones:
Elemento Posición
Automóvil 0
Bicicleta 1
Campero 2
Motocicleta 3
163
Introducción a la Programación en Python
Aunque son 4 elementos, las posiciones van desde el 0 al 3, es decir, desde 0 hasta n
- 1.
print(vehiculos[2])
Una misma instrucción print(), puede usarse para mostrar datos de diferentes tuplas.
combinada[1][1]
164
Introducción a la Programación en Python
Con relación a estos índices, hay que tener claro que la tupla combinada está
conformada por una cadena (Benji) y una tupla. En la posición 0 de combinada está
Benji, en la posición 1 está la tupla, que a su vez contiene 3 elementos, distribuidos
así:
Elemento Posición
2014 0
Canela 1
12 2
Para hacer referencia a los elementos de la tupla interna, se emplean los dos índices,
el primero indica la posición de la tupla interna dentro de combinada, el segundo es
la posición de los elementos referenciados en la tabla anterior. Por lo tanto,
combinada[1][1] hace referencia la cadena Canela.
Es importante resaltar que, también es válido usar los índices especificando los
valores de otra forma. Volvamos a la tupla datos para ver cómo funciona:
Esta tupla tiene siete elementos, que van desde la posición 0 a la 6. Si se emplea la
siguiente instrucción:
print(datos[1:4])
print(datos[0:6:2])
165
Introducción a la Programación en Python
De esta forma se obtiene la impresión por pantalla de los valores de las posiciones 0,
2 y 4:
Así mismo, se puede usar solamente el valor del incremento. En el siguiente ejemplo
se muestran los valores desde la posición 0, hasta la última posición, con incrementos
de 2 en 2.
print(datos[::2])
Si el valor del incremento se usa con valor negativo, la impresión se hace de manera
inversa. Ejemplo:
print(datos[:: -1])
Algunas de las funciones que se aplican con otros tipos de datos, también pueden ser
usadas con las tuplas.
Para los ejemplos de las funciones que se estudiarán a continuación, recordemos los
valores de las tuplas que se vienen trabajando:
166
Introducción a la Programación en Python
Función len()
La primera función que se aplicará, será la función len(), recuerden que esta función
se trabajó en el capítulo de funciones y se utiliza para determinar la longitud de un
objeto de tipo cadena, tupla o lista. Si se usa con una cadena, devuelve la cantidad
de caracteres que esta posea, en el caso de las tuplas, retorna el número de
elementos que la conforman. Ejemplos:
print(len(combinada))
print(len(combinada[1]))
En la posición 1, de la tupla combinada hay otra tupla, la cual está conformada por
tres elementos y es precisamente este el resultado de esta instrucción.
print(len(combinada[1][1]))
print(len(datos))
print(len(datos[1]))
167
Introducción a la Programación en Python
print(len(numeros))
print(len(numeros[1]))
Método count()
Se usa para contar la cantidad de veces que se encuentra un elemento dentro de una
tupla. Ejemplo:
Método index()
indice = numeros.index(3)
print(indice)
168
Introducción a la Programación en Python
minimo = min(numeros)
print(minimo)
Estas funciones también pueden ser usadas con valores de tipo str (string). Ejemplo:
En pantalla se visualiza Niña y luego Benji, ya que son el mayor y el menor valor entre
los datos de tipo cadena, respectivamente.
Con el uso de estas funciones, se debe tener precaución ya que no funcionan cuando
las tuplas tienen diferentes tipos de datos, por ejemplo:
169
Introducción a la Programación en Python
Se indica así que, la función no soporta la combinación de datos de tipo str y float,
aunque siendo más precisos no soporta la combinación de tipos. Todos los elementos
deben ser de tipo str o de tipo numérico.
Cuando una tupla es asignada a una variable, realmente lo que sucede es que esa
variable guarda todos los elementos de la tupla, a esto se le conoce como
empaquetar. El proceso inverso, es decir, el desempaquetado se logra asignando el
valor de esa variable que contiene la tupla, a una cantidad de variables igual a lo
longitud de la tupla. Para mejor ilustración analicemos el siguiente programa:
Explicación:
A la variable libro, se le asigna una tupla conformada por tres elementos. En ese
momento la tupla es almacenada dentro de dicha variable. Esto es conocido como
empaquetar una tupla.
170
Introducción a la Programación en Python
Con ella se logra que los valores almacenados en la variable libro, se asignen a las
variables titulo, publicacion y area. Estos valores son asignados de acuerdo al
orden que ocupan en la tupla (línea tres).
Todos los programas que se han construido con la función return, han devuelto un
solo valor. Gracias a las tuplas podremos retornar múltiples valores desde una misma
función y al mismo tiempo. Ilustremos esta situación mediante el siguiente ejemplo.
Ejemplo 5.2. Este programa calcula la división entera y el módulo de dos valores entre
1 y 1000.
171
Introducción a la Programación en Python
12)
13) def cociente_modulo(dividendo, divisor):
14) cociente = dividendo // divisor
15) modulo = dividendo % divisor
16) return cociente, modulo
17)
18) dividendo1 = leer_int("Ingrese dividendo: ", 1, 1000)
19) divisor1 = leer_int("Ingrese divisor: ", 1, 1000)
20)
21) cociente1, modulo1 = cociente_modulo(dividendo1, divisor1)
22) print(f"\nEl cociente es: {cociente1}, el residuo es: {modulo1}")
Explicación:
Este programa es similar a todos los que se han hecho con funciones con retorno.
La característica principal radica en que se usa una función que retorna dos valores
de manera simultánea. La función que realiza esta tarea se llama
cociente_modulo() y está escrita entre las líneas 13 y 16.
Es una función sencilla, recibe dos valores (dividendo y divisor), con los cuales se
procede a hacer una división entera y a calcular un residuo:
Lo interesante de esta función está en la siguiente línea, con la cual los valores
resultantes son retornados mediante un solo return:
Al tener dos elementos separados por coma, estamos frente a la definición de una
tupla, entonces lo que en realidad se está retornando es una tupla empaquetada.
172
Introducción a la Programación en Python
Meses Estación
Diciembre, enero, febrero Invierno
Marzo, abril, mayo Primavera
Junio, julio, agosto Verano
Septiembre, octubre, noviembre Otoño
173
Introducción a la Programación en Python
Explicación:
Esta función va desde la línea 13 a la 29. Recibe como parámetro el número del
mes del año.
Inicialmente se definen dos tuplas. La primera está compuesta por los nombres
de las estaciones del año, la segunda contiene los nombres de los meses.
Entre las líneas 18 y 25 se encuentra un bloque de decisiones if-elif, con las cuáles
se verifica el número del mes y de acuerdo a eso, la variable estacion toma un
valor entre 0 y 3, que hacen referencia a la posición que ocupa la estación dentro
de la tupla. Por ejemplo, para los meses de diciembre (12), enero (1) o febrero (2),
corresponde la posición 0 de la tupla, es decir, Invierno.
174
Introducción a la Programación en Python
mes = mes - 1
Le resta 1 unidad al mes que el usuario digitó, esto debido a que en la tupla el mes
de enero se guarda en la posición 0, febrero en la posición 1 y así sucesivamente.
return(meses[mes], estaciones[estacion])
Con ella se retorna el nombre del mes que se encuentre en la posición que indica
el valor de la variable mes y el nombre de la estación que se encuentre en la
posición del valor de la variable estacion.
En este momento se usará en conjunto con las tuplas, más adelante en este capítulo
se estudiarán los otros dos elementos.
175
Introducción a la Programación en Python
Donde iteración, hace mención a cualquier elemento que permita hacer un recorrido
dentro de él. Precisamente las tuplas, las listas y diccionarios tienen esa
característica.
Por ejemplo, suponga que tiene una tupla con el nombre de las últimas cuatro series
de televisión que ha visto:
# Primera forma
Lucifer
Blacklist
Los 100
La casa de papel
176
Introducción a la Programación en Python
Seguidamente, se mostrará el mismo listado, pero, junto a la posición que ocupa cada
serie dentro de la tupla:
# Segunda forma
Resultado obtenido:
0 Lucifer
1 Blacklist
2 Los 100
3 La casa de papel
Aunque estas dos formas de obtener los resultados son válidas, no son las mejores,
ya que no se está aprovechando la potencialidad que tienen Python de usar las tuplas
como elemento iterador. Una mejor solución se puede apreciar a continuación:
# Tercera forma
for i in series:
print(i)
Lucifer
Blacklist
Los 100
La casa de papel
Así mismo, la segunda forma que se codificó, se puede mejorar usando la función
enumerate().
177
Introducción a la Programación en Python
Función enumerate()
enumerate(colección)
Donde, colección puede ser una colección de elementos, tal como una tupla, lista o
diccionario. La función retorna dos valores, el primero es la posición de un elemento
dentro de la colección, el segundo es el elemento en sí. Así las cosas, la cuarta forma
de imprimir los elementos de una tupla es:
# Cuarta forma
0 Lucifer
1 Blacklist
2 Los 100
3 La casa de papel
Ejemplo 5.4. Este programa imprime los números del 0 al 99 en cifras y en palabras.
178
Introducción a la Programación en Python
10)
11) if valor >= 0 and valor <= 20:
12) letras = unidades[valor]
13) else:
14) decena = valor // 10 - 2
15) unidad = valor % 10
16)
17) if valor >= 21 and valor <= 29:
18) letras_decenas = decenas[decena]
19) letras_unidades = unidades[unidad].lower()
20)
21) letras = letras_decenas + letras_unidades
22) else:
23) if valor >= 30 and valor <= 99:
24) letras = decenas[decena]
25) if unidad > 0:
26) letras = letras + " y " + unidades[unidad].lower()
27)
28) return(letras)
29)
30) print("\nNúmeros del 0 al 99\n")
31) for i in range(0, 100):
32) print(f"{i} ---> {convertir(i)}")
Explicación:
179
Introducción a la Programación en Python
letras = unidades[5]
Ahora bien, si el valor analizado no está entre 0 y 20, se aplica el else de la línea
13. Ejecutando así, las siguientes operaciones:
decena = valor // 10 - 2
unidad = valor % 10
Así mismo, los números que son mayores o iguales a 30 y menores o iguales a 99
(línea 23), tienen un comportamiento similar entre sí. Adicionalmente, con estos
valores se debe comprobar si se tienen unidades, para así adicionar la letra “y”
junto con la unidad correspondiente. Por ejemplo, si el número es 51, el
programa debe escribir en letras su equivalente: Cincuenta y uno.
180
Introducción a la Programación en Python
El for que se presenta en la línea 31, hace un recorrido desde el número 0 hasta
el 99. La variable de control i, va tomando estos valores.
Números del 0 al 99
0 ---> Cero
1 ---> Uno
2 ---> Dos
...
20 ---> Veinte
21 ---> Veintiuno
22 ---> Veintidos
...
97 ---> Noventa y siete
98 ---> Noventa y ocho
99 ---> Noventa y nueve
Actividades 5.1. Con el desarrollo de esta actividad se podrán afianzar algunos de los
conceptos que se acabaron de estudiar.
1. Dadas las siguientes tuplas, realice los programas correspondientes para dar
solución a los enunciados.
b) binario = (1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 1, 1, 0)
Encuentre su equivalente valor decimal (base 10).
181
Introducción a la Programación en Python
c) binario = (1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 1, 1, 0)
Determine cuántos números 1 y cuántos números 0 hay en la tupla.
valores = (23, 12, "Gato", (45,"Perro", "Edificio", "Jirafa", "Burro"), 34, "Tortuga")
a. print(valores[0])
b. print(valores[2][2])
c. print(valores[3])
d. print(valores[0:3])
e. print(valores[3][2:4])
f. print(valores[5][2:4])
5.2 Listas
Una lista es de tipo list. Al estar dentro de la categoría de colecciones, se define como
un contenedor de objetos. A diferencia de las tuplas, estas sí pueden ser modificadas.
Los objetos que hacen parte de la lista pueden ser todos del mismo tipo o una
combinación de ellos. Una lista se identifica porque sus elementos están encerrados
entre corchetes [ ]. Por ejemplo:
Lista vacía:
[]
[2018]
["Luna"]
182
Introducción a la Programación en Python
Las listas también pueden estar compuesta por elementos de diferente tipo de
dato:
El contenido de una lista se puede mostrar usando una instrucción print(). Suponga
una lista llamada viveres con los siguientes elementos:
print(viveres)
183
Introducción a la Programación en Python
print(viveres[2])
viveres[3] = "Huevos"
Ahora se usará el operador + para tener una lista conformada con los items de ambas
listas:
184
Introducción a la Programación en Python
En este caso, al usar el operador +, se consigue que los items de la lista lacteos se
adicionen a los items de la lista viveres y se almacenen en la nueva lista llamada
mercado, quedando con estos valores:
Tenga en cuenta que el orden en que escriba las listas en la expresión, afecta el
resultado:
Una vez efectuada esta operación, la lista lacteos no sufre ninguna modificación,
mientras que viveres queda así:
185
Introducción a la Programación en Python
Obteniendo así una lista llamada mercado con los siguientes items:
Al utilizar esta forma lo que se hace es adicionar las listas viveres y lacteos como items
tipo listas.
Al igual que se hizo con las tuplas, los elementos de una lista se pueden acceder a
través de su índice. Por ejemplo, suponga la siguiente lista:
print(mercado[0:3])
print(mercado[0:4])
print(mercado[0:3], mercado[4][1])
print(mercado[0:3], mercado[4][0:2])
186
Introducción a la Programación en Python
Función len()
Se dijo anteriormente que esta función aplicada a una cadena mide la cantidad de
caracteres, pero, cuando se usa con una tupla o una lista retorna la cantidad de
elementos que las conforman. Por ejemplo:
Método append()
Método extend()
Método insert()
187
Introducción a la Programación en Python
Método count()
viveres = ['Arroz', 'Fríjol', 'Lenteja', 'Azúcar', 'Huevos', 'Panela', 'Azúcar', 'Sal', 'Avena']
veces = viveres.count("Azúcar")
print(veces)
Resultado: 2
Método remove()
viveres = ['Arroz', 'Fríjol', 'Lenteja', 'Azúcar', 'Huevos', 'Panela', 'Azúcar', 'Sal', 'Avena']
viveres.remove("Azúcar")
188
Introducción a la Programación en Python
Función del()
viveres = ['Arroz', 'Fríjol', 'Lenteja', 'Pastas', 'Huevos', 'Panela', 'Sal', 'Avena', 'Azúcar']
del viveres[7]
Método pop()
viveres = ['Arroz', 'Fríjol', 'Lenteja', 'Pastas', 'Huevos', 'Panela', 'Sal', 'Avena', 'Azúcar']
viveres.pop()
viveres = ['Arroz', 'Fríjol', 'Lenteja', 'Pastas', 'Huevos', 'Panela', 'Sal', 'Avena', 'Azúcar']
viveres.pop(2)
Aunque no es una función de Python, esta acción permite dejar una lista sin ningún
item (vacía):
viveres[:] = []
189
Introducción a la Programación en Python
Deja la lista vacía. Si se emplean los siguientes print() se puede observar su contenido:
print(viveres)
print(len(viveres))
Método sort()
viveres = ['Arroz', 'Fríjol', 'Lenteja', 'Pastas', 'Huevos', 'Panela', 'Sal', 'Avena', 'Azúcar']
viveres.sort()
Método reverse()
viveres = ['Arroz', 'Fríjol', 'Lenteja', 'Pastas', 'Huevos', 'Panela', 'Sal', 'Avena', 'Azúcar']
viveres.reverse()
Retornan el valor máximo y mínimo dentro de una lista. Recuerden que también
pueden usarse con tuplas.
190
Introducción a la Programación en Python
viveres = ['Arroz', 'Fríjol', 'Lenteja', 'Pastas', 'Huevos', 'Panela', 'Sal', 'Avena', 'Azúcar']
maximo = max(viveres)
minimo = min(viveres)
print(f"Mínimo: {minimo} y máximo: {maximo}")
Resultado:
Función sum()
Resultado: 123
Al igual como se explicó en el tema de las tuplas, es válido usar una lista como
elemento iterador de un ciclo for. Analicemos los siguientes ejemplos.
191
Introducción a la Programación en Python
Si se desea imprimir el contenido, junto con la posición que ocupa, se procede así:
i=0
for numero in lista:
print(f"{numero} ocupa la posición {i}")
i += 1
1 ocupa la posición 0
2 ocupa la posición 1
3 ocupa la posición 2
…
8 ocupa la posición 7
9 ocupa la posición 8
10 ocupa la posición 9
Ejemplo 5.5. Este programa lee una cantidad de números y los almacena en una lista,
luego encuentra la sumatoria de ellos.
Aunque Python ofrece la función sum(), con la cual se puede lograr el procedimiento
de una manera más fácil, se utilizará un for para hacer el recorrido de los elementos
e irlos sumando, esto con un propósito didáctico.
192
Introducción a la Programación en Python
7) for i in range(cantidad):
8) numero = int(input(f"Elemento [{i}]: "))
9) numeros.append(numero)
10)
11) sumatoria = 0
12) for i in range(cantidad):
13) sumatoria = sumatoria + numeros[i]
14)
15) print("\nLos datos de la lista son: \n")
16) for i in range(cantidad):
17) print(numeros[i], end = " ")
18)
19) print(f"\n\nLa sumatoria de los elementos es: {sumatoria}")
Explicación:
Una vez se solicite la cantidad de elementos, se define una lista vacía llamada
numeros (línea cinco). Si no se procede con esta definición, se generará un error
cuando se quiera adicionar algún item a la lista.
Con las instrucciones del for que inicia en la línea siete, se van leyendo los items
de la lista y se van adicionando a ella.
El for de la línea 12, tiene como objetivo recorrer la lista e ir sumando cada item
de forma acumulativa dentro de la variable sumatoria.
sumatoria = 0
for i in range(cantidad):
sumatoria = sumatoria + numeros[i]
Tal como se dijo en el enunciado, Python ofrece la función sum(), con la cual se
logra un proceso más eficiente. Las anteriores 3 líneas, pueden ser reemplazadas
por una sola instrucción:
sumatoria2 = sum(numeros)
193
Introducción a la Programación en Python
Luego, con las instrucciones del for de la línea 16, se imprimen los números que
se ingresaron a la lista:
Recuerde que la instrucción end = " ", se usa para lograr que el print() no ejecute
un salto de línea, de esta manera todos los items de la lista se imprimen en un
mismo renglón.
for i in range(cantidad):
numeros[i] = int(input(f"Elementos: [{i}]: "))
194
Introducción a la Programación en Python
Ejemplo 5.6. Es el mismo ejemplo anterior, pero ahora se codificará usando funciones
de usuario. Adicionalmente, se tienen las siguientes condiciones: máximo 50 items,
cada item tendrá un valor entre 1 y 100.
195
Introducción a la Programación en Python
35)
36) print(f"\nLa sumatoria de los elementos es: {sumatoria}")
37) imprimir_elementos("Los datos de la lista son:", numeros)
Explicación:
2. sumar(): recibe como parámetro la lista donde están los números a sumar. Las
instrucciones son las mismas que se usaron en el ejemplo anterior para
realizar el proceso de la sumatoria. Al final retorna el valor calculado.
Para el proceso de impresión se usó un ciclo for que hace el recorrido de los
items, desde la posición 0, hasta la longitud de la lista. En cada iteración
imprime un elemento.
196
Introducción a la Programación en Python
La expresión de la línea 34, hace el llamado a la función sumar(), que lleva como
argumento la lista donde están los items leídos.
Ejemplo 5.7. Con este programa se capturan los elementos de dos listas y luego se
fusionan en una nueva.
Los elementos de cada una de las listas, pasan a ser ítems independientes de la lista
nueva.
197
Introducción a la Programación en Python
Explicación:
Al igual que el programa anterior, este ejemplo presenta cuatro funciones, de las
cuales la única diferente es la función denominada fusionar(), que será la
encargada de unir las dos listas en una sola y retornar el resultado de esta unión.
En este punto conviene subrayar que, este procedimiento se puede hacer de una
manera mucho más sencilla y rápida, la cual se mostrará al final de esta
explicación. La forma como se solucionó en este ejemplo, tiene como objetivo
practicar diferentes opciones y desarrollar competencias en el manejo de las
instrucciones del lenguaje.
198
Introducción a la Programación en Python
La función fusionar() presenta dos parámetros, que reciben las dos listas a unir.
En la línea 12, se define una lista vacía llamada unidos, que contendrá el resultado
del proceso.
Se define una variable llamada j, que servirá como índice de la segunda lista
dentro del proceso de fusión.
Para hacer la fusión de las dos listas se trabaja un for. Inicia en la línea 15 y
termina en la línea 20. La cabecera de este ciclo controla su ejecución con la
variable i cuyo valor inicial es 0 y va hasta el valor de la longitud total definida en
la variable tope.
En la línea 16, se plantea una decisión que tiene como fin controlar que primero
se adicionen los items de la lista numeros1 a la lista unidos. Cuando esta decisión
es false se procede a adicionar los items de la lista numeros2 a la lista unidos. En
este momento es donde se debe hacer uso de la variable j, ya que el recorrido en
la lista numeros2 debe iniciar desde 0 e ir incrementando una posición en cada
vuelta.
Una vez termine la ejecución el ciclo for, se procede con el return de la línea 21
que devuelve la lista con los elementos fusionados.
199
Introducción a la Programación en Python
numeros1 = [2, 4, 6, 8]
numeros2 = [1, 3, 5]
unidos = [2, 4, 6, 8, 1, 3, 5]
Como se mencionó en los párrafos anteriores, hay una forma más sencilla de realizar
el proceso de fusión de las dos listas. Teniendo en cuenta esta afirmación, la anterior
función fusionar(), puede ser reemplazada por esta:
Así mismo, hay que tener presente que alguien podría pensar en solucionar este
problema usando el método append(), así:
200
Introducción a la Programación en Python
En este caso, se está creando una lista conformada por dos listas, lo cual cambia un
poco el resultado:
[2, 4, 6, 8] [1, 3, 5]
Ejemplo 5.8. Este programa lee los elementos de dos listas de igual dimensión y luego
forma una tercera lista, en donde cada item es el resultado de la multiplicación de los
items que ocupan la misma posición en las listas capturadas.
201
Introducción a la Programación en Python
24)
25) def leer_int(mensaje, minimo, maximo):
26) siga = True
27) while siga:
28) numero = int(input(mensaje))
29) if numero >= minimo and numero <= maximo:
30) siga = False
31) else:
32) print(f"\n¡Error! El dato debe estar entre {minimo} y {maximo}\n")
33) return numero
34)
35) cantidad = leer_int("\nDigite la cantidad de elementos de las listas: ", 1, 50)
36) print("\nElementos de la primera lista\n")
37) numeros1 = leer_elementos("Lista 1 ", cantidad)
38)
39) print("\nElementos de la segunda lista\n")
40) numeros2 = leer_elementos("Lista 2 ", cantida)
41)
42) imprimir_elementos("Elementos lista 1: ", numeros1)
43) imprimir_elementos("Elementos lista 2: ", numeros2)
44)
45) producto = multiplicar(numeros1, numeros2)
46) imprimir_elementos("La lista resultado es:", producto)
Explicación:
Esta función tiene dos parámetros, en los cuales recibe las listas que se van a
multiplicar.
202
Introducción a la Programación en Python
producto.append(numeros1[i] * numeros2[i])
Una vez se haya terminado de ejecutar el for se retorna la lista producto (línea
18).
Ejemplo 5.9. En este ejemplo se lee un número entero positivo no mayor a 10000 y
se convierte en su equivalente número binario (base 2).
203
Introducción a la Programación en Python
204
Introducción a la Programación en Python
Explicación:
Entre las líneas 6 y 9 se encuentra un ciclo while que, tiene la función de ejecutar
las instrucciones que hacen las divisiones enteras entre 2. En cada división se
calcula el residuo y se va almacenando como un item dentro de la lista resultados.
Recuerde que para hallar el residuo se usa el operador módulo (%).
205
Introducción a la Programación en Python
resultados = [0, 1, 1, 0, 1]
invertido = [1, 0, 1, 1, 0]
De igual forma, como se ha hecho con otros programas, existe una forma más
sencilla de hacer algunos procedimientos. En este ejemplo, las líneas que
invierten los elementos de la lista se pueden reemplazar por uno de los métodos
que ofrece Python.
206
Introducción a la Programación en Python
Así las cosas, recordemos las líneas que hacen el proceso de invertir la lista:
invertido = []
j = len(resultados)
for i in range(len(resultados)):
j -= 1
invertido.append(resultados[j])
Estas cinco líneas pueden ser reemplazadas por las siguientes dos, que muestran
un proceso más sencillo:
resultados.reverse()
invertido = resultados
Actividad 5.2. Desarrolle los programas necesarios para solucionar los siguientes
enunciados.
a. Lea una cantidad de números no mayor a 100, con valores entre -1500 y 1500,
determine cuántas veces se encuentra cada número dentro de la lista.
b. Lea una cantidad de números no mayor a 100, con valores positivos no mayores
a 2000 y determine cuántos de ellos son pares y cuántos impares.
207
Introducción a la Programación en Python
los números de la serie. Sean los números X1, X2, …, XN. La media armónica H se
obtiene de la relación:
1 1 1
1 𝑋1 + 𝑋2 +. . . + 𝑋𝑁
=
𝐻 𝑁
1 1 1
1 4+5+8
=
𝐻 3
23
1
= 40
𝐻 3
1 23
= 𝐻 = 5.22
𝐻 120
e. Escriba una función que determine el valor de los dos ítems que más veces se
encuentran dentro de una lista.
Una lista en dos dimensiones, realmente es una lista conformada por listas. Este tipo
de colecciones, es muy usada para realizar cálculos y operaciones con matrices
matemáticas, aunque no es su único uso.
Siendo así, es procedente establecer que una matriz matemática es una formación
en dos dimensiones, conformada por filas y columnas.
En Python una matriz matemática se representa con una lista, dentro de la cuál hay
otras listas. La cantidad de listas internas indican el número de filas de la matriz. La
cantidad de ítems de las listas internas será el número de las columnas de la matriz,
208
Introducción a la Programación en Python
por lo tanto, la cantidad de ítems de las listas internas debe ser la misma para todas
ellas.
1 8 9
4 − 8 7
A=
5 3 2
6 0 5 4 3
Como se dijo anteriormente, para representarla en Python se usa una lista de listas,
así:
Esta lista de dos dimensiones está conformada por 4 ítems que a su vez son listas y
representan las filas de la matriz. Para una mejor comprensión, la presentaremos de
la siguiente manera:
a = [ [1, 8, 9],
[4, -8, 7],
[5, 3, 2],
[6, 0, 5] ]
Cada una de estas listas internas, está compuesta por 3 ítems, indicando así el
número de columnas de la matriz que se quiere representar.
209
Introducción a la Programación en Python
1 8 9
4 -8 7
5 3 2
6 0 5
Para acceder a cada uno de estos elementos, se debe usar la siguiente notación:
nombre[fila][columna]
Donde:
210
Introducción a la Programación en Python
Otro aspecto importante que se debe conocer es que, en las operaciones de listas en
dos dimensiones, generalmente se siguen los siguientes procedimientos: primero se
hace una lectura de los ítems, en segundo lugar se ejecuta un proceso con los datos
de la lista, que depende del problema a solucionar y por último hay una salida o
impresión de resultados.
Para guardar los ítems en una lista de dos dimensiones se deben establecer dos ciclos.
Generalmente se trabaja con el ciclo for. Una de las posibles codificaciones para
realizar esta lectura es la siguiente:
1) dimensional = []
2)
3) for i in range(filas):
4) dimensional.append([])
5) for j in range(columnas):
6) numero = int(input(f"Elemento [{i}][{j}]: "))
7) dimensional[i].append(numero)
Explicación:
Estas líneas de código presentan dos ciclos for, el primero controla la cantidad de
filas, el segundo la cantidad de columnas (filas 3 y 5). A estos ciclos se les conoce
como ciclos anidados, lo cual quiere decir que uno está dentro de otro.
211
Introducción a la Programación en Python
una nueva lista a la lista que se definió en la línea uno, para ello se usa la siguiente
instrucción:
dimensional.append([])
Aquí el método append() anexa un ítem de tipo list. Esta lista vacía, representa
una fila de la lista llamada dimensional, con lo cual se va formando una lista de
listas (matriz). En este momento la lista estaría así:
dimensional[ [ ] ]
Observe que esa nueva lista posee solo un elemento vacío. En este punto de las
instrucciones, el control lo asume el segundo for (línea cinco), donde la variable
de control j itera desde 0 hasta alcanzar la cantidad de columnas que tenga la
lista bidimensional. Cuando este for temine de hacer su primera iteración
completa, se habrán leído los números que ocuparán la primera fila de la matriz.
Cada que este ciclo se ejecute realiza la lectura de un ítem mediante la siguiente
instrucción:
Elemento[0][0]:
Suponga que se van a leer los ítems de la matriz que se ha venido trabajando
como ejemplo, cuya dimensión es de 4 x 3; en este caso los elementos se pedirían
así:
Elemento[0][0]: 1
212
Introducción a la Programación en Python
dimensional[i].append(numero)
[[1]]
Elemento[0][1]: 8
[[1, 8]]
Elemento[0][2]: 9
[[1, 8, 9]]
213
Introducción a la Programación en Python
Así las cosas, el control lo vuelve a asumir el ciclo for de la línea tres, en donde i
toma el valor de 1. Como la condición de este ciclo sigue siendo True se repite su
cuerpo. De acuerdo con la instrucción de la línea 4, se adiciona una nueva lista a
la lista llamada bidimensional, es decir se adiciona una nueva fila a la matriz, así:
Esta nueva fila (lista) ocupa la posición 1 de la lista dimensional. Una vez más se
repite el proceso de lectura de los tres elementos que la ocuparán. De acuerdo
con la matriz que se tiene de ejemplo, los elementos son: 4, - 8 y 7. Teniendo
entonces el siguiente comportamiento:
Elemento[1][0]: 4
Elemento[1][1]: -8
Elemento[1][2]: 7
214
Introducción a la Programación en Python
Hasta aquí se tienen entonces, los elementos de la segunda fila de la matriz. Este
proceso vuelve a repetirse hasta completar las 4 filas de la lista. Terminando
entonces con todos los números almacenados, así:
Al igual que en la entrada de los ítems de la lista de dos dimensiones, para la salida
se deben usar dos ciclos for, así:
Explicación:
Es una buena práctica incluir un mensaje que indique a qué corresponden los
datos que se mostrarán, por eso en la línea uno se imprime el mensaje que dice
“Los datos de la matriz son:”.
215
Introducción a la Programación en Python
pero con las columnas, su iteración se hace con la variable de control j. En cada
ejecución del ciclo interno (línea tres) se imprime el contenido de la matriz
dimensional, para ello se emplea la siguiente instrucción:
1 8 9
Una vez se haya terminado de ejecutar este ciclo, el control pasa a la instrucción
de la línea cinco, en donde se produce un salto de línea con la función print().
Una vez se hayan ejecutado por completo los dos ciclos, se obtendrá el siguiente
resultado:
1 8 9
4 -8 7
5 3 2
6 0 5
216
Introducción a la Programación en Python
Ejemplo 5.10. Este programa lee los datos de una matriz de tamaño m x n y los
almacena en una lista de dos dimensiones. Luego determina cuál es el de mayor valor.
Explicación:
217
Introducción a la Programación en Python
Entre las líneas 14 y 19 se hace el proceso para averiguar cuál es el elemento que
tiene el mayor valor.
mayor = dimensional[i][j]
Una vez se haya terminado la comparación contra todos los ítems de la lista
dimensional, se procede a ejecutar la instrucción de la línea 21, en donde se
imprime el mayor valor de los elementos de la lista.
Ejemplo 5.11. Este programa lee los datos de una matriz de tamaño m x n y los
almacena en una lista de dos dimensiones. Luego determina cuál es el de mayor valor.
218
Introducción a la Programación en Python
219
Introducción a la Programación en Python
Explicación:
220
Introducción a la Programación en Python
for i in range(filas):
for j in range(columnas):
for i in range(len(dimensional)):
for j in range(len(dimensional[0])):
filas = len(dimensional)
columnas = len(dimensional[0])
221
Introducción a la Programación en Python
222
Introducción a la Programación en Python
Ejemplo 5.12. Este programa lee los elementos de una matriz y los almacena en una
lista de dos dimensiones, luego calcula su matriz transpuesta.
Por ejemplo, las filas pasan a ser las columnas de la matriz transpuesta:
4 −3 4 2 −1
A = 2 8 A =
t
− 1 5 3 x 2 − 3 8 5 23
Otro ejemplo puede ser cuando las columnas pasan a ser las filas de la matriz
transpuesta:
5 7 9 5 3 2
B = 3 1 0 B = 7 t
1 4
2 4 10 33 9 0 10 33
En esencia, ambas situaciones son exactamente las mismas, todo depende de como
se haga el análisis.
223
Introducción a la Programación en Python
11)
12) def calcular_transpuesta(dimensional):
13) transpuesta = []
14) for i in range(len(dimensional[0])):
15) transpuesta.append([])
16) for j in range(len(dimensional)):
17) transpuesta[i].append(dimensional[j][i])
18) return transpuesta
19)
20) def imprimir_elementos(mensaje, dimensional):
21) print(f"\n{mensaje}")
22) for i in range(len(dimensional)):
23) for j in range(len(dimensional[0])):
24) print(f"{dimensional[i][j]:7d}", end = " ")
25) print()
26)
27) def leer_int(mensaje, minimo, maximo):
28) siga = True
29) while siga:
30) numero = int(input(mensaje))
31) if numero >= minimo and numero <= maximo:
32) siga = False
33) else:
34) print(f"\n¡Error! El dato debe estar entre {minimo} y {maximo}\n")
35) return numero
36)
37) filas = leer_int("Cantidad de filas: ", 1, 5)
38) columnas = leer_int("Cantidad de columnas: ", 1, 5)
39)
40) print("\nElementos de la matriz\n")
41) dimensional = leer_elementos("Elementos", filas, columnas)
42)
43) transpuesta = calcular_transpuesta(dimensional)
44)
45) imprimir_elementos("Matriz original:\n", dimensional)
46) imprimir_elementos("Matriz transpuesta:\n", transpuesta)
224
Introducción a la Programación en Python
Explicación:
1. Se obtienen los valores de la lista, bien sea que se digiten o que estén
previamente establecidos.
2. Con esos datos se procede a realizar algún proceso que arrojará un resultado.
3. Se muestran los datos que componen la lista, aunque este paso puede ser
opcional dependiendo de las características propias del problema que se está
solucionando.
Como los pasos 1 y 3, ya han sido cubiertos con explicaciones previas, en este
ejemplo nos concentraremos en el paso 2, en el cual se realiza el proceso de
calcular la transpuesta.
Luego se define una lista donde se almacena la matriz transpuesta (línea 13).
225
Introducción a la Programación en Python
Matriz original:
1 2 3 4
5 6 7 8
9 10 11 12
Matriz transpuesta:
1 5 9
2 6 10
3 7 11
4 8 12
Ejemplo 5.13. Este programa lee los elementos de dos matrices y los almacena en
listas de dos dimensiones, luego calcula su producto.
Para poder realizar la operación de producto entre dos matrices hay que tener en
cuenta que el número de columnas de la primera matriz debe ser igual al número de
filas de la segunda matriz.
226
Introducción a la Programación en Python
6 −1 −5 8
− 2 − 5
B = 2 − 3
4
A= 4 0
0 2 3
y
3 7
− 4 3 7 9 3 4
6 −1 −5 8
− 2 4 − 5 2
AB = 4 0 −3 =
3 7 02 3
− 4 3 7 9 3 4
C = [16 3 - 25 – 73]
227
Introducción a la Programación en Python
Para ello, se multiplican los componentes de la segunda fila de la matriz A con los
componentes de la primera, segunda, tercera y cuarta columna de la matriz B
sumando cada producto resultante, así:
16 3 − 25 − 73
C=
32 25 − 15 3 2 4
228
Introducción a la Programación en Python
229
Introducción a la Programación en Python
Explicación:
if columnas_a == filas_b:
230
Introducción a la Programación en Python
El ciclo for más interno va iterando la variable k, que es usado como índice de las
columnas de dimensional_a y a la vez como índice de las filas de dimensional_b,
con ello se logra que cada ítem de la fila de dimensional_a se multiplique por
cada ítem de la columna de dimensional_b, este resultado se va acumulando en
la variable sumatoria. Cuando se termine de multiplicar cada ítem de la fila de
dimensional_a por cada elemento de la columna de dimensional_b, se anexa en
la posición i de la lista multiplicación el resultado de la variable sumatoria. Tenga
en cuenta que la expresión multiplicacion[i].append(sumatoria), se debe
interpretar como que, en la posición [i][j] de la lista multiplicacion se almacena el
valor de sumatoria. Luego, cuando la variable j tome el nuevo valor (se
incremente), la variable k se inicializa nuevamente en 0 y se procede a hacer la
multiplicación de la misma fila de dimensional_a por los ítems de la siguiente
columna de dimensional_b; cuando se termine de multiplicar los ítems de la fila
de dimensional_a por todos los ítems de las columnas de dimensional_b, se hace
el incremento de valor de la variable i y seguidamente se repite el mismo proceso
con la siguiente fila de dimensional_a.
Ejemplo 5.14. En este último ejemplo de listas de dos dimensiones, se mostrará que
ellas no solamente se usan en operaciones con matrices, también sirven para
almacenar y organizar información de manera temporal.
El programa leerá el producido diario de 3 vehículos que posee una persona. Esos
vehículos están identificados como Taxi, Bus y Uber. El valor producido de cada
vehículo se registrará durante una semana de lunes a viernes. Por último, se mostrará
231
Introducción a la Programación en Python
en forma de tabla el producido de los tres vehículos por día y por semana, así mismo
se determinará cuál de ellos tiene mayor producción.
232
Introducción a la Programación en Python
Explicación:
233
Introducción a la Programación en Python
Por último, en la línea 66 se imprime el vehículo que tiene mayor producido. Note
que para ello se usa la siguiente instrucción teniendo en cuenta el indice que se
mencionó en el párrafo anterior:
234
Introducción a la Programación en Python
No olvide que, en el llamado que se hizo a esta función desde la línea 57 se usaron
los siguientes argumentos:
filas y columnas determinan la cantidad de veces que iteran las variables que
controlan los índices en los dos ciclos for.
Lunes
Taxi :
Bus :
Uber :
Al finalizar con la lectura del producido de los vehículos durante los cinco días, se
retorna la lista dimensional con los valores registrados (línea 11).
imprimir_elementos(dias, dimensional)
235
Introducción a la Programación en Python
Note que se tiene como argumento la tupla días en donde están contenidos los
días de lunes a viernes. El contenido de esta tupla se imprime con la instrucción
de la línea 22 de la función imprimir_elementos():
Como siguiente paso dentro del programa se tiene el cálculo del total
producido de cada vehículo, si observa la salida que se mostró en el anterior
punto, ese total se puede calcular sumando los valores relacionados a cada
vehículo, que son los que se visualizan en cada columna.
Observe con detenimiento la instrucción de la línea 14, con la cual se crea una
lista de una sola dimensión. La cantidad de ítems está dada de acuerdo a la
cantidad de columnas de la lista dimensional:
236
Introducción a la Programación en Python
calcular esa cantidad, ya que el programa queda abierto para que adicionen más
vehículos a la tupla, sin necesidad de hacer modificaciones adicionales a las líneas
de programación. La expresión que se usó tiene como finalidad crear la lista en
donde cada ítem tiene el valor de 0, esto con el propósito de que sirvan de
acumuladores de la sumatoria del producido día tras día en cada vehículo.
Los dos ciclos for, van recorriendo la lista por filas y columnas, a medida que
avanza sobre las columnas, la expresión producido[j] += dimensional[i][j] va
acumulando el valor que se encuentre en ellas.
La función imprimir_totales(), tiene como tarea imprimir los totales que produce
cada vehículo durante una semana.
La variable totales, recibe los valores que sean enviados por la función
calcular_producido(), llamada que se hace en la línea 28.
El ciclo for de la línea 31, imprime los ítems de la variable totales, que equivalen
al producido semanal de cada vehículo. Cuando esta función se ejecute, la salida
en pantalla se estará visualizando así:
237
Introducción a la Programación en Python
Para lograr ese cometido, en la línea 26 se hizo uso de la función max(), que
encuentra el mayor valor del elemento dentro de una lista o una tupla. Con este
dato se utilizó el método index(), que indica el índice del valor que se use como
argumento.
Actividad 5.3. Escriba los programas que solucionen los siguientes enunciados.
238
Introducción a la Programación en Python
Construya una lista de dos dimensiones donde almacene los elementos de una
matriz cuadrada y encuentre la sumatoria de los elementos de la diagonal.
b. Lea los ítems de una matriz y construya con ellos dos listas de una dimensión, la
primera contendrá los elementos positivos (incluyendo el cero), la segunda
contendrá los elementos negativos.
e. Se tiene una lista de dos dimensiones, donde se almacenan los elementos de una
matriz. Determine si es una matriz mágica. Una matriz mágica es aquella en que
la suma de cada una de sus filas, columnas y diagonales tienen el mismo valor.
Tenga presente que, las matrices mágicas tienen que ser cuadradas.
5.4 Diccionarios
Un diccionario es de tipo dict. Está conformado por una estructura de datos, cuyos
elementos pueden ser de diferente tipo, incluidas las tuplas, las listas y otros
diccionarios. Cada uno de los elementos que conforman al diccionario tienen una
clave o llave que permite su asociación con un valor. A diferencia de las tuplas y las
listas, los elementos de un diccionario no están organizados, ni pueden ser accedidos
por su posición.
Para definir un diccionario se debe utilizar un nombre y los caracteres de llaves { }.
Entre ellas van las parejas que conforman la clave y su valor, separadas mediante dos
puntos (:); cada uno de los elementos del diccionario se separan con comas. Ejemplo:
239
Introducción a la Programación en Python
print(elementos)
{'Cobre': 'Cu', 'Oro': 'Au', 'Helio': 'He', 'Plata': 'Ag', 'Oxígeno': 'O'}
print(elementos["Oro"])
También se consigue el mismo resultado usando una variable para asignar el valor:
simbolo = elementos["Oro"]
print(simbolo)
En el caso de que se trate de buscar una clave que no existe, se genera un mensaje
de error. Para evitar esta situación, se puede usar el método get(), el cual presenta
dos parámetros.
240
Introducción a la Programación en Python
simbolo = elementos.get("Oro")
print(simbolo)
print(elementos.get("Oro"))
Si se usa una clave de un elemento que no exista, no se produce un error, sino que
su resultado será un objeto de tipo None:
print(elementos.get("Hidrógeno"))
La otra manera de usar el método get() es con el uso de sus dos parámetros: la clave
y un mensaje.
241
Introducción a la Programación en Python
Así las cosas, si se quiere imprimir todo el contenido del diccionario llamado
elementos se usa la instrucción:
print(elementos)
De igual forma, si se quiere imprimir solo uno de los diccionarios que conforman el
diccionario elementos, basta con recurrir a la respectiva clave, así:
print(elementos["Metales"])
En pantalla se visualiza:
Ahora bien, si se quiere el valor de una de las claves de los diccionarios que
conforman a elementos, se procede así:
print(elementos["Metales"]["Cobre"])
242
Introducción a la Programación en Python
Esta instrucción imprime el valor de la clave Cobre, que hace parte del diccionario
que representa el valor asociado a la clave Metales del diccionario elementos. Por lo
tanto, el resultado en pantalla es:
Cu
elementos = {"Oro":["Au", 79, "Metal"], "Plata":["Ag", 47, "Metal"], "Zinc":["Zn", 30, "Metal"],
"Helio":["He", 2, "Gas noble"], "Neón":["Ne", 10, "Gas noble"],
"Bromo":["Br", 35, "No-Metal"], "Cloro":["Cl", 17, "No-Metal"]}
print(elementos["Neón"])
Indica que se debe mostrar el valor asociado a la clave Neón. como resultado se
obtienen todos los ítems de la lista:
print(elementos["Neón"][0])
243
Introducción a la Programación en Python
print(elementos["Neón"][0:2])
Este ejemplo muestra los ítems desde la posición 0 hasta la posición 1 de la lista:
['Ne', 10]
También, se puede hacer uso de un ciclo for para recorrer todos los ítems de la lista
asociada a la clave:
for i in range(len(elementos["Neón"])):
print(elementos["Neón"][i])
Ne
10
Gas noble
Ahora bien, para mostrar todas las llaves del diccionario, se procede así:
Oro
Plata
Zinc
Helio
Neón
Bromo
Cloro
244
Introducción a la Programación en Python
Los diccionarios al igual que las listas, son tipos de datos que pueden ser modificados.
Para anexar parejas de datos (llave y valor), se debe tener un diccionario definido, lo
cual se consigue así:
elementos = {}
Así que, una vez se tenga definido el diccionario, se puede procede a anexar las
parejas de datos. Como ejemplo vamos a adicionar los elementos Bromo y Cloro, con
sus respectivos símbolos.
elementos["Bromo"] = "Br"
elementos["Cloro"] = "Clor"
245
Introducción a la Programación en Python
Las claves son los nombres de los elementos y los valores asociados a esas claves son
los símbolos químicos.
Hemos cometido, a propósito, el error de ingresar mal el símbolo químico del Cloro,
puesto que es Cl y no Clor, esto con el fin de explicar cómo se hace una modificación.
elementos["Cloro"] = "Cl"
Con esta instrucción, se corrige el error que se había cometido al asignar el símbolo
químico del Cloro. El diccionario queda así:
Al igual como se mostró en las listas y en las tuplas, existen algunas funciones o
métodos que pueden ser trabajadas con los diccionarios. En párrafos anteriores se
hizo uso del método get(). Ahora se explicarán otros métodos y funciones de uso
común en este tipo de colecciones.
246
Introducción a la Programación en Python
Función del
Con esto se borra tanto la clave, como el valor asociado a Cloro. El diccionario
quedaría así:
{'Bromo': 'Br'}
Método items()
element = elementos.items()
print(element)
Muestra en pantalla:
dict_items([('Cobre', 'Cu'), ('Oro', 'Au'), ('Helio', 'He'), ('Plata', 'Ag'), ('Oxígeno', 'O')])
El resultado del método items(), puede ser convertido a una lista de tuplas usando la
función list():
lista = list(elementos.items())
[('Cobre', 'Cu'), ('Oro', 'Au'), ('Helio', 'He'), ('Plata', 'Ag'), ('Oxígeno', 'O')]
247
Introducción a la Programación en Python
Ya con esta estructura de tipo list, se pueden aplicar las diferentes formas de acceder
a sus elementos, por ejemplo:
print(lista[1])
('Oro', 'Au')
Para mostrar el símbolo químico del Helio (He), que ocupa la posición 2 de la lista y
la posición 1 de la tupla, se escribe la siguiente instrucción:
print(lista[2][1])
Método keys()
Este método retorna las claves del diccionario. Retomemos el diccionario elementos:
Se muestra en pantalla:
Al igual que con el método items(), con keys() también se pueden llevar todas las
claves a una lista:
lista = list(elementos.keys())
print(lista)
248
Introducción a la Programación en Python
Método values()
Retorna los valores que hay asociados a cada clave dentro del diccionario:
valores = elementos.values()
print(valores)
lista = list(elementos.values())
print(lista)
En este caso, el elemento iterador del ciclo for es el diccionario. Se usa de la siguiente
manera.
249
Introducción a la Programación en Python
Cobre Cu
Oro Au
Helio He
Plata Ag
Oxígeno O
Las claves y sus valores se están accediendo a través de un índice, esto se puede hacer
gracias a que se usó el método items(), no obstante, a pesar de ser una forma válida
no es la forma ideal, en su lugar, el ciclo for se debe escribir de la siguiente manera,
obteniendo los mismos resultados:
Al llegar a este punto, se conoce el manejo básico de los diccionarios y las funciones
o métodos más utilizados con ellos; es hora entonces de ver algunos programas
completos.
250
Introducción a la Programación en Python
Explicación:
En la línea cinco se define un diccionario vacío llamado selecciones. Una vez que
se haya definido, queda listo para que se puedan adicionar sus elementos.
Sobre las líneas 9 y 10 se piden los elementos. Recuerde que cada elemento en
un diccionario está formado por la pareja clave:valor. En la línea 9 se pide el año
del mundial, esta será la clave y en la línea diez se lee el equipo o selección, que
será el valor asociado a cada clave.
251
Introducción a la Programación en Python
selecciones[anio] = equipo
Ejemplo 5.16. Este programa realiza lo mismo que el anterior, crea un diccionario y
permite adicionar elementos a él.
252
Introducción a la Programación en Python
Explicación:
253
Introducción a la Programación en Python
1. Se validó la entrada de los datos. El año debe ser un valor entre 1930 y 2018.
El nombre del equipo, mínimo, debe tener tres caracteres de longitud. De igual
forma, se validó la respuesta a si desea o no continuar.
Se codificaron funciones para validar las lecturas de los datos. Estas ya han sido
utilizadas y explicadas con anterioridad en otros programas.
Antes de continuar con los programas para la gestión del diccionario que almacena
las selecciones campeonas de mundiales de fútbol, es importante aclarar que, con el
fin de concentrar la explicación sobre el proceso de consulta, modificación y borrado,
los programas no se codificarán con funciones de usuario. Así mismo, se trabajará
sobre los siguientes elementos, previamente definidos en el diccionario llamado
selecciones:
254
Introducción a la Programación en Python
Explicación:
Dentro del ciclo while se pide el año del mundial para, así conocer el nombre de
la selección campeona.
Para la consulta se usó el método get(), que tiene como argumentos el año de
consulta y la palabra “No” (línea diez).
equipo = selecciones.get(anio,"No")
De esta forma, la variable equipo toma como valor el nombre de la selección que
corresponda al año de consulta, en el caso de no ser encontrado, el valor que se
le asigna a la variable equipo es la palabra “No”.
255
Introducción a la Programación en Python
256
Introducción a la Programación en Python
Explicación:
selecciones[anio] = equipo
Note que esta instrucción es igual a la que se usó en el programa de creación, con
ella se almacena la pareja conformada por clave:valor (año:selección).
equipo = selecciones.get(anio)
print(f"\nLa nueva selección para el año {anio} es: {equipo}")
Por último, en la línea 23, se plantea la pregunta si se desea continuar con las
modificaciones, dependiendo de la respuesta, se repite o termina el proceso.
257
Introducción a la Programación en Python
Ejemplo 5.19. Este programa permite borrar una selección del diccionario.
Explicación:
258
Introducción a la Programación en Python
del selecciones[anio]
print("\nSe ha realizado el borrado")
a. Tome los programas que se crearon anteriormente para el manejo del diccionario
de las selecciones y con todos ellos construya un solo programa que, debe ser
controlado a través de un menú con las siguientes opciones:
Todas las entradas deben estar debidamente validadas, de acuerdo con los
valores solicitados. El programa terminará en el momento que elijan la opción 5
del menú.
259
Introducción a la Programación en Python
1. len()
2. append()
3. count()
4. extend()
5. index()
6. get()
7. insert()
8. keys()
9. max()
10. reverse()
260
Introducción a la Programación en Python
INDICE
261
Introducción a la Programación en Python
import, 53, 54 n, 59
import math, 54 número complejo, 13
Impresión de una tupla, 162 número entero, 12
indentación, 64 número real, 12
index(), 168 operador, 21
insert(), 187 Operador and, 23
Instrucción elif, 106 Operador not, 24
Instrucción for, 145 Operador or, 23
Instrucción while, 120 operadores lógicos, 23
int, 12, 38, 40 operadores matemáticos, 21
item, 184, 187, 193 operadores relacionales, 22
lambda, 83 palabras reservadas, 18
Lectura de ítems, 211 parámetro, 72
len(), 187 Pascal Case, 18
len(cadena), 51 pi, 56
lenguaje de alto nivel, 10 pop(), 189
lenguaje interpretado, 10 pow(), 57
list, 14, 182 pow(x, n), 56
list(), 247 Precedencia de operación, 25
lista, 14 procedimiento, 64
Lista vacía, 182 producto entre dos matrices, 226
Listas, 182 randint(), 133
Listas en dos dimensiones, 208 random, 133
literals strings, 37 Recomendaciones, 17
matemáticas, 208 Reglas, 17
math, 54, 56, 57 remove(), 188
matrices, 208 return, 64, 74
matriz, 215 return(valor), 64
matriz transpuesta, 223 reverse(), 190
max(), 169, 190 sangría, 64
método get(), 241 secuencia, 14
Método items(), 247 sin(), 54
Método keys(), 248 sin(x), 56
Método values(), 249 Snake Case, 18
Mezcla de listas, 184 sort(), 190
min(), 169, 190 sqrt(), 54, 137
modf(x), 56 sqrt(x), 56
Modificación de un item, 184 str, 13, 38
Modificación del valor de una clave, 246 STRING, 13
Módulos, 86 subíndices, 163
multiparadigma, 10 subrutina, 64
multiplataforma, 10 subrutinas, 64
Múltiples valores de retorno, 171 sum(), 191
262
Introducción a la Programación en Python
263
Introducción a la Programación en Python
REFERENCIAS
Cevantes, O., Báez, D., Arízaga, A. & Castillo, E. (2017). Python con aplicaciones a las
matemáticas, ingeniería y finanzas. Ciudad de México, México: Alfaomega
Grupo Editor S.A.
Pérez, A. (2016). Python Fácil. Ciudad de México, México: Alfaomega Grupo Editor
S.A.
264