Está en la página 1de 84

MANUAL DE LENGUAJE DE PROGRAMACIÓN PYTHON

1
MANUAL DE LENGUAJE DE PROGRAMACIÓN PYTHON

MARÍA ISABEL LANDERAS PILCO

MANUAL DE LENGUAJE DE
PROGRAMACIÓN
EN PYTHON

FONDO EDITORIAL DE LA UNIVERSIDAD PRIVADA ANTENOR ORREGO

3
María Isabel Landeras Pilco

MANUAL DE LENGUAJE
DE PROGRAMACIÓN EN PYTHON
© María Isabel Landeras Pilco

Editado por:
© UNIVERSIDAD PRIVADA ANTENOR ORREGO
Av. América Sur N° 3145
Urb. Monserrate, Trujillo, Perú
Teléfono (51) 44 604444, anexo 2087
www.upao.edu.pe

Hecho el depósito legal en la Biblioteca Nacional del


Perú, N° 2018 -
ISBN N°
500 ejemplares
Primera edición agosto 2018

Se terminó de imprimir en septiembre de 2018 en:

4
MANUAL DE LENGUAJE DE PROGRAMACIÓN PYTHON

DEDICATORIA

A Dios Todopoderoso por darme la oportunidad


de vivir, comprender que el fin de todo ser humano
es ser feliz y, que el único medio para lograrlo es
siguiendo una ruta de cultivo espiritual.

A la memoria de mi padre Dr. Ing° Julio Víctor Landeras Jones


Y mi madre Elva Pilco Deza Vda. de Landeras, por su inmenso amor y apoyo
Incondicional para alcanzar mis metas.

Dedico este trabajo con todo mi amor a mi hijo Gianfranco.


Además de ser una bendición en mi vida, su cariño, alegría y
luz brillan en cada línea de estas páginas.

5
María Isabel Landeras Pilco

6
MANUAL DE LENGUAJE DE PROGRAMACIÓN PYTHON

INTRODUCCIÓN GENERAL

Los estudiantes universitarios de las carreras de ingeniería socializan,


se comunican e interactúan a través de las nuevas tecnologías.
Dichas tecnologías cumplen un papel fundamental en los actuales
procesos de enseñanza/aprendizaje. El aprendizaje a través de
experiencias “del mundo real”, mediadas por tecnología, puede
aportar al desarrollo de individuos autónomos, críticos, creativos,
capaces de resolver problemas, buscar alternativas, probar distintos
caminos, etc. Este aprender en lo “real” les permite ver cómo se dan
determinados procesos con los condicionantes propios de cada
contexto, ensayando a través de prueba y error y así poder desarrollar
capacidades las cuales puedes ser aplicadas en el mundo real, tanto
para el ámbito laboral y de investigación. (Needham, 2017)
Introducir a docentes y estudiantes al mundo de la programación
con Python no sólo apunta a un aprendizaje técnico, sino que,
mediante la misma, se desarrollan una serie de habilidades, como
el pensamiento analítico o de solución de problemas, que son muy
requeridos en los trabajos que tienen que ver con tecnología y ciencia,
pero que también se pueden aplicar a otras áreas como ingeniería
(inteligencia artificial), medicina, educativa, etc. (Summerfield, 2010)
El objetivo de este manual es introducir los primeros conceptos de la
programación a través de la implementación de algoritmos escritos
en el lenguaje Python.

7
María Isabel Landeras Pilco

8
MANUAL DE LENGUAJE DE PROGRAMACIÓN PYTHON

INTRODUCCIÓN A PYTHON

¿Qué es Python?
Python es un lenguaje de programación creado por Guido van Rossum a
principios de los años 90 cuyo nombre está inspirado en el grupo de cómicos
ingleses “Monty Python”. Es un lenguaje similar a Perl, pero con una sintaxis muy
limpia y que favorece un código legible. Se trata de un lenguaje interpretado o
de script, con tipado dinámico, fuertemente tipado, multiplataforma y orientado
a objetos. (Matthes, 2016)
Python es un lenguaje de programación poderoso y fácil de aprender. Cuenta con
estructuras de datos eficientes y de alto nivel y un enfoque simple pero efectivo
a la programación orientada a objetos. La elegante sintaxis de Python y su tipado
dinámico, junto con su naturaleza interpretada, hacen de éste un lenguaje ideal
para scripting y desarrollo rápido de aplicaciones en diversas áreas y sobre la
mayoría de las plataformas. (Lutz, 2013)

CARACTERÍSTICAS

Lenguaje interpretado o de script

Un lenguaje interpretado o de script es aquel que se ejecuta utilizando un


programa intermedio llamado intérprete, en lugar de compilar el código a lenguaje
máquina que pueda comprender y ejecutar directamente una computadora
(lenguajes compilados). (Matthes, 2016)

Tipado dinámico

La característica de tipado dinámico se refiere a que no es necesario declarar el


tipo de dato que va a contener una determinada variable, sino que su tipo se
determinará en tiempo de ejecución según el tipo del valor al que se asigne, y el
tipo de esta variable puede cambiar si se le asigna un valor de otro tipo. (Sweigart,
2015)

Fuertemente tipado

No se permite tratar a una variable como si fuera de un tipo distinto al que tiene, es
necesario convertir de forma explícita dicha variable al nuevo tipo previamente.
Por ejemplo, si tenemos una variable que contiene un texto (variable de tipo
cadena o string) no podremos tratarla como un número (sumar la cadena “9” y el
número 8). En otros lenguajes el tipo de la variable cambiaría para adaptarse al
comportamiento esperado, aunque esto es más propenso a errores. (Lutz, 2013)

Multiplataforma

El intérprete de Python está disponible en multitud de plataformas (UNIX, Solaris,


Linux, DOS, Windows, OS/2, Mac OS, etc.) por lo que si no utilizamos librerías
específicas de cada plataforma nuestro programa podrá correr en todos estos
sistemas sin grandes cambios. (Summerfield, 2010)

9
María Isabel Landeras Pilco

Orientado a objetos

La orientación a objetos es un paradigma de programación en el que los


conceptos del mundo real relevantes para nuestro problema se trasladan a clases
y objetos en nuestro programa. La ejecución del programa consiste en una serie
de interacciones entre los objetos (Summerfield, 2010).

Lenguajes de alto nivel

C es un lenguaje de nivel medio.


Los leguajes de alto nivel son interpretados.
No se definen tipos de datos.
Tienen una máquina de tiempo de ejecución (para uso de memoria con un
recolector de basura).
Se puede empotrar funciones en C dentro de Python si se necesita eficiencia.

¿Por qué Python?

Python es un lenguaje que todo el mundo debería conocer. Su sintaxis simple,


clara y sencilla; el tipado dinámico, el gestor de memoria, la gran cantidad de
librerías disponibles y la potencia del lenguaje, entre otros, hacen que desarrollar
una aplicación en Python sea sencillo, muy rápido y, lo que es más importante,
divertido. La sintaxis de Python es tan sencilla y cercana al lenguaje natural que
los programas elaborados en Python parecen pseudocódigo. Por este motivo se
trata además de uno de los mejores lenguajes para comenzar a programar. (Lutz,
2013)

Ventajas de aprender Python

• Es un lenguaje de alto nivel.


• Es fácil construir programas rápidamente.
• Es uno de los lenguajes más usados.
• Es el lenguaje muy usado en Machine Learning.

Herramientas básicas

Existen dos formas de ejecutar código Python. Podemos escribir líneas de código
en el intérprete y obtener una respuesta del intérprete para cada línea (sesión
interactiva) o bien podemos escribir el código de un programa en un archivo de
texto y ejecutarlo (Matthes, 2016).

10
MANUAL DE LENGUAJE DE PROGRAMACIÓN PYTHON

ÍNDICE GENERAL

Pág.

13. I. UNIDAD : EDITOR DE TEXTO SUBLIME


14. 1.1. Funciones Python.
15. 1.2. Trabajando con variables – sublime.
16. 1.3. Cadenas de texto (String).
16. 1.4. Métodos UPPER y LOWER.
16. 1.5. Concatenar variables.
17. 1.6. Tabulación y espacios en blanco con caracteres especiales.
19. 1.7. Números.
19. 1.8. Jerarquía de operaciones.
19. 1.9. Decimales(Floats).
21. II. UNIDAD : LISTAS
21. 2.1. ¿Qué es una lista?
21. 2.2. Accediendo a elementos de la Lista.
22. 2.3. Accediendo a personalizar nuestros valores.
22. 2.4. Modificando elementos en una lista.
22. 2.5. Agregando valores a nuestra lista.
23. 2.6. Insertando elementos en una lista.
23. 2.7. Eliminando elementos de nuestra lista.
25. 2.8. Utilizando la función “remove”.
25. 2.9. Ordenando nuestra lista utilizando la función “SORT()”.
27. 2.10. Índice fuera de Rango.
28. 2.11. Utilizamos el Bucle (Loop) FOR.
30. 2.12. Utilizando la función “range()”.
32. 2.13. Lista de comprensiones.
32. 2.14. Utilizando lista de compresiones.
32. 2.15. Separando elementos de una lista.
33. 2.16. Utilizando el método[:]
34. 2.17. Tuplas.
35. 2.18. Diccionarios.
36. 2.19. Agregando nuevos pares clave-valor.
36. 2.20. Iniciando con un diccionario vacío.

11
María Isabel Landeras Pilco

Pág.

37. 2.21. Utilizando condicionales en el diccionario.


38. 2.22. Eliminando valores del diccionario.
38. 2.23. Recorriendo el contenido del diccionario utilizando FOR.
39. 2.24. Listas de diccionarios.
41. 2.25. Diccionario compuesto por listas.
41. 2.26. Diccionario de diccionarios.
43. III. UNIDAD : ESTRUCTURAS SELECTIVAS
43. 3.1. Condicional “if” y el operador de igualdad (==).
45. 3.2. Sintaxis de una declaración de IF-ELSE simple.
46. 3.3. Utilizando múltiples bloques ELIF.
48. 3.4. Utilizando IF con listas.
49. 3.5. Utilizando listas múltiples.
51. IV. UNIDAD : BUCLES
51. 4.1. Bucle “WHILE”.
52. 4.2. Utilizando “Flags” (banderas).
53. 4.3. Usando ”continue” en el bucle “while”.
54. 4.4. Utilizando “For” y Listas dentro del bucle “While”.
55. 4.5. Utilizamos diccionarios con el bucle “while”.
57. V. UNIDAD : FUNCIONES Y MÓDULOS
57. 5.1. Funciones.
61. 5.2. Agregamos un nuevo elemento a nuestro diccionario.
61. 5.3. Usando funciones con bucle “WHILE”.
62. 5.4. Pasando como parámetro una lista en nuestra función.
65. 5.5. Modulos.
66. 5.6. Utilizando Alias con nuestras funciones.
69. VI. UNIDAD : PROGRAMACIÓN ORIENTADA A OBJETOS
69. 6.1. Clase.
78. 6.2. Herencia.
78. 6.3. Importando clases.
79. 6.4. Importando una clase simple.
83. REFERENCIAS BIBLIOGRÁFICAS

12
MANUAL DE LENGUAJE DE PROGRAMACIÓN PYTHON

MANUAL DE LENGUAJE DE
PROGRAMACIÓN
EN PYTHON
I. UNIDAD : EDITOR DE TEXTO SUBLIME
Primero debemos verificar que este habilitado la opción en el menú -> Tools -> Build System ->
Python. En Windows escribimos en Inicio la palabra “cmd”, nos va a cargar una ventana del sistema
de color negra.

La siguiente imagen muestra la consola de comando de Windows (CMD)

Una vez cargada la pantalla, escribimos la palabra: “python” y presionamos Enter.

A continuación, la consola nos mostrara la versión de Python instalada en nuestra computadora.

13
María Isabel Landeras Pilco

1.1. Funciones Python


print(): Esta función permite escribir en pantalla lo que ponemos dentro del paréntesis.
Ejemplo:
Escriba en pantalla su nombre
1>>> print(“Maria”)
Resultado en Consola
Maria
Pasos en el editor Sublime
1° Guardar el nombre del archivo.

2° Guardar el archivo en una ubicación deseada, teniendo en cuenta el nombre seguido de la


extensión .py, en este caso: “hola.py”

14
MANUAL DE LENGUAJE DE PROGRAMACIÓN PYTHON

3°. Codificamos nuestro código en el editor Sublime, para ejecutar el código debemos presionar
“Crtl + B”. Puede que pregunte la primera vez mostrando un mensaje, el cual deberá seleccionar
la opción “Python”.

1.2. Trabajando con variables – sublime


Variable: nos permite almacenar valores, en este ejemplo: vamos almacenar un nombre en la
variable “nombre”.

Nota: (1) Se asigna a la variable nombre el valor “Maria Isabel”, (2) Se imprime en pantalla la
variable con el contenido asignado.
Presionar Ctrl + B para ejecutar código

Código:
1>>> nombre = “Maria Isabel”
2>>> print(nombre)

Resultado en consola
Maria Isabel

Vamos a mostrar otro mensaje de texto, almacenado en la misma variable:

Código:
1>>> nombre = “Maria Isabel”
2>>> print(nombre)
3>>> nombre = “Bienvenida al curso Python!”
4>>> print(nombre)

Resultado en consola
Maria Isabel
Bienvenida al curso Python!

15
María Isabel Landeras Pilco

1.3. Cadenas de texto (String)


Python permite escribir cadenas de texto utilizando comillas doble y simple (“” ‘’).
Nota:
(1) En caso que mi texto lleve comillas dobles, se deberá trabajar al inicio y al final con comillas
simples.

Ejemplo de texto con comilla dobles:


Código:
1>>> mensaje = “Mi nombre es Maria Isabel”
2>>> print(mensaje)

Resultado en consola
Mi nombre es Maria Isabel

(2) Utilizamos el método llamado “title”, que nos permite poner en mayúscula la primera letra de
cada palabra dentro de la cadena: “nombre.title()”
Código:
1>>> nombre = ‘maria isabel’
2>>> print(nombre.title())

Resultado en consola
Maria Isabel

1.4. Métodos UPPER y LOWER

UPPER (): Sirve para poner en mayúscula mi variable cadena (nombre)


Nota:
(2) Se utiliza el método “upper” para poner en mayúsculas el contenido de
la variable nombre.
Código:
1>>> nombre = ‘maria isabel’
2>>> print(nombre.upper())

Resultado en consola
MARIA ISABEL

LOWER (): Sirve para poner en minúscula mi variable cadena (nombre)


Nota: (2) Se utiliza el método “lower” para poner en minusculas el
contenido de la variable nombre.
Código:
1>>> nombre = ‘Maria Isabel’
2>>> print(nombre.lower())

Resultado en consola
maria Isabel

1.5. Concatenar variables

Para poder concatenar variables utilizamos el símbolo “+”:

Tenemos 2 variables: La variable “primer_nombre” que almacena el primer nombre y la variable


“segundo_nombre” que almacena el segundo nombre y deseamos mostrar el nombre completo

16
MANUAL DE LENGUAJE DE PROGRAMACIÓN PYTHON

“Maria Isabel”) que será almacenado en la variable: “total_nombre”, para ello realizamos una
concatenación de variables: total_nombre = primer_nombre + “ “ + segundo_nombre

Nota: (3) Se almacena el valor de la concatenación de las variables “primer_


nombre” y “segundo_nombre”

Código:
1>>> primer_nombre = ‘Maria’
2>>> segundo_nombre = ‘Isabel’
3>>> total_nombre = primer_nombre + “ “ + segundo_nombre
4>>> print(total_nombre)

Resultado en consola
Maria Isabel

Deseamos personalizar nuestro mensaje (3) anteponiendo una cadena de bienvenida. Hemos
concatenado nuestro mensaje de bienvenida a nuestra variable “total_nombre”.
Además, hacemos uso del método “title”.

Código:
1>>> primer_nombre = ‘maria’
2>>> segundo_nombre = ‘isabel’
3>>> total_nombre = primer_nombre + “ “ + segundo_nombre
4>>> print(“Bienvenida, “ + total_nombre.title() + “!”)

Resultado en consola
Maria Isabel

1.6. Tabulación y espacios en blanco con caracteres especiales

Si deseamos ingresar una tabulación en nuestra cadena, necesitamos ingresar un carácter especial.
“\t” (Alt+92)
Nota: Si deseamos ingresar un espacio en blanco o salto de línea en nuestra cadena, (2) necesitamos
ingresar un carácter especial. “\n” (Alt+92)

Código:
1>>> print(“Python”)
2>>> print(“\tPython”)

Resultado en consola
Python
Python

Código:
1>>> print(“Python”)
2>>> print(“\nPython”)

Resultado en consola
Python

Python

17
María Isabel Landeras Pilco

(1) Ejemplo de utilización de salto de línea utilizando carácter especial(“\n”):


Mostramos los lenguajes de programación en líneas separadas.
Código:
1>>> print(“Lenguajes:\nPython\nC\nJavaScript”)

Resultado en consola
Lenguajes:
Python
C
JavaScript

(1) Ejemplo de utilización de salto de línea utilizando los caracteres especiales (“\n” y “\t”):
Mostramos los lenguajes de programación en líneas separadas y tabuladas.
Código:
1>>> print(“Lenguajes:\n\tPython\n\tC\n\tJavaScript”)

Resultado en consola
Lenguajes:
Python
C
JavaScript

(3) Se utiliza la función “rstrip” para eliminar espacios en blanco del lado derecho, (5) Se utiliza la
función “lstrip” para eliminar espacios en blanco del lado izquierdo y (7) para eliminar espacios en
blanco en las cadenas, tanto al inicio como al final.
Código:
1>>> lenguaje_favorito = ‘ Python ‘
2>>> print(lenguaje_favorito)
3>>> lenguaje_favorito = lenguaje_favorito.rstrip()
4>>> print(lenguaje_favorito)
5>>> lenguaje_favorito = lenguaje_favorito.lstrip()
6>>> print(lenguaje_favorito)
7>>> lenguaje_favorito = lenguaje_favorito.strip()
8>>> print(lenguaje_favorito)

Resultado en consola
Python
Python
Python
Python

(1)En caso la cadena de caracteres contenga comillas simples(‘), se deberá poner a los extremos de
la cadena comillas dobles(“ ” )
Código:
1>>> mensaje = “Esto es un mensaje de Python’s”
2>>> print(mensaje)

Resultado en consola
Esto es un mensaje de Python’s

18
MANUAL DE LENGUAJE DE PROGRAMACIÓN PYTHON

Nota: En la versión de Python 2, no es necesario poner paréntesis cuando se desea imprimir en


pantalla:

Ejemplo valido en Python 2: print “esto es un mensaje”


Ejemplo valido en Python 3: print (“esto es un mensaje”)

1.7. Números

Enteros (Integers): En Python se pueden realizar operaciones aritméticas directamente. La
operación potencia está dado por el símbolo **

Código:
1>>> print(3 - 2)
2>>> print(2 * 3)
3>>> print(3 / 2)
4>>> print(2 ** 3)

Resultado en consola
1
6
1.5
8

1.8. Jerarquía de operaciones

Tenemos que tener en cuenta la prioridad de los operadores de mayor (*, / , **) y menor jerarquía
(+, -)
Nota: La operación potencia está dado por el símbolo **
Ejemplo: Sin paréntesis, teniendo en cuenta los operadores

Código:
1>>> print (2 + 3*4)

Resultado en consola
14

Con paréntesis
Código:
1>>> print ((2 + 3) * 4)

Resultado en consola
20

1.9. Decimales (Floats):

En Pyhton se pueden realizar operaciones aritméticas directamente.


Ejemplo:
Código:
1>>> print(0.1 + 0.1)
2>>> print(0.2 + 0.2)
3>>> print(2 * 0.1)
4>>> print(2 * 0.2)

19
María Isabel Landeras Pilco

Resultado en consola
0.2
0.4
0.2
0.4

Nota: Tener en cuenta que se tiene que indicar explícitamente cuando se tiene que concatenar
variables de tipo carácter y numéricos.

Ejemplo:
Se desea imprimir en pantalla lo siguiente:

Código:
1>>> edad = 23
2>>> mensaje = “Feliz “ + edad + “avo Cumpleaños!”
3>>> print(mensaje)

Resultado en consola
File “C:\Users\Usuario\Desktop\PythonCurso\Ch01\hola.py”, line 2, in
<module>

Tener en cuenta que el error se genera debido a que se está tratando de imprimir una variable de
tipo entera(edad) concatenada con cadena de caracteres. (2) La solución es realizar una conversión
explicita con el método: “str()”, en los cuales se tendrá que poner la variable entera dentro del
paréntesis.
Código:
1>>> edad = 23
2>>> mensaje = “Feliz “ + str(edad) + “avo Cumpleaños!”
3>>> print(mensaje)

Resultado en consola
Feliz 23avo Cumpleaños!

Comentarios
Es importante poner comentarios en los programas ya que nos permiten saber por parte del
programador que hace su código o algún mensaje importante a tomar en cuenta. (1) Para poder
escribir comentarios es necesario utilizar el carácter (“#”) delante del comentario.

Código:
1>>> #Este programa imprime un mensaje de Cumpleaños
2>>> edad = 23
3>>> mensaje = “Feliz “ + str(edad) + “avo Cumpleaños!”
4>>> print(mensaje)

El siguiente comando mostrara los principios de Python:

1>>> import this

20
MANUAL DE LENGUAJE DE PROGRAMACIÓN PYTHON

II. UNIDAD : LISTAS

2.1. ¿Qué es una lista?


Una lista es una colección de tipos de objetos (cadenas de caracteres, enteros, decimales, etc).

Ejemplo: Tenemos una lista que se llama “nombres” y (1) almacena los nombres de personas:
nombres = [‘juan’, ‘pedro’,’david’]

Código:
1>>> nombres = [‘juan’, ‘pedro’, ‘david’]
2>>> print (nombres)

Resultado en consola
[‘juan’, ‘pedro’, ‘david’]

2.2. Accediendo a elementos de la Lista


Para poder acceder a un valor de la lista (1) es necesario asignar el índice que ocupa esta. Los índices
en una lista empiezan en 0 y finalizan en el N° de elementos - 1
Por ejemplo: Deseamos recuperar el valor de “David”

Código:
1>>> nombres = [‘juan’,’pedro’,’david’]
2>>> print(nombres[2])

Resultado en consola
david

Utilizando función “title” con listas. (2) Recordando que la función “title” pone en mayúscula la
primera letra del valor consultado ( pedro -> Pedro)

Código:
1>>> nombres = [‘juan’,’pedro’,’david’]
2>>> print(nombres[1].title())

Resultado en consola
Pedro

Si se desea acceder al último valor de la lista, (2) tendremos que utilizar el índice -1

Código:
1>>> nombres = [‘juan’,’pedro’,’david’]
2>>> print (nombres[-1])

Resultado en consola
david

Si se desea acceder a los valores de forma inversa se tendría que ir incrementando el valor de los
índices pero con signo negativo. (2) Por ejemplo si deseamos acceder al penúltimo valor de la lista
tendríamos que indicar como índice (-2) y así sucesivamente.

Código:
1>>> nombres = [‘juan’,’pedro’,’david’]

21
María Isabel Landeras Pilco

2>>> print (nombres[-2])



Resultado en consola
pedro

2.3. Accediendo a personalizar nuestros valores
Deseamos (2) mostrar un mensaje personalizado incluyendo un valor de mi lista “nombres”
Ejemplo: Deseamos dar la Bienvenida con un mensaje a “pedro”

Código:
1>>> nombres = [‘juan’,’pedro’,’david’]
2>>> mensaje = “Bienvenido al curso de Python “ + nombres[1].
title() + “.”
3>>> print(mensaje)

Resultado en consola
Bienvenido al curso de Python Pedro.

Ejemplo: Dar la bienvenida a dos personas de la lista


Código:
1>>> nombres = [‘juan’,’pedro’,’david’]
2>>> mensaje = “Bienvenido al curso de Python “ + nombres[1].
title() + “ y “ + nombres[2].title() + “.”
3>>> print(mensaje)

Resultado en consola
Bienvenido al curso de Python Pedro y David.

2.4. Modificando elementos en una lista


Si deseamos modificar un elemento en nuestra lista debemos de hacerlo de la siguiente manera:
Por ejemplo: Deseamos modificar el valor de ‘pedro’ en nuestra lista nombres, la cual ocupa el índice
“1” reemplazando por el valor ‘pepe’. Tenemos que tener en cuenta la posición que ocupa nuestro
valor a modificar.

Código:
1>>> nombres = [‘juan’,’pedro’,’david’]
2>>> print(nombres)
3>>> nombres[1] = ‘pepe’
4>>> print(nombres)

Resultado en consola
[‘juan’, ‘pedro’, ‘david’]
[‘juan’, ‘pepe’, ‘david’]

2.5. Agregando valores a nuestra lista


Utilizamos (3) la función “append()” para poder agregar un nuevo valor al final de la lista.
Ejemplo: Deseamos agregar el nombre “Julio” a nuestra lista nombres

Código:
1>>> nombres = [‘juan’,’pedro’,’david’]
2>>> print(nombres)

22
MANUAL DE LENGUAJE DE PROGRAMACIÓN PYTHON

3>>> nombres.append(‘julio’)
4>>> print (nombres)

Resultado en consola
[‘juan’, ‘pedro’, ‘david’]
[‘juan’, ‘pedro’, ‘david’, ‘julio’]

Podemos utilizar la función “append()” para que nuestra lista vaya creciendo dinámicamente.
Ejemplo: Deseamos crear una lista vacía llamada “cursos” en la cual iremos agregando elementos
(nombre de cursos) utilizando la función “append ()”

Código:
1>>> cursos = []
2>>> cursos.append(‘matematicas’)
3>>> cursos.append(‘fisica’)
4>>> cursos.append(‘química’)
5>>> print(cursos)

Resultado en consola
[‘matematicas’, ‘fisica’, ‘química’]

2.6. Insertando elementos en una lista


A diferencia de la función “append” que solo agrega un nuevo elemento al final de la lista, (2) la
función “insert()”, lo que hace es insertar un nuevo valor en una posición(indice) deseada. Necesita
dos parámetros, el primero indica la posición (índice) y el segundo el valor

Ejemplo: Deseamos insertar un nuevo curso en la posición actual del curso “física”

Código:
1>>> cursos = [“matematicas”, “fisica”, “química”]
2>>> cursos.insert(1,’metodologia de la investigación’)
3>>> print (cursos)

Resultado en consola
[‘matematicas’, ‘metodologia de la investigacion’,
‘fisica’, ‘quimica’]

2.7. Eliminando elementos de nuestra lista


Para poder eliminar elementos de nuestra lista, (3) utilizamos la función “del” seguida del nombre de
nuestra lista indicando la posición (índice) a eliminar.

Ejemplo: Deseamos eliminar el curso “química”

Código:
1>>> cursos = [“matematicas”, “fisica”, “química”]
2>>> print (cursos)
3>>> del cursos[2]
4>>> print(cursos)

Resultado en consola
[‘matematicas’, ‘fisica’, ‘química’]
[‘matematicas’, ‘fisica’]

23
María Isabel Landeras Pilco

Eliminando el último elemento de la lista (3) utilizando la función “pop ()”. Si deseamos eliminar el
último elemento de nuestra lista, utilizamos la función pop() la cual a la vez nos proporciona el valor
del elemento eliminado.

Ejemplo: Deseamos eliminar el último curso que se agregó a la lista, en este caso el curso de “química”

Código:
1>>> cursos = [“matematicas”, “fisica”, “quimica”]
2>>> print (cursos)
3>>> nueva_lista = cursos.pop()
4>>> print(cursos)
5>>> print(nueva_lista)

Resultado en consola
[‘matematicas’, ‘fisica’, ‘quimica’]
[‘matematicas’, ‘fisica’]
quimica

Ejemplo: Deseo mostrar en pantalla el último curso que he llevado.

Código:
1>>> cursos = [“matematicas”, “fisica”, “quimica”]
2>>> print (cursos)
3>>> nueva_lista = cursos.pop()
4>>> print(cursos)
5>>> print(nueva_lista)
6>>> print(“Mi ultimo curso que lleve en el ciclo fue “ + nueva_
lista.title() + “.”)

Resultado en consola
[‘matematicas’, ‘fisica’, ‘quimica’]
[‘matematicas’, ‘fisica’]
quimica
Mi ultimo curso que lleve en el ciclo fue Quimica.

Si se desea eliminar un elemento de la lista, (2) utilizamos la función “pop()” incluyendo un argumento
que indica la posición del elemento a eliminar.
Ejemplo: Deseo eliminar y obtener el primer curso que he llevado.

Código:
1>>> cursos = [“matematicas”, “fisica”, “quimica”]
2>>> primer_curso = cursos.pop(0)
3>>> print(“El primer curso que lleve fue: “ + primer_curso.
title() + “.”)

Resultado en consola
El primer curso que lleve fue: Matematicas.

24
MANUAL DE LENGUAJE DE PROGRAMACIÓN PYTHON

2.8. Utilizando la función “remove”


Ejemplo: Deseamos eliminar un elemento de la lista pero desconocemos su posición, (3) para ello
utilizamos la función “remove()”, en la cual tendremos que poner como parámetro el valor que
deseamos eliminar en la lista.

Código:
1>>> cursos = [“matematicas”, “fisica”, “quimica”]
2>>> print(cursos)
3>>> cursos.remove(“fisica”)
4>>> print(cursos)

Resultado en consola
[‘matematicas’, ‘fisica’, ‘quimica’]
[‘matematicas’, ‘quimica’]

Podemos a la vez pasar (4) como parámetro una variable que almacene el valor a eliminar de la lista:

Código:
1>>> cursos = [“matematicas”, “fisica”, “quimica”]
2>>> print(cursos)
3>>> curso_eliminar = “fisica”
4>>> cursos.remove(curso_eliminar)
5>>> print(cursos)

Resultado en consola
[‘matematicas’, ‘fisica’, ‘quimica’]
[‘matematicas’, ‘quimica’]

2.9. Ordenando nuestra lista utilizando la función “SORT()”


Si deseamos (2) ordenar nuestros valores alfabéticamente dentro de una lista podemos utilizar la
función “sort()”.
Ejemplo: Deseamos ordenar la siguiente lista alfabéticamente

Código:
1>>> cursos = [“matematicas”, “fisica”, “quimica”,
“lenguaje”,”metodologia”, “formativa”]
2>>> cursos.sort()
3>>> print(cursos)

Resultado en consola
[‘fisica’, ‘formativa’, ‘lenguaje’, ‘matematicas’,
‘metodologia’, ‘quimica’]

De igual manera si deseamos obtener una lista de inversa alfabéticamente (2) tendremos que pasar
como parámetro “reverse=True”

Código:
1>>> cursos = [“matematicas”, “fisica”, “quimica”,
“lenguaje”,”metodologia”, “formativa”]
2>>> cursos.sort(reverse=True)
3>>> print(cursos)

25
María Isabel Landeras Pilco

Resultado en consola
[‘quimica’, ‘metodologia’, ‘matematicas’, ‘lenguaje’,
‘formativa’, ‘fisica’]

Si deseamos mantener nuestra lista original (4) utilizamos la función “sorted()” , la cual nos permite
mantener nuestra lista original.

1>>> cursos = [“matematicas”, “fisica”, “quimica”,


“lenguaje”,”metodologia”, “formativa”]
2>>> print(cursos)
3>>> print(“\nCursos ordenados Alfabeticamente: “)

4>>> print(sorted(cursos))
5>>> print(“\nNuestra lista de cursos original: “)
6>>> print(cursos)

Resultado en consola
[‘matematicas’, ‘fisica’, ‘quimica’, ‘lenguaje’,
‘metodologia’, ‘formativa’]

Cursos ordenados Alfabeticamente:


[‘fisica’, ‘formativa’, ‘lenguaje’, ‘matematicas’,
‘metodologia’, ‘quimica’]

Nuestra lista de cursos original:


[‘matematicas’, ‘fisica’, ‘quimica’, ‘lenguaje’,
‘metodologia’, ‘formativa’]

Si deseamos invertir las posiciones de los elementos de la lista sin tomar en cuenta el orden alfabético
(3) tendremos que utilizar la función “reverse()”

Código:
1>>> cursos = [“matematicas”, “fisica”, “quimica”,
“lenguaje”,”metodologia”, “formativa”]
2>>> print(cursos)
3>>> cursos.reverse()
4>>> print(cursos)

Resultado en consola
[‘matematicas’, ‘fisica’, ‘quimica’, ‘lenguaje’,
‘metodologia’, ‘formativa’]
[‘formativa’, ‘metodologia’, ‘lenguaje’, ‘quimica’,
‘fisica’, ‘matematicas’]

Si deseamos saber la cantidad de elementos que tiene nuestra lista, (2) debemos de utilizar la
función “len()”
Ejemplo: Imprimir la cantidad de elementos de nuestra lista cursos.

Código:
1>>> cursos = [“matematicas”, “fisica”, “quimica”,
“lenguaje”,”metodologia”, “formativa”]

26
MANUAL DE LENGUAJE DE PROGRAMACIÓN PYTHON

2>>> print(len(cursos))

Resultado en consola
6

2.10. Indice fuera de rango:


Tener en cuenta que si (2) tratamos de acceder a una posición que no se encuentra en nuestra lista
nos va a generar un error: “Index out Range”.
Ejemplo: Se desea acceder al índice “6” de nuestra lista cursos, la cual solo tiene índices del “0 al 5”

Código:
1>>> cursos = [“matematicas”, “fisica”, “quimica”,
“lenguaje”,”metodologia”, “formativa”]
2>>> print(cursos[6])

Resultado en consola
Traceback (most recent call last):
File “C:\Users\prueba.py”, line 2, in <module>
print(cursos[6])
IndexError: list index out of range

Si deseamos (2) acceder al último elemento de nuestra lista podemos utilizar el índice “-1”:

Código:
1>>> cursos = [“matematicas”, “fisica”, “quimica”,
“lenguaje”,”metodologia”, “formativa”]
2>>> print(cursos[-1])

Resultado en consola
formativa

Si deseamos acceder a una posición de una lista que no tiene elementos, nos va a generar un error
de tipo “índice fuera de rango”

Código:
1>>> cursos = []
2>>> print(cursos[-1])

Resultado en consola
Traceback (most recent call last):
File “C:\Users\Arturo\Desktop\prueba.py”, line 2, in
<module>
print(cursos[-1])
IndexError: list index out of range

Deseamos imprimir los elementos de una lista:


Código:
1>>> cursos = [“matematicas”, “fisica”, “quimica”]
2>>> print (cursos[0])
3>>> print (cursos[1])
4>>> print (cursos[2])

27
María Isabel Landeras Pilco

Resultado en consola
matematicas
fisica
quimica

¿Qué pasaría si tuviéramos una lista de 100 elementos y nos pedirían que los mostremos en pantalla?

Vamos a utilizar un (2) método que nos permite realizar tareas repetitivas, en nuestro caso recorrer
una lista completa sea cualquier número de elementos.

2.11. Utilizamos el Bucle (Loop) FOR

Código:
1>>> cursos = [“matematicas”, “fisica”, “quimica”]
2>>> for x in cursos :
3>>> print(x)

Nota: Donde “x” es el valor que tomara cada elemento de la lista.

Resultado en consola
matematicas
fisica
quimica

Podemos (3) personalizar nuestros resultados dentro de nuestro bucle “for”

Código:
1>>> cursos = [“matematicas”, “fisica”, “quimica”]
2>>> for x in cursos :
3>>> print(x.title() + “, es curso de primer ciclo de ing.
civil upao!”)

Resultado en consola
Matematicas, es curso de primer ciclo de ing. civil upao!
Fisica, es curso de primer ciclo de ing. civil upao!
Quimica, es curso de primer ciclo de ing. civil upao!

Si deseamos ejecutar más de una sentencia por cada elemento de nuestra lista.

1>>> cursos = [“matematicas”, “fisica”, “quimica”]


2>>> for x in cursos :
3>>> print(x.title() + “, es curso de primer ciclo de ing.
civil upao!”)
4>>> print(“A mi me gusta el curso de “ + x.title() + “.\n”)

Resultado en consola
Matematicas, es curso de primer ciclo de ing. civil upao!
A mi me gusta el curso de Matematicas.

28
MANUAL DE LENGUAJE DE PROGRAMACIÓN PYTHON

Fisica, es curso de primer ciclo de ing. civil upao!


A mi me gusta el curso de Fisica.

Si deseamos incluir algunas sentencias después de nuestro bucle “for” es necesario no incluir
sangrado en nuestra línea de código, de preferencia incluir un (5) espacio después de nuestro for
para que no sea incluido en el bucle.

Código:
1>>>cursos = [“matematicas”, “fisica”, “quimica”]
2>>>for x in cursos :
3>>> print(x.title() + “, es curso de primer ciclo de ing.
civil upao!”)
4>>> print(“A mi me gusta el curso de “ + x.title() + “.\n”)

5>>>print(“Estoy muy contento por estudiar Ingenieria Civil en
UPAO”)

Resultado en consola
Matematicas, es curso de primer ciclo de ing. civil upao!
A mi me gusta el curso de Matematicas.

Fisica, es curso de primer ciclo de ing. civil upao!


A mi me gusta el curso de Fisica.

Quimica, es curso de primer ciclo de ing. civil upao!


A mi me gusta el curso de Quimica.

Tomar en cuenta si es que no incluimos sangrado en nuestro código tendremos el siguiente error:
Código:
1>>>cursos = [“matematicas”, “fisica”, “quimica”]
2>>>for x in cursos :
3>>>print(x)

Resultado en consola
IndentationError: expected an indented block

Tomar en cuenta el sangrado ya que si olvidamos ponerlo no será tomado en cuenta dentro de
nuestro Bucle “For”
1>>>cursos = [“matematicas”, “fisica”, “quimica”]
2>>>for x in cursos :
3>>> print(x.title() + “, es curso de primer ciclo de ing.
civil upao!”)
4>>>print(“A mi me gusta el curso de “ + x.title() + “.\n”)

Evitar poner (2) sangrado innecesario, solo se pone sangrado cuando trabajamos con estructuras
repetitivas o condicionales

El siguiente código mostraría un error!


Código:
1>>>mensaje = “Hola mundo!”

29
María Isabel Landeras Pilco

2>>> print(mensaje)

La forma correcta seria lo siguiente


Código:
1>>>mensaje = “Hola mundo!”
2>>>print(mensaje)

Tener en cuenta que es necesario agrupar con un sangrado nuestro código que pertenece a un bucle
“For”.(5) La última línea de código se va a repetir dentro del bucle debido a que tiene un sangrado.
Código:
1>>>cursos = [“matematica”, “fisica”, “quimica”]
2>>>for curso in cursos:
3>>> print(curso.title() + “, es un curso de primer ciclo!”)
4>>> print(“Pertenece a la escuela de Ing. Civil”)
5>>> print(“Ya quisiera llevar cursos de segundo ciclo”)

Resultado en consola
Matematica, es un curso de primer ciclo!
Pertenece a la escuela de Ing. Civil
Ya quisiera llevar cursos de segundo ciclo
Fisica, es un curso de primer ciclo!
Pertenece a la escuela de Ing. Civil
Ya quisiera llevar cursos de segundo ciclo
Quimica, es un curso de primer ciclo!
Pertenece a la escuela de Ing. Civil
Ya quisiera llevar cursos de segundo ciclo

No olvidar poner el símbolo “:” después del bucle “for”


En este (2) ejemplo se ha omitido el símbolo “:”

1>>>cursos = [“matematica”, “fisica”, “quimica”]


2>>>for curso in cursos
3>>> print(curso.title() + “, es un curso de primer ciclo!”)
4>>> print(“Pertenece a la escuela de Ing. Civil”)
5>>> print(“Ya quisiera llevar cursos de segundo ciclo”)

Resultado en consola
SyntaxError: invalid syntax

2.12. Utilizando la función “range()”:
Esta (1) función nos sirve para poder recorrer un rango de números utilizando el bucle “For”

Código:
1>>>for valores in range(1,5):
2>>> print(valores)

30
MANUAL DE LENGUAJE DE PROGRAMACIÓN PYTHON

Resultado en consola
1
2
3
4

Si deseamos (1) crear una lista partiendo de los valores de range(), lo haríamos de la siguiente
manera.
Código:
1>>>numeros = list(range(2,11))
2>>>print(numeros)

Resultado en consola
[2, 3, 4, 5, 6, 7, 8, 9, 10]

Si deseamos asignar un valor de incremento, tendrías que ingresar (1) un tercer parámetro a nuestra
función “range()”
Código:
1>>>numeros = list(range(2,11,2))
2>>>print(numeros)

Resultado en consola
[2, 4, 6, 8, 10]

Utilizando (2) la función “range()” y “For” para agregar elementos a una lista vacía

Código:
1>>>numeros = []
2>>>for numero in range(1, 11):
3>>> cuadrado = numero**2
4>>> numeros.append(cuadrado)
5>>>print(numeros)

Resultado en consola
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

Utilizamos nuestras funciones (2-4) de apoyo para calcular el menor(min), mayor(max) y la


suma(sum) de los elementos de nuestra lista.

Código:
1>>>numeros = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
2>>>print(min(numeros))
3>>>print(max(numeros))
4>>>print(sum(numeros))

Resultado en consola
0
9
45

31
María Isabel Landeras Pilco

2.13. Lista de Comprensiones:


Este tipo de lista es útil para poder ahorrar código, es un versión compacta.

Ejemplo: Deseamos obtener los cuadrados de los números comprendidos del 1 al 10


Sin utilizar lista de Compresiones:
Código:
1>>>valores = []
2>>>for valor in range(1,11):
3>>> cuadrado = valor**2
4>>> valores.append(cuadrado)
5>>>print(valores)

Resultado en Consola
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

2.14. Utilizando lista de compresiones:


Código:
1>>>valores = [valor**2 for valor in range(1,11)]
2>>>print(valores)

Resultado en consola
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

2.15. Separando elementos de una lista


Podemos utilizar el siguiente código para separar elementos dentro de una lista, (2) donde el primer
número hace referencia al índice inicial de la lista que le corresponde al elemento “matematicas”, el
segundo numero – 1 hace referencia al índice final o limite .

Código:
1>>>cursos = [‘matematicas’,’fisica’,’quimica’,’lenguaje’]
2>>>print (cursos[0:3])


Resultado en Consola
[‘matematicas’, ‘fisica’, ‘quimica’]

Código:
1>>>cursos = [‘matematicas’,’fisica’,’quimica’,’lenguaje’]
2>>>print (cursos[1:4])

Resultado en consola
[‘fisica’, ‘quimica’, ‘lenguaje’]

Si deseáramos los primeros N elementos:


Código:
1>>>cursos = [‘matematicas’,’fisica’,’quimica’,’lenguaje’]
2>>>print (cursos[:4])

Resultado en consola
[‘matematicas’, ‘fisica’, ‘quimica’, ‘lenguaje’]

32
MANUAL DE LENGUAJE DE PROGRAMACIÓN PYTHON

En el ejemplo anterior se imprime los 4 primeros elementos de nuestra lista.

En el caso que necesitemos (2) imprimir desde una posición X hasta el último valore de la lista.
Código:
1>>>cursos = [‘matematicas’,’fisica’,’quimica’,’lenguaje’]
2>>>print (cursos[1:])

Resultado en consola
[‘fisica’, ‘quimica’, ‘lenguaje’]

Si deseamos imprimir su equivalente utilizando índices negativos teniendo en cuenta que el último
valor de la lista es -1.
Código:
1>>>cursos = [‘matematicas’,’fisica’,’quimica’,’lenguaje’]
2>>>print (cursos[-3:])

Resultado en consola
[‘fisica’, ‘quimica’, ‘lenguaje’]

Utilizando “For” en nuestra lista


Código:
1>>>cursos = [‘matematicas’,’fisica’,’quimica’,’lenguaje’]
2>>>print (“Cursos de primer ciclo:”)
3>>>for curso in cursos[:3]:
4>>> print(curso.title())

Resultado en consola
Cursos de primer ciclo:
Matematicas
Fisica
Quimica

2.16. Utilizando el método [:]


Dentro de nuestra lista, el cual significa que deseamos capturar todos los elementos de una lista.

Código:
1>>>cursos = [‘matematicas’,’fisica’,’quimica’,’lenguaje’]
2>>>mis_cursos = cursos[:]
3>>>print(“Lista de cursos:”)
4>>>print(cursos)
5>>>print(“\nMis cursos son:”)
6>>>print(mis_cursos)

Resultado en consola
Lista de cursos:
[‘matematicas’, ‘fisica’, ‘quimica’, ‘lenguaje’]

Mis cursos son:


[‘matematicas’, ‘fisica’, ‘quimica’, ‘lenguaje’]

33
María Isabel Landeras Pilco

Si deseamos agregar elementos a nuestras listas:

Código:
1>>>cursos = [‘matematicas’,’fisica’,’quimica’,’lenguaje’]
2>>>mis_cursos = cursos[:]
3>>>cursos.append(‘historia’)
4>>>mis_cursos.append(‘geografia’)
5>>>print(“Lista de cursos:”)
6>>>print(cursos)
7>>>print(“\nMis cursos son:”)
8>>>print(mis_cursos)

Resultado en consola
Lista de cursos:
[‘matematicas’, ‘fisica’, ‘quimica’, ‘lenguaje’, ‘historia’]

Mis cursos son:


[‘matematicas’, ‘fisica’, ‘quimica’, ‘lenguaje’, ‘geografia’]

2.17. Tuplas:
Las tuplas son como las listas, a diferencia que no utilizamos corchetes “[ ]”, en vez de ello se utiliza
paréntesis “( )”. Además son inmutables, quiere decir que no se pueden cambiar el valor de sus
elementos.

Ejemplo: Deseamos crear una tupla que almacene dos valores (cursos)

Código:
1>>>cursos = (‘matematicas’,’fisica’)
2>>>print(cursos[0])
3>>>print(cursos[1])

Resultado en consola
matematicas
fisica

Dado que no podemos modificar un elemento de nuestra tupla, el siguiente código generaría un
error.
Código:
1>>>cursos = (‘matematicas’,’fisica’)
2>>>cursos[0] = “geografia”
3>>>print(cursos)

Resultado en consola
cursos[0] = “geografia”
TypeError: ‘tuple’ object does not support item assignment

Utilizamos (2) la sentencia “For” para poder acceder a los elementos de nuestra Tupla.

Código:
1>>>cursos = (“matematicas”, “quimica”)

34
MANUAL DE LENGUAJE DE PROGRAMACIÓN PYTHON

2>>>for curso in cursos:


3>>> print(curso)

Resultado en consola
matematicas
química

Podemos realizar una (6) modificación de los elementos creando una nueva tupla de esta manera
simulamos una modificación a sus elementos.

Código:
1>>>cursos = (“matematicas”, “quimica”)
2>>>print(“cursos originales”)
3>>>for curso in cursos:

4>>> print(curso)
5>>>print(“\ncursos modificados”)
6>>>cursos = (“geografia”, “historia”)
7>>>for curso in cursos:
8>>> print(curso)

Resultado en consola
cursos originales
matematicas
quimica

cursos modificados
geografia
historia

2.18. Diccionarios
Un diccionario es una estructura de pares (‘clave’: valor), donde la clave es un valor único, el cual no
se puede repetir, y su correspondiente valor.

Ejemplo de sintaxis:
Código:
1>>>cursos = {‘curso’: ‘quimica’, ‘fisica’:5}
2>>>print(cursos[‘curso’])
3>>>print(cursos[‘fisica’])

Resultado en consola
quimica
5

La variable cursos (1) viene a ser inicializada con sus respectivas claves (curso y fisica) y valores
(química y 5), en este caso dos pares.

Otro ejemplo:
Código:
1>>>cursos = {‘curso’: ‘quimica’, ‘fisica’:5}
2>>>creditos = cursos[‘fisica’]

35
María Isabel Landeras Pilco

3>>>print(“El curso de Fisica tiene “ + str(creditos) + “


creditos!”)

Resultado en consola
El curso de Fisica tiene 5 creditos!

Se procede a (1) inicializar valores a la variable cursos, (2) se desea obtener el valor de la clave “fisica”,
que en este caso es “5” y se asigna a la variable “créditos”.

2.19. Agregando nuevos pares clave-valor


Código:
1>>>cursos = {‘curso’: ‘quimica’, ‘fisica’:5}
2>>>print(cursos)
3>>>cursos[‘matematica I’] = ‘Luis Vasquez Silva’
4>>>cursos[‘complemento de matematicas’]=’Lucy Chavez Martinez’
5>>>print (cursos)

Resultado en consola
{‘curso’: ‘quimica’, ‘fisica’: 5}
{‘curso’: ‘quimica’, ‘fisica’: 5, ‘matematica I’: ‘Luis Vasquez
Silva’, ‘complemento de matematicas’: ‘Lucy Chavez
Martinez’}

Cuando se desea agregar (3,4) nuevos pares “clave: valor” a nuestro diccionario, se puede realizar de
manera explicita de tal forma que se asigna el valor al diccionario que referencia a una clave puesta
entre corchetes.

2.20. Iniciando con un diccionario vacío.


Código:
1>>>productos = {}
2>>>productos[‘galletas’] = 5
3>>>productos[‘azucar’] = 3
4>>>productos[‘aceite’] = 8
5>>>print(productos)

Resultado en consola
{‘galletas’: 5, ‘azucar’: 3, ‘aceite’: 8}

Tambien se puede (1) crear un diccionario vacio, en el cual no presenta elementos dentre de sus
paréntesis, pero a su vez (2-4) se va agregando en las siguientes líneas de código.

Deseamos modificar el precio del aceite


Código:
1>>>productos = {}
2>>>productos[‘galletas’] = 5
3>>>productos[‘azucar’] = 3
4>>>productos[‘aceite’] = 8
5>>>print(productos)
6>>>productos[‘aceite’] = 10
7>>>print(productos)

36
MANUAL DE LENGUAJE DE PROGRAMACIÓN PYTHON

Resultado en consola
{‘galletas’: 5, ‘azucar’: 3, ‘aceite’: 8}
{‘galletas’: 5, ‘azucar’: 3, ‘aceite’: 10}

Cuando se desea (2-4) modificar los valores de una clave especifica, solo se procede a copiar el
nombre de la clave entre paréntesis y se asigna el valor deseado.

Personalizando con un mensaje nuestro anterior código


Código:
1>>>productos = {}
2>>>productos[‘galletas’] = 5
3>>>productos[‘azucar’] = 3
4>>>productos[‘aceite’] = 8

5>>>print(“El valor del aceite es: “ + str(productos[‘aceite’]))


6>>>productos[‘aceite’] = 10
7>>>print(“El valor del aceite despues de los huaicos es: “ +
str(productos[‘aceite’]))

Resultado en consola
El valor del aceite es: 8
El valor del aceite despues de los huaicos es: 10

Se procede (7) a imprimir un mensaje personalizado haciendo un llamado


a nuestro diccionario “productos” con la clave “aceite” (5,7) en dos
oportunidades antes y después de ser modificada.

2.21. Utilizando condicionales en el diccionario.


Código:
1>>>productos = {}
2>>>productos[‘galletas’] = 5

3>>>productos[‘azucar’] = 3
4>>>productos[‘aceite’] = 8
5>>>print(‘El valor actual del aceite antes del huaico es: ‘
+str(productos[‘aceite’]) + ‘ soles’)

6>>>if productos[‘aceite’] == 10:


7>>> incremento = -2
8>>>elif productos[‘aceite’] == 8:
9>>> incremento = 2
10>>>else:
11>>> incremento = 0
12>>>productos[‘aceite’] = productos[‘aceite’] + incremento
13>>>print(productos)

Resultado en consola
El valor actual del aceite antes del huaico es: 8 soles
{‘galletas’: 5, ‘azucar’: 3, ‘aceite’: 10}

37
María Isabel Landeras Pilco

En el código anterior se ha utilizado (6,8) las condicionales de tipo “if” y “elif” para validar e (13)
imprimir un mensaje personalizado.

2.22. Eliminando valores del diccionario:


Código:
1>>>productos = {}
2>>>productos[‘galletas’] = 5
3>>>productos[‘azucar’] = 3
4>>>productos[‘aceite’] = 8
5>>>print(productos)
6>>>del productos[‘azucar’]
7>>>print (productos)

Resultado en consola
{‘galletas’: 5, ‘azucar’: 3, ‘aceite’: 8}
{‘galletas’: 5, ‘aceite’: 8}

Tener (6) cuidado a eliminar elementos del diccionario ya que es permanente

Otra forma de declarar nuevos pares en nuestro diccionario


Código:
1>>>lenguajes_favoritos = {
2>>> ‘maria isabel’: ‘python’,
3>>> ‘julio’ : ‘java’,
4>>> ‘gianfranco’ :’visualbasic’,
5>>> ‘claudia’ : ‘c’,
6>>> }
7>>>print(lenguajes_favoritos)

Resultado en consola
{‘maria isabel’: ‘python’, ‘julio’: ‘java’, ‘gianfranco’:
‘visualbasic’, ‘claudia’: ‘c’}

En el código anterior (1-6) se realiza la declaración e inicialización del


diccionario “lenguajes_favoritos” utilizando multiples líneas de código.

2.23. Recorriendo el contenido del diccionario utilizando FOR


Código:
1>>>lenguajes_favoritos = {
2>>> ‘maria isabel’: ‘python’,
3>>> ‘julio’ : ‘java’,
4>>> ‘gianfranco’ :’visualbasic’,
5>>> ‘claudia’ : ‘c’,
6>>> }
7>>> for clave, valor in lenguajes_favoritos.items():
8>>> print(“\nClave: “ + clave)
9>>> print(“Valor: “ + valor)

Resultado en consola
clave: maria isabel

38
MANUAL DE LENGUAJE DE PROGRAMACIÓN PYTHON

Valor: python

Clave: julio
Valor: java

Clave: gianfranco
Valor: visualbasic

Clave: claudia
Valor: c

Cuando utilizamos la clausula (7) “FOR” realizamos un recorrido dentro del diccionario “lenguajes_
favoritos”, en la cual se recuperan tanto la clave y su respectivo valor.

2.24. Listas de diccionarios


Podemos (4) almacenar nuestros diccionarios en una lista.

Código:
1>>>primer_ciclo = {‘ambietal’:2, ‘matematica’: 3, ‘lenguaje’:
2}
2>>>segundo_ciclo = {‘computacion’ : 4, ‘invope’ : 3}

3>>>tercer_ciclo = {‘metinvo’ : 2 , ‘estadistica’ : 3}


4>>>cursos = [primer_ciclo, segundo_ciclo, tercer_ciclo]
5>>>for curso in cursos:
6>>> print(curso)

Resultado en consola
{‘ambietal’: 2, ‘matematica’: 3, ‘lenguaje’: 2}
{‘computacion’: 4, ‘invope’: 3}
{‘metinvo’: 2, ‘estadistica’: 3}

Ejemplo de recorrido y generación automática de diccionarios utilizando FOR


Código:
1>>>cursos = [ ]
2>>>for curso in range(10):
3>>> nuevo_ciclo = {‘matematica’: 4, ‘fisica’: 3, ‘quimica’:3}
4>>> cursos.append(nuevo_ciclo)
5>>>for curso in cursos[:5]:
6>>> print(curso)
7>>>print(“...”)
8>>>print(“El total de numero de ciclos es: “ +
str(len(cursos)))

Resultado en consola
{‘matematica’: 4, ‘fisica’: 3, ‘quimica’: 3}
{‘matematica’: 4, ‘fisica’: 3, ‘quimica’: 3}
{‘matematica’: 4, ‘fisica’: 3, ‘quimica’: 3}
{‘matematica’: 4, ‘fisica’: 3, ‘quimica’: 3}

39
María Isabel Landeras Pilco

{‘matematica’: 4, ‘fisica’: 3, ‘quimica’: 3}

En el anterior código se ha utilizado recorridos automáticos del diccionario utilizando la función


“range” conjuntamente con el bucle “FOR” para posteriormente imprimir su contenido.

En el siguiente código utilizado (3,7,13) se ha “FOR” para poder crear, recorrer e imprimir nuestra
lista de diccionarios.
Código:
1>>>cursos = [ ]
2>>>#Agrega 10 elementos(diccionarios) a nuestra lista cursos
3>>>for curso in range(10):
4>>> nuevo_ciclo = {‘matematica’: 4, ‘fisica’: 3, ‘quimica’:3}
5>>> cursos.append(nuevo_ciclo)
6>>>#Recorre los 3 primeros elementos de nuestra lista cursos[]

7>>>for curso in cursos[0:3]:

8>>> if curso[‘matematica’] == 4:
9>>> curso[‘matematica’] = 5
10>>> curso[‘fisica’] = 4
11>>> curso[‘quimica’] = 5
12>>>#Imprime los 5 primeros diccionarios
13>>>for curso in cursos[:5]:
14>>> print(curso)
15>>>print(“...”)
16>>>print(“El total de numero de ciclos es: “ +
str(len(cursos)))

Resultado en consola
{‘matematica’: 5, ‘fisica’: 4, ‘quimica’: 5}
{‘matematica’: 5, ‘fisica’: 4, ‘quimica’: 5}
{‘matematica’: 5, ‘fisica’: 4, ‘quimica’: 5}
{‘matematica’: 4, ‘fisica’: 3, ‘quimica’: 3}
{‘matematica’: 4, ‘fisica’: 3, ‘quimica’: 3}

Ejemplo de diccionarios teniendo como elementos una lista.

CASO: PIZZA
Código:
1>>>#Se almacena la informacion acerca de la orden de una pizza
2>>>pizza = {
3>>> ‘tamano’: ‘mediana’,
4>>> ‘ingredientes’ : [‘queso mozarella’, ‘jamon’, ‘piña’]
5>>> }
6>>>#Resumen de la orden.
7>>>print(“Has ordenado una “ + pizza[‘tamano’] + “ con los
siguientes ingredientes:”)
8>>>for ingrediente in pizza[‘ingredientes’]:

40
MANUAL DE LENGUAJE DE PROGRAMACIÓN PYTHON

9>>> print(“\t” + ingrediente)

Resultado en consola
Has ordenado una mediana con los siguientes ingredientes:
queso mozarella
jamon
piña

Tambien podemos utilizar (2-5) listas como elementos de un diccionario, en este caso el valor es una
lista perteneciente a la clave “ingredientes”, la cual a su vez es un elemento del diccionario “pizza”

2.25. Diccionario compuesto por listas


Código:
1>>>lenguajes_favorito = {
2>>> ‘maria isabel’ : [‘python’, ‘java’],
3>>> ‘rosita’ : [‘c’, ‘visualbasic’],
4>>> ‘juan’ : [‘c++’, ‘php’],
5>>> }
6>>>for nombre, lenguajes in lenguajes_favorito.items():
7>>> print (“\n” + nombre.title() + “ domina los siguientes
lenguajes de programacion:”)
8>>> for lenguaje in lenguajes:
9>>> print (“\t” + lenguaje.title())

Resultado en consola
Maria Isabel domina los siguientes lenguajes de programacion:
Python
Java
Rosita domina los siguientes lenguajes de programacion:
C
Visualbasic
Juan domina los siguientes lenguajes de programacion:
C++
Php

En este ejemplo de código se (1-5) implementa un diccionario “lenguajes_favorito” con elementos


completamente compuestos por listas.

2.26. Diccionario de diccionarios


Código:
1>>>usuarios = {
2>>> ‘mlanderas’ : {
3>>> ‘nombres’: ‘Maria Isabel’,
4>>> ‘apellidos’: ‘Landeras Pilco’,
5>>> ‘universidad’ : ‘UPAO’
6>>> },
7>>> ‘zhonores’ : {

41
María Isabel Landeras Pilco

8>>> ‘nombres’ : ‘Zoila’,


9>>> ‘apellidos’: ‘Honores Ganoza’,
10>>> ‘universidad’: ‘UNT’
11>>> }
12>>> }
13>>>for usuario, informacion in usuarios.items():

14>>> print(“\nUsuario: “ + usuario)


15>>> nombres_completos = informacion[‘nombres’] + “ “ +
informacion[‘apellidos’]
16>>> trabajo = informacion[‘universidad’]
17>>> print(“\tNombres Completos: “ + nombres_completos.
title())
18>>> print(“\tCentro de Trabajo: “ + trabajo.title())

Resultado en consola
Usuario: mlanderas
Nombres Completos: Maria Isabel Landeras Pilco
Centro de Trabajo: Upao

Usuario: zhonores
Nombres Completos: Zoila Honores Ganoza
Centro de Trabajo: Unt

Tambien podemos utilizar diccionarios compuestos por diccionarios, en este ejemplo el diccionario
“usuarios” contiene como elementos a dos diccionarios “mlanderas” y “zhonores”

42
MANUAL DE LENGUAJE DE PROGRAMACIÓN PYTHON

III. UNIDAD : ESTRUCTURAS SELECTIVAS

3.1. Condicional “if” y el operador de igualdad (==)

Se desea (4) poner en mayúscula un elemento de nuestra lista “autos” que (3) cumpla la siguiente
condición:
Código:
1>>>autos = [‘audi’, ‘bmw’, ‘subaru’, ‘toyota’]
2>>>for auto in autos:
3>>> if auto == ‘bmw’:
4>>> print(auto.upper())
5>>> else:
6>>> print(auto.title())

Resultado en Consola
Audi
BMW
Subaru
Toyota

El condicional “If” da como resultado un booleano que puede ser “True” o “False”

Ejecutar el siguiente código con IDLE Python:


Código:
>>> auto = “toyota”
>>> auto == “nissan”
False
>>> auto == “toyota”
True
>>> auto == “Toyota”
False
>>> auto = ‘Audi’
>>> auto.lower() == “audi”
True

Ejemplo con el operador de desigualdad (¡=)


Código:
1>>>ingrediente = ‘queso’
2>>>if ingrediente != “jamon” :
3>>> print(“Que agradable es la pizza con “ + ingrediente)

Resultado en consola
Que agradable es la pizza con queso

Realizando comparaciones con Operadores Numéricos


Ejecutar el siguiente código con IDLE Python:
Código:
>>> edad = 18

43
María Isabel Landeras Pilco

>>> edad == 18
True

Cuando dos números no son iguales y se desea mostrar un mensaje.


Código:
1>>>respuesta = 17
2>>>if respuesta != 42:
3>>> print(“Ese no es la respuesta correcta. Intente de
nuevo!”)

Resultado en consola
Ese no es la respuesta correcta. Intente de nuevo!

También podemos trabajar con operadores de comparación


Ejecutar el siguiente código con IDLE Python:
Código:
>>> edad = 19
>>> edad < 21
True
>>> edad <= 21
True
>>> edad > 21
False
>>> edad >= 21
False

Condicionales múltiples: aquellas que realizan una comprobación de más de una condición
utilizando el operador booleano “AND”

Ejemplo con el operador booleano “OR”


Ejecutar el siguiente código con IDLE Python:

Código:
>>> edad_0 = 22
>>> edad_1 = 18
>>> edad_0 >=21 or edad_1 >= 21
True
>>> edad_0 = 18
>>> edad_0 >=21 or edad_1 >=21
False

Podemos realizar una búsqueda de un elemento dentro de una lista utilizando el operador “in”, la
cual nos mostrara como resultado TRUE o FALSE dependiendo de la situación.

Código:
>>> ingredientes = [“anchoas”,”cebolla”,”piña”]
>>> “anchoas” in ingredientes
True
>>> “peperoni” in ingredientes
False

44
MANUAL DE LENGUAJE DE PROGRAMACIÓN PYTHON

Utilizando el operador “not in”

1>>>usuarios_restringidos = [“andres”,”carolina”,”david”]
2>>>usuario = “maria”
3>>>if usuario not in usuarios_restringidos:
print(usuario.title() + “, tiene acceso al sistema.”)

Resultado en consola
Maria, tiene acceso al sistema.

Nota: Las expresiones Booleanas True o False pueden ser utilizadas dentro de una expresión
condicional “IF”.

Sintaxis de una declaración de IF simple:

If condición :
Hacer_algo

Ejemplo:
Código
1>>>edad = 19
2>>>if edad >= 18 :
3>>> print(“Tiene suficiente edad para votar!”)

Resultado en consola
Tiene suficiente edad para votar!

Tener cuidado cuando deseamos ejecutar más de una línea de código dentro de una condición
Código
1>>>edad = 19
2>>>if edad >= 18 :
3>>> print(“Tiene suficiente edad para votar!”)
4>>> print(“¿Ya ha realizado su votación?”)

Resultado en consola
Tiene suficiente edad para votar!
¿Ya ha realizado su votacion?

3.2. Sintaxis de una declaración de IF-ELSE simple:


En caso no se cumpla nuestra condición IF, (5) podemos definir nuestro código utilizando ELSE

1>>>edad = 17
2>>>if edad >= 18 :
3>>> print(“Tiene suficiente edad para votar!”)
4>>> print(“¿Ya ha realizado su votacion?”)
5>>>else:
6>>> print(“Disculpa, tu eres muy joven para votar.”)
7>>> print(“Por favor registra tu voto tan pront tu tengas 18
años!”)

Resultado en consola
Disculpa, tu eres muy joven para votar.
Por favor registra tu voto tan pront tu tengas 18 años!

45
María Isabel Landeras Pilco

Utilización de IF-ELIF-ELSE: (4) Se utiliza condicional en cadena.


Código
1>>>edad = 12
2>>>if edad <4:
3>>> print(“Tu costo de inscripncion es S/.0.00.”)
4>>>elif edad <18:
5>>> print (“Tu costo de inscripcion es S/.5.00.”)
6>>>else:
7>>> print(“Tu costo de inscripcion es s/.10.00.”)

Resultado en consola
Tu costo de inscripcion es S/.5.00.

Analizamos el ejemplo anterior con variables.


Código
1>>>edad = 12
2>>>if edad <4:
3>>> precio = 0
4>>>elif edad <18:
5>>> precio = 5
6>>>else:
7>>> precio = 10
8>>>print(“Tu costo de inscripcion es “ + str(precio))

Resultado en consola
Tu costo de inscripcion es 5

3.3. Utilizando múltiples bloques ELIF


Ejemplo: Se ejecutará hasta que se cumpla la condición, una vez cumplida ya no se continúa con la
cadena.

Código
1>>>edad = 12
2>>>if edad <4:
3>>> precio = 0
4>>>elif edad <18:
5>>> precio = 5
6>>>elif edad <65:
7>>> precio = 10
8>>>else:
9>>> precio = 5
10>>>print(“Tu costo de inscripcion es “ + str(precio))

Resultado en consola
Tu costo de inscripcion es 5

46
MANUAL DE LENGUAJE DE PROGRAMACIÓN PYTHON

Python no obliga a utilizar el operador ELSE, pero hay que tener en cuenta la última condición.
Código
1>>>edad = 12
2>>>if edad <4:
3>>> precio = 0
4>>>elif edad <18:
5>>> precio = 5
6>>>elif edad <65:
7>>> precio = 10
8>>>elif edad >= 65:
9>>> precio = 5
10>>>print(“Tu costo de inscripcion es “ + str(precio))

Resultado en consola
Tu costo de inscripcion es 5

Prueba con múltiples condiciones: Si se desea examinar todas las condiciones sin ser excluyente.

Código
1>>>ingredientes =[‘anchoas’,’queso’,’piña’]
2>>>if ‘anchoas’ in ingredientes:
3>>> print (‘Agregue anchoas’)
4>>>if ‘queso’ in ingredientes:
5>>> print (‘Agregue queso’)
6>>>if ‘piña’ in ingredientes:

7>>> print (‘Agregue piña’)


8>>>print (“\nFinalizacion de tu preparacion de pizza!”)

Resultado en consola
Agregue anchoas
Agregue queso
Agregue piña
Finalización de tu preparacion de pizza!

En caso no se cumpla una condición, se continua evaluando las demás condicionales, caso que no
ocurre en la cadena IF-ELIF

Código
1>>>ingredientes =[‘anchoas’,’queso’,’piña’]
2>>>if ‘anchoas’ in ingredientes:
3>>> print (‘Agregue anchoas’)
4>>>if ‘peperoni’ in ingredientes:
5>>> print (‘Agregue piña’)
6>>>if ‘queso’ in ingredientes:
7>>> print (‘Agregue queso’)
8>>>if ‘piña’ in ingredientes:
9>>> print (‘Agregue piña’)

47
María Isabel Landeras Pilco

10>>>print (“\nFinalizacin de tu preparacion de pizza!”)

Resultado en consola
Agregue anchoas
Agregue queso
Agregue piña
Finalizacion de tu preparacion de pizza!

Tener en cuenta lo siguiente: Solo se imprime el contenido del primer IF ya que cumple la
condición y termina la verificación debido a que es una cadena IF-ELIF

Código
1>>>ingredientes =[‘anchoas’,’queso’,’piña’]
2>>>if ‘anchoas’ in ingredientes:
3>>> print (‘Agregue anchoas’)
4>>>elif ‘peperoni’ in ingredientes:
5>>> print (‘Agregue piña’)
6>>>elif ‘queso’ in ingredientes:
7>>> print (‘Agregue queso’)
8>>>print (“\nFinalizacion de tu preparacion de pizza!”)

Resultado en consola
Agregue anchoas
Finalizacin de tu preparacion de pizza!

3.4. Utilizando IF con listas


Código
1>>>ingredientes =[‘anchoas’,’queso’,’peperoni’,’piña’]
2>>>for ingrediente in ingredientes:
3>>> print(“Agregando “ + ingrediente + “.”)
4>>>print(“\nFinalizando la preparacion de tu pizza!”)

Resultado en consola
Agregando anchoas.
Agregando queso.
Agregando peperoni.
Agregando piña.

Finalizando la preparacion de tu pizza!

Definiendo el anterior ejemplo con (2) una condicional dentro del FOR
Código
1>>>ingredientes =[‘anchoas’,’queso’,’peperoni’,’piña’]
2>>>for ingrediente in ingredientes:
3>>> if ingrediente == “peperoni”:
4>>> print(“Lo sentimos no tenemos peperoni”)
5>>> else:

48
MANUAL DE LENGUAJE DE PROGRAMACIÓN PYTHON

6>>> print(“Agregando “ + ingrediente + “.”)


7>>>print(“\nFinalizando la preparacion de tu pizza!”)

Resultado en consola
Agregando anchoas.
Agregando queso.
Lo sentimos no tenemos peperoni
Agregando piña.

Finalizando la preparacion de tu pizza!

Verificando (2) si nuestra lista está vacía

1>>>ingredientes = []
2>>>if ingredientes:
3>>> for ingrediente in ingredientes:
4>>> print(“Agregando “ + ingrediente + “.”)
5>>> print(“\nTerminada la preparacion de tu pizza!”)
6>>>else:

7>>> print(“¿Estas seguro de querer preparar una pizza sin


ingredientes?”)

Resultado en consola
¿Estas seguro de querer preparar una pizza sin ingredientes?

En caso nuestra lista tenga (2) al menos un valor, en nuestra condicional “IF” tomara como valor
“TRUE”
Código
1>>>ingredientes = [“queso”]
2>>>if ingredientes:
3>>> for ingrediente in ingredientes:
4>>> print(“Agregando “ + ingrediente + “.”)
5>>> print(“\nTerminada la preparacion de tu pizza!”)
6>>>else:
7>>> print(“¿Estas seguro de querer preparar una pizza sin
ingredientes?”)

Resultado en consola
Agregando queso.

Terminada la preparacion de tu pizza!

3.5. Utilizando listas múltiples


Código
1>>>ingredientes_disponibles =
[‘anchoas’,’pimiento’,’peperoni’,’piña’]
2>>>ingredientes_solicitados = [‘anchoas’,’extra
queso’,’pimiento’]

49
María Isabel Landeras Pilco

3>>>for ingrediente_solicitado in ingredientes_solicitados:


4>>> if ingrediente_solicitado in ingredientes_disponibles:
5>>> print (“Agregar “ + ingrediente_solicitado + “.”)
6>>> else:
7>>> print(“Disculpe, nosotros no tenemos “ +
ingrediente_solicitado + “.”)
8>>>print (“\nFinalizo la preparacion de tu pizza!”)

50
MANUAL DE LENGUAJE DE PROGRAMACIÓN PYTHON

IV. UNIDAD : BUCLES

4.1. Bucle “WHILE”


El (2) bucle “While” realizado un recorrido de un elemento si una condición es cierta.
Código
1>>>numero_actual = 1
2>>>while numero_actual <= 5:
3>>> print(numero_actual)
4>>> numero_actual += 1 # -> numero_actual = numero_actual
+ 1

Resultado en consola
1
2
3
4
5

El siguiente programa utiliza un bucle while (4) incluyendo una condición con el operador (!=)

NOTA: A partir de aquí en adelante para probar el código se usará el editor IDLE PYTHON 3.6
(Crear nuevo archivo, guardar y ejecutar (F5).

Código
1>>>prompt = “\nDime algo, y yo te repetire el mensaje”
2>>>prompt += “\nIngrese ‘salir’ para finalizar el programa.”
3>>>mensaje = “”
4>>>while mensaje != “salir”:
5>>> mensaje = input(prompt)
6>>> print(mensaje)
7>>>print(“El programa ha finalizado!”)

Resultado en Consola
Dime algo, y yo te repetire el mensaje
Ingrese ‘salir’ para finalizar el programa.Bienvenidos al curso
Python
Bienvenidos al curso Python
Dime algo, y yo te repetire el mensaje
Ingrese ‘salir’ para finalizar el programa.Estamos en la semana
cuarta de clase
Estamos en la semana cuarta de clase
Dime algo, y yo te repetire el mensaje
Ingrese ‘salir’ para finalizar el programa.salir
salir
El programa ha finalizado!

51
María Isabel Landeras Pilco

4.2. Utilizando “Flags” (banderas)


Los “flags” son (3) ayudas que nos permiten llevar el control de un evento dado y poder actualizarlo.
Código
1>>>prompt = “\nDime algo, y yo te repetire el mensaje”
2>>>prompt += “\nIngrese ‘salir’ para finalizar el programa.”
3>>>activa = True
4>>>while activa:
5>>> mensaje = input(prompt)
6>>> if mensaje == “salir”:
7>>> activa = False
8>>> else:
9>>> print(mensaje)

Resultado en consola
Dime algo, y yo te repetire el mensaje
Ingrese ‘salir’ para finalizar el programa.Hola como estan con el
curso Python
Hola como estan con el curso Python

Dime algo, y yo te repetire el mensaje


Ingrese ‘salir’ para finalizar el programa.La proxima semana hay
practica
La proxima semana hay practica

Dime algo, y yo te repetire el mensaje


Ingrese ‘salir’ para finalizar el programa.salir

Utilizamos como (3) condición el Booleano “True” que indica que la condición siempre se va a
cumplir. A la vez se utiliza la palabra reservada “break” para poder salir del bucle While.

1>>>prompt = “\nPor favor ingrese el nombre de una ciudad que ha


visitado:”
2>>>prompt += “\nIngrese ‘salir’ para finalizar el programa.”
3>>>while True:
4>>> ciudad = input(prompt)
5>>> if ciudad == ‘salir’:
6>>> break
7>>> else:
8>>> print(“Me gustaria ir a “ + ciudad.title() + “!”)

Resultado en consola
Por favor ingrese el nombre de una ciudad que ha visitado:
Ingrese ‘salir’ para finalizar el programa.Cuzco
Me gustaria ir a Cuzco!

Por favor ingrese el nombre de una ciudad que ha visitado:

52
MANUAL DE LENGUAJE DE PROGRAMACIÓN PYTHON

Ingrese ‘salir’ para finalizar el programa.Arequipa


Me gustaria ir a Arequipa!

Por favor ingrese el nombre de una ciudad que ha visitado:


Ingrese ‘salir’ para finalizar el programa.salir

4.3. Usando ”continue” en el bucle “while”


Cuando se (5) ejecuta la palabra “continue” se omite el contenido posterior de un “while” y se precede
a ejecutar la siguiente iteración.

1>>>numero_actual = 0
2>>>while numero_actual < 10:
3>>> numero_actual += 1
4>>> if numero_actual % 2 == 0:
5>>> continue
6>>> print(numero_actual)

Resultado en consola
1
3
5
7
9

Evitando los bucles infinitos: para ello debemos de tener en cuenta que nuestro bucle tiene que
tener (2) condiciones que finalicen dicho bucle.

FORMA CORRECTA
1>>>x = 1
2>>>while x <= 5:
3>>> print(x)
4>>> x += 1

Resultado en consola
1
2
3
4
5

BUCLE INCORRETO (INFINITO)


Código
1>>>x = 1
2>>>while x <= 5:
3>>> print(x)

Resultado en consola
1
1

53
María Isabel Landeras Pilco

1
1
.
.
. Infinito

4.4. Utilizando “For” y Listas dentro del bucle “While”

Código
1>>>user_noconfirmados = [“alicia”, “juan”,”pedro”]
2>>>user_confirmados = []
3>>>while user_noconfirmados :
4>>> usuario_actual = user_noconfirmados.pop()
5>>> print(“Verificando usuario: “ + usuario_actual.title())
6>>> user_confirmados.append(usuario_actual)
7>>>print(“\nLos siguientes usuarios han confirmado:”)
8>>>for user_confirmado in user_confirmados:
9>>> print(user_confirmado.title())

Resultado en consola
Verificando usuario: Pedro
Verificando usuario: Juan
Verificando usuario: Alicia

Los siguientes usuarios han confirmado:


Pedro
Juan
Alicia

Eliminamos (4) cualquier elemento que conozcamos su valor dentro de una lista utilizando el bucle
“while”
Código
1>>>mascotas = [‘perro’,’gato’,’perro’, ‘pez dorado’, ‘gato’,
‘conejo’, ‘gato’]
2>>>print(mascotas)

3>>>while ‘gato’ in mascotas:


4>>> mascotas.remove(‘gato’)
5>>>print(mascotas)

Resultado en consola
[‘perro’, ‘gato’, ‘perro’, ‘pez dorado’, ‘gato’, ‘conejo’, ‘gato’]
[‘perro’, ‘perro’, ‘pez dorado’, ‘conejo’]

54
MANUAL DE LENGUAJE DE PROGRAMACIÓN PYTHON

4.5. Utilizamos diccionarios con el bucle “while”


Código
1>>>respuestas = {}
2>>>activo = True
3>>>while activo:
4>>> nombre = input(“\n¿Cual es tu nombre? “)
5>>> respuesta = input(“¿Que montaña te gustaria escalar algun
día? “)
6>>> respuestas[nombre] = respuesta
7>>> repetir = input(“Te gustaria dejar registrar otra persona
(si / no)”)
8>>> if repetir == “no”:
9>>> activo = False
10>>> print(“\n--- Resultados ---”)
11>>> for nombre, respuesta in respuestas.items():
12>>> print(nombre + “ me gustaria escalar “ + respuesta +
“.” )

Resultado en consola
¿Cual es tu nombre? Jose
¿Que montaña te gustaria escalar algun día? El Everest
Te gustaria dejar registrar otra persona (si / no)no

--- Resultados ---


Jose me gustaria escalar El Everest.

55
María Isabel Landeras Pilco

56
MANUAL DE LENGUAJE DE PROGRAMACIÓN PYTHON

V. UNIDAD : FUNCIONES Y MODULOS

5.1. Funciones
Las funciones nos permiten agrupar en bloques de código nuestra lógica de los programas,
permitiéndonos asignarle un nombre que las identifique.
Ejemplo de una función que (1) se llama: “saludo_usuario”, utilizando la palabra reservada “def” que
tiene como cuerpo de código una función.

Código
1>>>def saludo_usuario():
2>>> “””Muestra un saludo simple.”””
3>>> print(“Hola!”)
4>>>saludo_usuario()

Resultado en consola
Hola!

Utilizamos una (1) función llamada “saludo_usuario” que acepta como parámetro un nombre
“usuario” , luego hacemos un llamado a la función enviándole como parámetro nuestro nombre.

Código
1>>>def saludo_usuario(usuario):
2>>> print(“Hola, “ + usuario.title() + “!”)
3>>>saludo_usuario(‘Maria Isabel’)

Resultado en consola
Hola, Maria Isabel!

Utilizamos dos (1) parámetros en nuestra siguiente función


Código
1>>>def describe_mascota(tipo_animal, nombre_mascota):
2>>> “””Muestra informacion acerca de una mascota”””
3>>> print(“\nYo tengo un “ + tipo_animal + “.”)
4>>> print(“El nombre de mi “ + tipo_animal + “ es “ +
5>>>nombre_mascota.title() + “.” )
6>>>describe_mascota(‘hamster’,’harry’)

Resultado en consola
Yo tengo un hamster.
El nombre de mi hamster es Harry.

También podemos (6,7) llamar las veces que sean necesarias a nuestra función “describe_mascota”
Código
1>>>def describe_mascota(tipo_animal, nombre_mascota):
2>>> “””Muestra informacion acerca de una mascota”””
3>>> print(“\nYo tengo un “ + tipo_animal + “.”)

57
María Isabel Landeras Pilco

4>>> print(“El nombre de mi “ + tipo_animal + “ es “ +


5>>>nombre_mascota.title() + “.” )
6>>>describe_mascota(‘hamster’,’harry’)
7>>>describe_mascota(‘perro’, ‘ramon’)

Resultado en consola
Yo tengo un hamster.
El nombre de mi hamster es Harry.

Yo tengo un perro.
El nombre de mi perro es Ramon.

Tener en cuenta que (1,6) el orden de los argumentos se tiene que tomar en cuenta, veremos el
siguiente ejemplo, en el cual invertimos el orden de los argumentos pasados a nuestra función
“decribe_mascota”

Código
1>>>def describe_mascota(tipo_animal, nombre_mascota):
2>>> “””Muestra informacion acerca de una mascota”””
3>>> print(“\nYo tengo un “ + tipo_animal + “.”)
4>>> print(“El nombre de mi “ + tipo_animal + “ es “ +
5>>>nombre_mascota.title() + “.” )
6>>>describe_mascota(‘harry’,’hamster’)

Resultado en consola
Yo tengo un harry.
El nombre de mi harry es Hamster.

Cuando (5,6) enviamos de manera explícita como argumento el nombre de nuestro parámetro con
su respectivo valor, no se toma en cuenta el orden.

Código
1>>>def describe_mascota(tipo_animal, nombre_mascota):
2>>> “””Muestra informacion acerca de una mascota”””
3>>> print(“\nYo tengo un “ + tipo_animal + “.”)
4>>> print(“El nombre de mi “ + tipo_animal + “ es “ + nombre_
mascota.title() + “.” )
5>>>describe_mascota(tipo_animal = ‘hamster’, nombre_mascota =
‘harry’)
6>>>describe_mascota(nombre_mascota = ‘harry’, tipo_animal =
‘hamster’)

Resultado en consola
Yo tengo un hamster.
El nombre de mi hamster es Harry.

Yo tengo un hamster.
El nombre de mi hamster es Harry.

58
MANUAL DE LENGUAJE DE PROGRAMACIÓN PYTHON

También podemos (1) hacer uso de parámetros por defecto, en este caso utilizamos “perro” como
tipo de animal por defecto, nuestra función solo necesita 1 parámetro para poder funcionar.
Código
1>>>def describe_mascota(nombre_mascota, tipo_animal = ‘perro’):
2>>> “””Muestra informacion acerca de una mascota”””
3>>> print(“\nYo tengo un “ + tipo_animal + “.”)
4>>> print(“El nombre de mi “ + tipo_animal + “ es “ + nombre_
mascota.title() + “.” )
5>>>describe_mascota(nombre_mascota = ‘ramon’)

Resultado en consola
Yo tengo un perro.
El nombre de mi perro es Ramon.

En caso quisiéramos (5) enviar los dos parámetros, el valor por defecto quedaría sustituido por el
parámetro enviado.
Código
1>>>def describe_mascota(nombre_mascota, tipo_animal = ‘perro’):
2>>> “””Muestra informacion acerca de una mascota”””
3>>> print(“\nYo tengo un “ + tipo_animal + “.”)
4>>> print(“El nombre de mi “ + tipo_animal + “ es “ + nombre_
mascota.title() + “.” )
5>>>describe_mascota(nombre_mascota = ‘ramon’ , tipo_animal =
‘hamster’)

Resultado en consola
Yo tengo un hamster.
El nombre de mi hamster es Ramon.

Errores que se (5) comenten al evitar enviar argumentos vacíos.


Código
1>>>def describe_mascota(nombre_mascota, tipo_animal = ‘perro’):
2>>> “””Muestra informacion acerca de una mascota”””
3>>> print(“\nYo tengo un “ + tipo_animal + “.”)
4>>> print(“El nombre de mi “ + tipo_animal + “ es “ + nombre_
mascota.title() + “.” )
5>>>describe_mascota()

Resultado en consola
describe_mascota()
TypeError: describe_mascota() missing 1 required positional
argument: ‘nombre_mascota’

Podemos (4) retornar valores calculados en nuestra función, utilizando la palabra reservada “return”
Código
1>>>def obtener_nombre_completo(nombre, apellido):
2>>> “””Retorna el nombre completo.”””
3>>> nombre_completo = nombre + ‘ ‘ + apellido
4>>> return nombre_completo.title()

59
María Isabel Landeras Pilco

5>>>musico = obtener_nombre_completo(‘maria isabel’, ‘landeras’)


6>>>print(musico)

Resultado en consola
Maria Isabel Landeras

Podemos utilizar (1) N números de argumentos y parámetros, vamos a agregar “apellido_materno”


como parámetro y argumento adicional.
Código
1>>>def obtener_nombre_completo(nombre, apellido_paterno,
apellido_materno):
2>>> “””Retorna el nombre completo.”””
3>>> nombre_completo = nombre + ‘ ‘ + apellido_paterno + ‘ ‘ +
apellido_materno
4>>> return nombre_completo.title()

5>>>musico = obtener_nombre_completo(‘maria isabel’, ‘landeras’,


‘pilco’)
6>>>print(musico)

Resultado en consola
Maria Isabel Landeras Pilco

Utilizamos parámetros opcionales de acuerdo a los requerimientos, en este caso con apellido
materno y sin ello. Ademas utilizamos condicionales para validar nuestros parámetros.

Código
1>>>def obtener_nombre_completo(nombre, apellido_paterno,
apellido_materno = ‘’):
2>>> “””Retorna el nombre completo.”””
3>>> if apellido_materno:
4>>> nombre_completo = nombre + ‘ ‘ + apellido_paterno + ‘
‘ + apellido_materno
5>>> else:
6>>> nombre_completo = nombre + ‘ ‘ + apellido_paterno
7>>> return nombre_completo.title()
8>>>musico = obtener_nombre_completo(‘gianfranco’, ‘toledo’)
9>>>print(musico)
10>>>musico = obtener_nombre_completo(‘maria isabel’, ‘landeras’,
‘pilco’)
11>>>print(musico)

Resultado en consola
Gianfranco Toledo
Maria Isabel Landeras Pilco

60
MANUAL DE LENGUAJE DE PROGRAMACIÓN PYTHON

También podemos utilizar como valor de retorno un diccionario. (5) Creamos un diccionario
“persona” que tiene dos elementos, el primero con clave “primero” y valor “nombre”, el segundo con
clave “ultimo” y valor “apellido”.

Código
1>>>def crear_persona(nombre, apellido):
2>>> “””Retorna un diccionario de informacion sobre una
persona”””
3>>> persona = {‘primero’: nombre, ‘ultimo’: apellido}
4>>> return persona
5>>>musico = crear_persona(‘maria isabel’, ‘landeras’)
6>>>print (musico)

Resultado en consola
{‘primero’: ‘maria isabel’, ‘ultimo’: ‘landeras’}

5.2. Agregamos un nuevo elemento a nuestro diccionario


Código
1>>>def crear_persona(nombre, apellido, edad = ‘’):
2>>> “””Retorna un diccionario de informacion sobre una
persona”””
3>>> persona = {‘primero’: nombre, ‘ultimo’: apellido}
4>>> if edad:
5>>> persona[‘edad’] = edad
6>>> return persona

7>>>musico = crear_persona(‘maria isabel’, ‘landeras’, edad = 27)


8>>>print (musico)

Resultado en consola
{‘primero’: ‘maria isabel’, ‘ultimo’: ‘landeras’, ‘edad’: 27}

5.3. Usando funciones con bucle “WHILE”


En este ejemplo veremos cómo utilizar funciones utilizando un (6) bucle While con iteraciones
infinitas.
Código
1>>>def crear_persona(nombre, apellido):
2>>> “””Retorna un nombre completo de una persona”””
3>>> nombres = nombre + “ “ + apellido
4>>> return nombres.title()
5>>># Esto es un bucle infinito!
6>>>while True:
7>>> print(“\nPor favor dime tu nombre: “)
8>>> nombre = input(“Nombre: “)
9>>> apellido = input(“Apellido: “)
10>>> nombres = crear_persona(nombre, apellido)
11>>> print(“\nHola, “ + nombres + “!”)

61
María Isabel Landeras Pilco

Resultado en consola
Por favor dime tu nombre:
Nombre: Maria Isabel
Apellido: Landeras Pilco
Hola, Maria Isabel Landeras Pilco!

En este caso vamos a realizar un ejemplo en donde nuestro bucle deja de ser infinito utilizando (11)
una condicional que activa la palabra reservada break.

1>>>def crear_persona(nombre, apellido):


2>>> “””Retorna un nombre completo de una persona”””
3>>> nombres = nombre + “ “ + apellido
4>>> return nombres.title()
5>>># Esto es un bucle infinito!
6>>>while True:
7>>> print(“\nPor favor dime tu nombre: “)
8>>> print(“(Ingrese ‘q’ para salir)”)
9>>> nombre = input(“Nombre: “)
10>>> if nombre == “q”:
11>>> break
12>>> apellido = input(“Apellido: “)
13>>> if apellido == “q”:
14>>> break
15>>> nombres = crear_persona(nombre, apellido)
16>>> print(“\nHola, “ + nombres + “!”)

Resultado en consola
Por favor dime tu nombre:
(Ingrese ‘q’ para salir)
Nombre: gianfranco fabrizio
Apellido: toledo landeras
Hola, Gianfranco Fabrizio Toledo Landeras!

5.4. Pasando como parámetro una lista en nuestra función.


Código
1>>>def saludo_usuarios(nombres):
2>>> “””Imprimimos un simple saludos para cada usuario en la
lista”””
3>>> for nombre in nombres:
4>>> mensaje = “Hola, “ + nombre.title() + “!”
5>>> print(mensaje)
6>>>nombre_usuarios = [‘maria isabel’, ‘giangranco fabrizio’,
‘julio victor’]
7>>>saludo_usuarios(nombre_usuarios)

Resultado en consola
Hola, Maria Isabel!

62
MANUAL DE LENGUAJE DE PROGRAMACIÓN PYTHON

Hola, Giangranco Fabrizio!


Hola, Julio Victor!

En el siguiente ejemplo utilizaremos una función con dos listas.


Código
1>>># Empezamos con algunos diseños que necesitan ser impresos en
3d.
2>>>sin_imprimir = [‘carcasa iphone’, ‘carcasa samsung’, ‘carcasa
huawei’]
3>>>impresos = []
4>>># Simulacion de la impresion de cada carcasa, hasta que no
queden pendientes
5>>>while sin_imprimir:
6>>> carcasa_actual = sin_imprimir.pop()
7>>> #Simula crear una impresion 3d desde el diseño.
8>>> print(“Imprimiendo carcasa: “ + carcasa_actual)
9>>> impresos.append(carcasa_actual)
10>>># Mostrar todo las carcasas impresas.
11>>>print(“\nLos siguiente modelos han sido impresos:”)
12>>>for carcasas in impresos:
13>>> print(carcasas)

Resultado en consola
Los siguiente modelos han sido impresos:
carcasa huawei
carcasa samsung
carcasa iphone

En este ejemplo veremos cómo utilizamos (1,7) dos funciones para poder organizar mejor nuestro
código del ejemplo anterior.
Código
1>>>def modelos_impresos(sin_imprimir, impresos):
2>>> while sin_imprimir:
3>>> carcasa_actual = sin_imprimir.pop()
4>>> #Simula crear una impresion 3d desde el diseño.
5>>> print(“Imprimir carcasa: “ + carcasa_actual)
6>>> impresos.append(carcasa_actual)
7>>>def mostrar_modelos(carcasas_impresas):
8>>> print(“\nLas siguientes carcas han sido impresas:”)
9>>> for carcasa_completa in carcasas_impresas:
10>>> print(carcasa_completa)
11>>>carcasas = [‘carcasa iphone’, ‘carcasa samsung’, ‘carcasa
huawei’]
12>>>impresos = []
13>>>modelos_impresos(carcasas, impresos)
14>>>mostrar_modelos(impresos)

63
María Isabel Landeras Pilco

Resultado en consola
Las siguientes carcas han sido impresas:
carcasa huawei
carcasa samsung
carcasa iphone

Utilizamos en este ejemplo el uso de parámetros aleatorios, (1) utilizando el carácter “*” anteponiendo
a nuestro parámetro de la función. En los casos que no sabemos cuántos parámetros necesitaremos
utilizamos esta ayuda.
Código
1>>>def hacer_pizza(*ingredientes):
2>>> “””Imprimir la lista de ingredientes que han sido
solicitados.”””
3>>> print(ingredientes)
4>>>hacer_pizza(‘peperoni’)
5>>>hacer_pizza(‘hongos’, ‘jamon’, ‘queso’)

Resultado en consola
(‘peperoni’,)
(‘hongos’, ‘jamon’, ‘queso’)

Realizamos una modificación que permita imprimir el contenido de los parámetros enviados a
nuestra función.
Código
1>>>def hacer_pizza(*ingredientes):
2>>> “””Imprimir la lista de ingredientes que han sido
solicitados.”””
3>>> print(“Haciendo una pizza con los siguientes ingredientes:”)
4>>> for ingrediente in ingredientes:
5>>> print(“-” + ingrediente)
6>>>hacer_pizza(‘peperoni’)
7>>>hacer_pizza(‘hongos’, ‘jamon’, ‘queso’)

Resultado en consola
Haciendo una pizza con los siguientes ingredientes:
-peperoni
Haciendo una pizza con los siguientes ingredientes:
-hongos
-jamon
-queso

64
MANUAL DE LENGUAJE DE PROGRAMACIÓN PYTHON

En este ejemplo veremos cómo enviamos dos parámetros, combinando un parámetro fijo con un
aleatorio.
Código
1>>>def hacer_pizza(tamano, *ingredientes):
2>>> “””Resumen del pedido de pizza”””
3>>> print(“Haciendo una pizza de “ + “” + str(tamano) + “
pulgadas con los siguientes “ + “ingredientes:”)
4>>> for ingrediente in ingredientes:
5>>> print(“-” + ingrediente)
6>>>hacer_pizza(16, ‘peperoni’)
7>>>hacer_pizza(12, ‘hongos’, ‘jamon’, ‘queso’)

Resultado en consola
Haciendo una pizza de 16 pulgadas con los siguientes ingredientes:
-peperoni
Haciendo una pizza de 12 pulgadas con los siguientes ingredientes:
-hongos
-jamon
-queso

5.5. Módulos:

Son archivos con extensión “.py” que tienen como contenido funciones, los cuales nos permiten
reutilizar nuestro código.

Vamos a trabajar con el ejemplo anterior.

Crearemos un archivo con el nombre: pizza.py con el siguiente contenido


Código
1>>>def hacer_pizza(tamano, *ingredientes):
2>>> “””Resumen del pedido de pizza”””
3>>> print(“\nHaciendo una pizza de “ + “” + str(tamano) + “
pulgadas con los siguientes “ +
“ingredientes:”)
4>>> for ingrediente in ingredientes:
5>>> print(“-” + ingrediente)

Creamos un archivo con el nombre: hacer_pizza.py, donde utilizamos la palabra reservada “import”
seguido del nombre del modulo “pizza” el cual contiene nuestra función: “hacer_pizza”:
Código
1>>>import pizza
2>>>pizza.hacer_pizza(16, ‘peperoni’)
3>>>pizza.hacer_pizza(12, ‘hongos’, ‘jamon’, ‘queso’)

65
María Isabel Landeras Pilco

Ejecutamos el archivo: hacer_pizza.py



Resultado en consola
Haciendo una pizza de 16 pulgadas con los siguientes ingredientes:
-peperoni

Haciendo una pizza de 12 pulgadas con los siguientes ingredientes:


-hongos
-jamon
-queso

También podemos llamar a nuestro módulo de la siguiente manera. (1) Donde empezamos con la
palabra reservada “from” seguido del nombre de nuestro modulo + la palabra reservada “import”
seguido del nombre de nuestra función.
Código
1>>>from pizza import hacer_pizza
2>>>hacer_pizza(16, ‘peperoni’)
3>>>hacer_pizza(12, ‘hongos’, ‘jamon’, ‘queso’)

Resultado en consola
Haciendo una pizza de 16 pulgadas con los siguientes ingredientes:
-peperoni

Haciendo una pizza de 12 pulgadas con los siguientes ingredientes:


-hongos
-jamon
-queso

Nota: no es necesario poner el nombre del módulo delante de la función como fue en el caso del
ejercicio anterior. (pizza.hacer_pizza)

5.6. Utilizando Alias con nuestras funciones.


El uso de un alias es útil para poder renombrar el llamado a nuestras funciones y evitar algunos
conflictos con nombres utilizando en nuestro código.
Código
1>>>from pizza import hacer_pizza as hp
2>>>hp(16, ‘peperoni’)
3>>>hp(12, ‘hongos’, ‘jamon’, ‘queso’)

66
MANUAL DE LENGUAJE DE PROGRAMACIÓN PYTHON

Resultado en consola
Haciendo una pizza de 16 pulgadas con los siguientes ingredientes:
-peperoni

Haciendo una pizza de 12 pulgadas con los siguientes ingredientes:


-hongos
-jamon
-queso

En caso tengamos más de una función dentro de nuestro modulo “pizza.py” (1) podemos utilizar
“import *”.
Código
1>>>from pizza import *
2>>>hacer_pizza(16, ‘peperoni’)
3>>>hacer_pizza(‘hongos’, ‘jamon’, ‘queso’)

Resultado en consola
Haciendo una pizza de 16 pulgadas con los siguientes ingredientes:
-peperoni

Haciendo una pizza de hongos pulgadas con los siguientes


ingredientes:
-jamon
-queso

67
María Isabel Landeras Pilco

68
MANUAL DE LENGUAJE DE PROGRAMACIÓN PYTHON

VI. UNIDAD : PROGRAMACIÓN ORIENTADA A OBJETOS

6.1. Clase
En el mundo real podemos definir a través de una clase cualquier tipo de cosas, por ejemplo tenemos
una clase llamada “perro” que se puede “instanciar” que quiere decir que creamos al objeto perro en
particular, el cual a su vez tiene características (nombre y edad) y comportamientos (sentar y rodar).
Por convención, los nombres de clases se inician con mayúsculas. La función __INIT__ es una función
especial que se ejecuta automáticamente creando una nueva instancia de la clase. Esta función inicia
y finaliza con “__” para evitar conflictos con funciones definidas por el usuario.
La (3) función __init__ recibe un parámetro obligatorio llamado “self” lo cual el sistema lo pasa
automáticamente. El parámetro se define antes de los parámetros definidos por el usuario.
Ejemplo de definición de la clase “Perro”:

1>>>class Perro():
2>>> “””Definicion de la clase Perro.”””
3>>> def __init__(self, nombre, edad):
4>>> “””Inicializa los atributos edad y nombre.”””
5>>> self.nombre = nombre
6>>> self.edad = edad
7>>> def sentarse(self):
8>>> “””Simulacion de la accion sentarse.”””
9>>> print(self.nombre.title() + “ esta ahora sentado.”)

10>>> def rodar(self):


11>>> “””Simulacion de la accion rodar.”””
12>>> print(self.nombre.title() + “ rodando.”)
13>>>mi_perro = Perro(‘yogy’, 6)

14>>>print(“El nombre de mi perro es “ + mi_perro.nombre.title()


+ “.”)
15>>>print(“Mi perro tiene “ + str(mi_perro.edad) + “ años.”)

Resultado en consola
El nombre de mi perro es Yogy.

69
María Isabel Landeras Pilco

Mi perro tiene 6 años.

Hacemos un (16,17) llamado a las funciones “sentarse” y “rodar” a través de nuestra variable “mi_
perro”.
Código
1>>>class Perro():
2>>> “””Definicion de la clase Perro.”””
3>>> def __init__(self, nombre, edad):
4>>> “””Inicializa los atributos edad y nombre.”””
5>>> self.nombre = nombre
6>>> self.edad = edad
7>>> def sentarse(self):
8>>> “””Simulacion de la accion sentarse.”””
9>>> print(self.nombre.title() + “ esta ahora sentado.”)

10>>> def rodar(self):


11>>> “””Simulacion de la accion rodar.”””
12>>> print(self.nombre.title() + “ rodando.”)
13>>>mi_perro = Perro(‘yogy’, 6)
14>>>print(“El nombre de mi perro es “ + mi_perro.nombre.title()
+ “.”)
15>>>print(“Mi perro tiene “ + str(mi_perro.edad) + “ años.”)
16>>>mi_perro.sentarse()
17>>>mi_perro.rodar()

Resultado en consola
El nombre de mi perro es Yogy.
Mi perro tiene 6 años.
Yogy esta ahora sentado.
Yogy rodando.

70
MANUAL DE LENGUAJE DE PROGRAMACIÓN PYTHON

Podemos hacer un llamado a múltiples instancias, en este caso vamos a (13, 14) crear dos objetos.
Y a la vez se (7) definen funciones tales como “sentarse”, (10) “rodar” para posteriormente acceder a
sus atributos.

Código
1>>>class Perro():
2>>> “””Definicion de la clase Perro.”””
3>>> def __init__(self, nombre, edad):
4>>> “””Inicializa los atributos edad y nombre.”””
5>>> self.nombre = nombre
6>>> self.edad = edad
7>>> def sentarse(self):
8>>> “””Simulacion de la accion sentarse.”””
9>>> print(self.nombre.title() + “ esta ahora sentado.”)

10>>> def rodar(self):


11>>> “””Simulacion de la accion rodar.”””
12>>> print(self.nombre.title() + “ rodando.”)
13>>>mi_perro = Perro(‘yogy’, 6)
14>>>tu_perro = Perro(‘barry’, 3)
15>>>print(“El nombre de mi perro es “ + mi_perro.nombre.title()
+ “.”)
16>>>print(“Mi perro tiene “ + str(mi_perro.edad) + “ años.”)
17>>>mi_perro.sentarse()
18>>>print(“El nombre de tu perro es “ + tu_perro.nombre.title()
+ “.”)
19>>>print(“Tu perro tiene “ + str(tu_perro.edad) + “ años.”)
20>>>tu_perro.sentarse()

Resultado en consola
El nombre de mi perro es Yogy.
Mi perro tiene 6 años.
Yogy esta ahora sentado.
El nombre de tu perro es Barry.
Tu perro tiene 3 años.
Barry esta ahora sentado.

71
María Isabel Landeras Pilco

En el siguiente ejemplo se hace hacer cualquier número de instancias según la necesidad que
tengamos. A la vez podemos hacer instancias de muchos objetos del mundo real.
Vamos a realizar (1) otro ejemplo creando la clase “Carro”

Código
1>>>class Carro():
2>>> “””Una clase que representa un carro”””
3>>> def __init__(self, fabricacion, modelo, ano):
4>>> “””Initializa atributos que describen el carro”””
5>>> self.fabricacion = fabricacion
6>>> self.modelo = modelo
7>>> self.ano = ano
8>>> def obtener_descripcion_nombre(self):
9>>> “””Descripcion de los datos del carro”””
10>>> nombre_completo = str(self.ano) + ‘ ‘ + self.fabricacion
+ ‘ ‘ + self.modelo
11>>> return nombre_completo.title()

12>>>mi_nuevo_carro = Carro(‘audi’, ‘a4’, 2016)


13>>>print(mi_nuevo_carro.obtener_descripcion_nombre())

Resultado en consola
2016 Audi A4

72
MANUAL DE LENGUAJE DE PROGRAMACIÓN PYTHON

Definimos un parámetro por defecto, (3) en este caso solo hacemos la definición dentro de nuestra
función “__init__”.
Código
1>>>class Carro():
2>>> “””Una clase que representa un carro”””
3>>> def __init__(self, fabricacion, modelo, ano):
4>>> “””Initializa atributos que describen el carro”””
5>>> self.fabricacion = fabricacion
6>>> self.modelo = modelo
7>>> self.ano = ano
8>>> self.lectura_odometro = 0
9>>> def obtener_descripcion_nombre(self):
10>>> “””Descripcion de los datos del carro”””
11>>> nombre_completo = str(self.ano) + ‘ ‘ + self.fabricacion + ‘ ‘ + self.modelo
12>>> return nombre_completo.title()
13>>> def leer_odometro(self):

14>>> “”” Imprime un mensaje mostrando el kilometraje del carro.”””


15>>> print(“El carro tiene “ + str(self.lectura_odometro) + “ kilometros”)
16>>>mi_nuevo_carro = Carro(‘audi’, ‘a4’, 2016)
17>>>print(mi_nuevo_carro.obtener_descripcion_nombre())
18>>>mi_nuevo_carro.leer_odometro()

Resultado en consola
2016 Audi A4
El carro tiene 0 kilometros

73
María Isabel Landeras Pilco

Modificando valores de atributos, en este caso vamos a modificar (13) el valor del atributo “lectura_
odometro”

1>>>class Carro():
2>>> “””Una clase que representa un carro”””
3>>> def __init__(self, fabricacion, modelo, ano):
4>>> “””Initializa atributos que describen el carro”””
5>>> self.fabricacion = fabricacion
6>>> self.modelo = modelo
7>>> self.ano = ano
8>>> self.lectura_odometro = 0
9>>> def obtener_descripcion_nombre(self):
10>>> “””Descripcion de los datos del carro”””
11>>> nombre_completo = str(self.ano) + ‘ ‘ + self.fabricacion + ‘ ‘ + self.modelo
12>>> return nombre_completo.title()
13>>> def leer_odometro(self):
14>>> “”” Imprime un mensaje mostrando el kilometraje del carro.”””
15>>> print(“El carro tiene “ + str(self.lectura_odometro) + “ kilometros”)
16>>>mi_nuevo_carro = Carro(‘audi’, ‘a4’, 2016)
17>>>print(mi_nuevo_carro.obtener_descripcion_nombre())
18>>>mi_nuevo_carro.lectura_odometro = 27
19>>>mi_nuevo_carro.leer_odometro()

Resultado en consola
2016 Audi A4
El carro tiene 0 kilometros

74
MANUAL DE LENGUAJE DE PROGRAMACIÓN PYTHON

Vamos a actualizar (16) el parámetro “lectura_odometro” a través de la función “actualizar_odometro”

Código
1>>>class Carro():
2>>> “””Una clase que representa un carro”””
3>>> def __init__(self, fabricacion, modelo, ano):
4>>> “””Initializa atributos que describen el carro”””
5>>> self.fabricacion = fabricacion
6>>> self.modelo = modelo
7>>> self.ano = ano
8>>> self.lectura_odometro = 0
9>>> def obtener_descripcion_nombre(self):
10>>> “””Descripcion de los datos del carro”””
11>>> nombre_completo = str(self.ano) + ‘ ‘ + self.fabricacion + ‘ ‘ + self.modelo
12>>> return nombre_completo.title()
13>>> def leer_odometro(self):
14>>> “”” Imprime un mensaje mostrando el kilometraje del carro.”””
15>>> print(“El carro tiene “ + str(self.lectura_odometro) + “ kilometros”)
16>>> def actualizar_odometro(self, kilometros):
17>>> “”” Actualiza el odometro con un valor dado.”””
18>>> self.lectura_odometro = kilometros
19>>>mi_nuevo_carro = Carro(‘audi’, ‘a4’, 2016)
20>>>print(mi_nuevo_carro.obtener_descripcion_nombre())
21>>>mi_nuevo_carro.actualizar_odometro(30)
22>>>mi_nuevo_carro.leer_odometro()

Resultado en consola
2016 Audi A4
El carro tiene 0 kilometros

75
María Isabel Landeras Pilco

En el siguiente código realizamos (16-21) una modificación de la función “actualizar_odometro”


para aceptar valores mayores al recorrido actual.

Código
1>>>class Carro():
2>>> “””Una clase que representa un carro”””
3>>> def __init__(self, fabricacion, modelo, ano):
4>>> “””Initializa atributos que describen el carro”””
5>>> self.fabricacion = fabricacion
6>>> self.modelo = modelo
7>>> self.ano = ano

8>>> self.lectura_odometro = 0
9>>> def obtener_descripcion_nombre(self):
10>>> “””Descripcion de los datos del carro”””
11>>> nombre_completo = str(self.ano) + ‘ ‘ + self.fabricacion + ‘ ‘ + self.modelo
12>>> return nombre_completo.title()
13>>> def leer_odometro(self):
14>>> “”” Imprime un mensaje mostrando el kilometraje del carro.”””
15>>> print(“El carro tiene “ + str(self.lectura_odometro) + “ kilometros”)

16>>> def actualizar_odometro(self, kilometros):


17>>> “”” Actualiza el odometro con un valor dado.”””
18>>> if kilometros >= self.lectura_odometro:
19>>> self.lectura_odometro = kilometros
20>>> else:
21>>> print(“No se puede ingresar un valor de recorrido menor al actual”)
22>>>mi_nuevo_carro = Carro(‘audi’, ‘a4’, 2016)
23>>>print(mi_nuevo_carro.obtener_descripcion_nombre())
24>>>mi_nuevo_carro.actualizar_odometro(30)
25>>>mi_nuevo_carro.leer_odometro()
26>>>mi_nuevo_carro.actualizar_odometro(20)

Resultado en consola
2016 Audi A4
El carro tiene 30 kilometros
No se puede ingresar un valor de recorrido menor al actual

76
MANUAL DE LENGUAJE DE PROGRAMACIÓN PYTHON

Vamos a definir (22) una función “incrementar_odometro” que actualiza el valor del odómetro.

Código
1>>>class Carro():
2>>> “””Una clase que representa un carro”””
3>>> def __init__(self, fabricacion, modelo, ano):
4>>> “””Initializa atributos que describen el carro”””
5>>> self.fabricacion = fabricacion
6>>> self.modelo = modelo
7>>> self.ano = ano
8>>> self.lectura_odometro = 0
9>>> def obtener_descripcion_nombre(self):
10>>> “””Descripcion de los datos del carro”””
11>>> nombre_completo = str(self.ano) + ‘ ‘ + self.fabricacion + ‘ ‘ + self.modelo
12>>> return nombre_completo.title()

13>>> def leer_odometro(self):


14>>> “”” Imprime un mensaje mostrando el kilometraje del carro.”””
15>>> print(“El carro tiene “ + str(self.lectura_odometro) + “ kilometros”)
16>>> def actualizar_odometro(self, kilometros):
17>>> “”” Actualiza el odometro con un valor dado.”””
18>>> if kilometros >= self.lectura_odometro:
19>>> self.lectura_odometro = kilometros
20>>> else:
21>>> print(“No se puede ingresar un valor de recorrido menor al actual”)
22>>> def incrementar_odometro(self, kilometros):
23>>> “””Agregando una funcion que incrementa el valor del odometro.”””
24>>> self.lectura_odometro += kilometros
25>>>mi_usado_carro = Carro(‘audi’, ‘a4’, 2016)
26>>>print(mi_usado_carro.obtener_descripcion_nombre())
27>>>mi_usado_carro.actualizar_odometro(5000)
28>>>mi_usado_carro.leer_odometro()
29>>>mi_usado_carro.incrementar_odometro(100)
30>>>mi_usado_carro.leer_odometro()

Resultado en consola
2016 Audi A4
El carro tiene 5000 kilometros
El carro tiene 5100 kilometros

77
María Isabel Landeras Pilco

6.2. Herencia
La herencia es una característica de la programación orientada a objetos, se caracteriza por que
cuando una clase hereda de otra, toma todos sus atributos y métodos de la primera clase. La clase
principal donde se hereda se llama clase “padre” y la clase que hereda se llama clase “hija”.

Se trabajara con un ejemplo de Herencia con clase padre “Carro” y la clase hijo “Carro Electrico”.

Código
1>>>class Carro():
2>>> “””Caracteristicas de un carro.”””
3>>> def __init__(self, fabricante, modelo, ano):
4>>> self.fabricante = fabricante
5>>> self.modelo = modelo
6>>> self.ano = ano

7>>> self.lectura_odometro = 0
8>>> def obtener_descripcion(self):
9>>> nombre_completo = str(self.ano) + ‘ ‘ + self.fabricante + ‘ ‘ + self.modelo
10>>> return nombre_completo.title()
11>>> def leer_odometro(self):
12>>> print(“Este carro tiene “ + str(self.odometer_reading) + “ kilometros.”)
13>>> def actualizar_odometro(self, kilometraje):
14>>> if kilometraje >= self.lectura_odometro:
15>>> self.lectura_odometro = kilometraje
16>>> else:
17>>> print(“No puedes retroceder el odometro!”)
18>>> def increment_odometer(self, kilometros):
19>>> self.odometer_reading += kilometros
20>>>class CarroElectrico(Carro):
21>>> “””Representado los aspectos de una carro, especificos a un carro electrico.”””
22>>> def __init__(self, fabricante, modelo, ano):
23>>> “””Initializando los atributos de la clase padre.”””
24>>> super().__init__(fabricante, modelo, ano)
25>>>mi_tesla = CarroElectrico(‘tesla’, ‘modelo’, 2016)
26>>>print(mi_tesla.obtener_descripcion())

Resultado en consola
2016 Tesla Modelo

6.3. Importando clases:


Así como cuando trabajamos con módulos, cuando trabajamos con clases podemos tener nuestro
código organizado en distintos archivos como si fueran módulos.

78
MANUAL DE LENGUAJE DE PROGRAMACIÓN PYTHON

6.4. Importando una clase simple:


Primeramente definimos la clase “Carro” en un archivo “carro.py”
Código
1>>>class Carro():
2>>> “””Una clase que representa un carro”””
3>>> def __init__(self, fabricacion, modelo, ano):
4>>> “””Initializa atributos que describen el carro”””
5>>> self.fabricacion = fabricacion
6>>> self.modelo = modelo
7>>> self.ano = ano
8>>> self.lectura_odometro = 0
9>>> def obtener_descripcion_nombre(self):

10>>> “””Descripcion de los datos del carro”””

11>>> nombre_completo = str(self.ano) + ‘ ‘ + self.fabricacion + ‘ ‘ + self.modelo


12>>> return nombre_completo.title()
13>>> def leer_odometro(self):
14>>> “”” Imprime un mensaje mostrando el kilometraje del carro.”””
15>>> print(“El carro tiene “ + str(self.lectura_odometro) + “ kilometros”)
16>>> def actualizar_odometro(self, kilometros):
17>>> “”” Actualiza el odometro con un valor dado.”””
18>>> if kilometros >= self.lectura_odometro:
19>>> self.lectura_odometro = kilometros
20>>> else:
21>>> print(“No se puede ingresar un valor de recorrido menor al actual”)

22>>> def incrementar_odometro(self, kilometros):


23>>> “””Agregando una funcion que incrementa el valor del odometro.”””
24>>> self.lectura_odometro += kilómetros

Creamos un archivo “mi_carro.py” en donde instanciaremos la clase “Carro”.

Código
1>>>from carro import Carro
2>>>nuevo_carro = Carro(‘audi’, ‘a4’, 2016)
3>>>print(nuevo_carro.obtener_descripcion_nombre())
4>>>nuevo_carro.lectura_odometro = 23
5>>>nuevo_carro.leer_odometro()

Resultado en consola
2016 Audi A4
El carro tiene 23 kilometros

79
María Isabel Landeras Pilco

Vamos a utilizar la clase (1-24) Carro como clase padre, y la (25-50) Clase batería será la clase hija. El
siguiente código será guardado en el archivo “carro.py”

Código
1>>>class Carro():
2>>> “””Una clase que representa un carro”””
3>>> def __init__(self, fabricacion, modelo, ano):
4>>> “””Initializa atributos que describen el carro”””
5>>> self.fabricacion = fabricacion
6>>> self.modelo = modelo

7>>> self.ano = ano


8>>> self.lectura_odometro = 0
9>>> def obtener_descripcion_nombre(self):
10>>> “””Descripcion de los datos del carro”””
11>>> nombre_completo = str(self.ano) + ‘ ‘ + self.fabricacion + ‘ ‘ + self.modelo
12>>> return nombre_completo.title()
13>>> def leer_odometro(self):
14>>> “”” Imprime un mensaje mostrando el kilometraje del carro.”””
15>>> print(“El carro tiene “ + str(self.lectura_odometro) + “ kilometros”)

16>>> def actualizar_odometro(self, kilometros):


17>>> “”” Actualiza el odometro con un valor dado.”””
18>>> if kilometros >= self.lectura_odometro:
19>>> self.lectura_odometro = kilometros
20>>> else:
21>>> print(“No se puede ingresar un valor de recorrido menor al actual”)

22>>> def incrementar_odometro(self, kilometros):


23>>> “””Agregando una funcion que incrementa el valor del odometro.”””
24>>> self.lectura_odometro += kilometros

25>>>class Bateria():
26>>> “””Intentode creacion de una bateria para un carro electrico.”””
27>>> def __init__(self, tamano_bateria=70):
28>>> “””Inicializa el tamaño de bateria.”””
29>>> self.tamano_bateria = tamano_bateria

30>>> def describe_bateria(self):


31>>> “””Imprime la descripcion de la bateria.”””
32>>> print(“Este carro tiene una bateria “ + str(self.tamano_bateria) + “-kWh.”)

33>>> def obtener_rango(self):


34>>> “””Se imprime una declaracion sobre el rango que la bateria proporciona.”””

80
MANUAL DE LENGUAJE DE PROGRAMACIÓN PYTHON

35>>> if self.tamano_bateria == 70:


36>>> rango = 240
37>>> elif self.tamano_bateria == 85:
38>>> rango = 270
39>>> mensaje = “Este carro puede ir aproximadamente a “ + str(rango)
40>>> mensaje += “ kilometros con una carga completa.”

41>>> print(mensaje)
42>>>class CarroElectrico(Carro):
43>>> “””Modela aspectos de un carro electrico.”””
44>>> def __init__(self, fabricacion, modelo, ano):
45>>> “””
46>>> Inicializa parametros de la clase padre.
47>>> Luego se inicializa parametros de un carro electrico.
48>>> “””
49>>> super().__init__(fabricacion, modelo, ano)
50>>> self.bateria = Bateria()

Creamos (2)una instancia de la clase CarroElectrico. El siguiente código será guardado en el archivo
“mi_carro_electrico.py”

Código
1>>>from carro import CarroElectrico
2>>>mi_tesla = CarroElectrico(‘tesla’, ‘modelo’, 2016)
3>>>print(mi_tesla.obtener_descripcion_nombre())
4>>>mi_tesla.bateria.describe_bateria()
5>>>mi_tesla.bateria.obtener_rango()

Resultado en consola
2016 Tesla Modelo
Este carro tiene una bateria 70-kWh.
Este carro puede ir aproximadamente a 240 kilometros con una carga
completa.

Nosotros podemos instanciar distintas clases en un solo archivo. Crearemos un archivo llamado
“mis_carros.py”

Código
1>>>from carro import Carro, CarroElectrico
2>>>mi_escarabajo = Carro(‘volkswagen’, ‘escarabajo’, 2016)
3>>>print(mi_escarabajo.obtener_descripcion_nombre())
4>>>mi_tesla = CarroElectrico(‘tesla’, ‘roadster’, 2016)
5>>>print(mi_tesla.obtener_descripcion_nombre())

81
María Isabel Landeras Pilco

Resultado en consola
2016 Volkswagen Escarabajo
2016 Tesla Roadster

También podemos utilizar las N -clases de un módulo haciendo un llamado al archivo que las
contiene, en nuestro caso “carro.py”

Código
1>>>import carro
2>>>mi_escarabajo = carro.Carro(‘volkswagen’, ‘escarabajo’, 2016)
3>>>print(mi_escarabajo.obtener_descripcion_nombre())
4>>>mi_tesla = carro.CarroElectrico(‘tesla’, ‘roadster’, 2016)
5>>>print(mi_tesla.obtener_descripcion_nombre())

Resultado en consola
2016 Volkswagen Escarabajo
2016 Tesla Roadster

Podemos utilizar cualquier clase de un módulo utilizando la siguiente sintaxis:


1>>>from nombre_modulo import *

82
MANUAL DE LENGUAJE DE PROGRAMACIÓN PYTHON

REFERENCIAS BIBLIOGRÁFICAS

Lutz, M. (2013). Learning Python. O’Reilly Media.


Matthes, E. (2016). Python Crash Course. San Francisco, CA: No Starch Press, Inc.
Needham, T. C. (2017). Python: For Beginners: A Crash Course Guide To Learn Python in 1
Week. Independently published.
Summerfield, M. (2010). Programming in Python 3. Boston: Pearson Education, Inc.
Sweigart, A. (2015). Automate the Boring Stuff with Python: Practical Programming for Total
Beginners. No Starch Press.

83
María Isabel Landeras Pilco

84

También podría gustarte