Libro Python
Libro Python
1
Tabla de contenido
1. Elementos matemáticos básicos de programación
Operadores
a. Variables
b. Tipos de datos
2. Metodología
a. Análisis
b. Codificación
c. Verificación o prueba de escritorio
3. Programas básicos
4. Programas con estructuras de decisión
5. Funciones
6. Programas con estructuras repetitivas
a. While
b. For
7. Listas
8. Arreglos
9. Matrices
10. Archivos
2
1. Elementos básicos de programación
Otro concepto importante en programación son los datos, estos son el punto de partida y son
ellos quienes sufren las transformaciones que darán los resultados deseados. Cuando un
programa necesita almacenar un dato, necesita a través de una variable.
Una variable es una localización o casillero en la memoria principal que almacena un valor
que puede cambiar en el transcurso de la ejecución del programa.
Toda variable tiene un nombre, un tipo de dato y un valor
El tipo de dato es la naturaleza del valor que puede tomar la variable, y puede ser:
Entero: si la variable almacenará un número entero
Real: si la variable almacenará un número decimal
Carácter: si la variable almacenará un carácter
Cadena: si la variable almacenará un conjunto de caracteres
Lógico: si la variable almacenará el valor verdadero o el valor falso
El operador de asignación
Por ejemplo:
a←0
b←5
c ← -3
3
Para tener en cuenta
Operadores
Los operadores son elementos que relacionan de forma diferente dos valores de una o más
variables y/o constantes. Estos pueden ser aritméticos, relacionales o lógicos.
Operadores aritméticos
Las expresiones que tienen dos o más operandos requieren unas reglas matemáticas que
permiten determinar el orden de las operaciones.
1) () []
2) - + (unarios, de signo)
3) * / %
4) + -
5) < > <= >= = = !=
6) ! (negación)
7) || (O), && (Y)
Los operadores en una misma expresión o con igual nivel de prioridad se evalúan de izquierda
a derecha.
Ejemplos:
a)
7+5–6
12 – 6
6
4
b)
9 + 7 * 8 – 36 / 5
9 + 56 – 36 / 5
9 + 56 – 7.2
65 – 7.2
57.8
Operadores Relacionales
Los operadores relacionales establecen una relación entre dos valores. Esta comparación
produce un resultado de certeza o falsedad (verdadero o falso). Los operadores relacionales
tienen menor prioridad que los operadores aritméticos.
== Igual que
!= Diferente a
< Menor que
> Mayor que
<= Menor o igual que
>= Mayor o igual que
Ejemplo:
a = 10
b = 20
c = 30
a + b>c
10+20>30
30 >30
Falso
5
Operadores Lógicos
Conjunción (Y): proporciona un valor verdadero (V), si los dos operandos son verdaderos;
en caso contrario da un resultado falso (F).
Disyunción (O): proporciona un valor verdadero (V), si uno de los dos operandos es
verdadero; en caso contrario da un resultado falso (F).
Negación (No): este operador relaciona sólo un operando booleano y da como resultado un
valor opuesto al que tenga el operando.
6
2. Metodología
La metodología que se utilizara para resolver cada uno de los problemas planteados,
incluye los pasos de análisis, código en Python y prueba de escritorio.
Adicional a esto se mostrará como se ve la ejecución del programa, dentro del entorno
de desarrollo.
¿Cuanto
mide de
largo?
¿Cuanto mide de
ancho?
Una vez identificados los datos de entrada y salida, se escriben los pasos aplicados
para a encontrar lo que se pide calcular, es decir el proceso a seguir, incluyendo las
formulas aplicada y la lógica que se llevara a cabo. De tal forma que para el ejemplo
del cálculo del área del tablero su análisis queda:
7
Datos de Entrada
Identificador Descripción Tipo
ancho Ancho del tablero Real
En el paso dos, una vez analizado y entendido lo que se pide resolver y cómo se va a
resolver, se procede a escribir las instrucciones en el lenguaje código Python.
Para escribir un programa los datos de entrada se piden con la instrucción input y se
guardan en las variables de entrada, luego se realiza el proceso, usando la sintaxis de
Python que se ira viendo poco a poco, a lo largo del texto. Y los datos de salida una
vez calculados se muestran por pantalla con la instrucción print.
8
Para hacer la prueba de escritorio se va a numerar las líneas del código, esto se hace
automáticamente en Colab
Para la prueba de escritorio se usará una tabla y en cada columna de la tabla irán los
mensajes que deben aparecer por pantalla al ejecutar el programa, el nombre o
identificador de cada una de las variables utilizadas dentro del programa y algunas
veces escribiremos algún condicional para que sea más claro entender línea por
línea como se lleva a cabo la evaluación de las instrucciones del programa.
En la prueba de escritorio se hace seguimiento línea por línea del código y esto se
va viendo reflejado en la tabla.
9
En la siguiente sección se van a realizar ejercicios de programas básicos en Python,
para cada ejercicio se aplicarán los pasos de la metodología explicados anteriormente.
Para efectos prácticos no se enumerarán más las líneas del código del programa, pero
se tratara de evaluar línea por linae y asimismo se ira llenando la tabla.
Análisis
Datos de Entradas
Identificador Descripción Tipo
base base del Real
triángulo
Código en Python
Recuerde que los datos entrada son aquellos que se piden al usuario
10
Prueba de escritorio
Análisis
Entradas
Identificador Descripción Tipo
a Primer coeficiente Entero
Segundo coeficiente
b Entero
Tercer coeficiente
c entero
Proceso
Aplicar las ecuaciones
11
−𝑏 + √𝑏 2 − 4𝑎𝑐
𝑥1 = −
2𝑎
−𝑏 − √𝑏 2 − 4𝑎𝑐
𝑥2 = −
2𝑎
Identificador Descripción Tipo
X1 Solución 1 Real
X2 Solución 2 Real
Código en Python
Prueba de escritorio
Mensajes a b c X1 X2
por pantalla
Digite el 1
coeficiente a:
Digite el 2
coeficiente b:
Digite el 1 -1.0
termino
independiente
c:
12
-1.0
Solución 1: -
1.0
Solución 2: -
1.0
Ejemplo de ejecución
gradosF=gradosCx1,88+3,2
Análisis
Datos de Entrada
Identificador Descripción Tipo
gradosC Temperatura en grados centígrados Real
Proceso
Aplicar la formula
gradosF=gradosC*1.8+32
Datos de salida
Identificador Descripción Tipo
gradosF Temperatura en grados fahrenheit Real
Código en Python
13
Prueba paso a paso
Mensaje por pantalla gradosC gradosF
Ingrese los grados 28
centígrados
28*1.8+32
82.4
La temperatura en grados
fahrenheit es igual a 82.4
Ejercicios Propuestos
Resolver los siguientes problemas, aplicando la metodología del curso (análisis, codigo
en Python y prueba de escritorio
4. Conversiones de temperatura.
a) Dada la temperatura en grados Kelvin obtener la temperatura equivalente en Celsius.
b) Dada la temperatura en grados Fahrenheit obtener la temperatura equivalente en Kelvin.
14
Programa con condicionales
Análisis
Entradas
Identificad Descripción Tipo
or
edad Edad de la entero
persona
Proceso
Si edad>=18 muestra un mensaje
diciendo que es mayor de edad
En caso contrario muestra un mensaje
diciendo que es menor de edad
Salida
Identificad Descripción Tipo
or
No se crea Muestra
ninguna mensaje
variable diciendo si es
mayor o menor
de edad
Código Python
15
Prueba de escritorio
Salida por pantalla edad edad>25
Digite su edad 25
verdadero
Usted es mayor de edad
Categoría Comisión
1 15%
2 10%
3 5%
Análisis
Entradas
Identificador Descripción Tipo
Categoría Categoría del Entero
empleado
16
Valor de las ventas
Real
ventas
Proceso
Dependiendo del valor de la categoría, se calcula la comisión
según el porcentaje que le corresponde: si la categoría es 1, la
comisión se calcula multiplicando 0.15 por el valor de las
ventas realizadas, si la categoría es 2, la comisión se calcula
multiplicando las ventas por 0.10, si la categoría es 3, la
comisión se calcula multiplicando las ventas por 0.05 y si la
categoría es cualquier otro valor se imprime un mensaje de
“Categoría no existente”.
Salidas
Identificador Descripción Tipo
comision Comisión a ganar real
Código Python
Tener en cuenta que la variable comisión se debe inicializar antes de los condicionales,
porque en caso de que la categoría no exista, la variable comisión no tomaría ninguno de
los valores asignados dentro de los condicionales. Y podría imprimir un valor basura que
tenga almacenado.
Prueba de escritorio
17
Mensaje por pantalla ventas categoria comision
Digite el valor de la 500000
ventas
Digite la categoría 1
del vendedor
75000
La comisión ganada
es de 75000
Si se digita un estrato que no esté en la tabla se debe mostrar un mensaje indicando que el
estrato no es válido
Análisis
Entradas
Identificador Descripción Tipo
Estrato Estrato económico Real
del consumidor
18
Proceso
Si el estrato es 1 el valor de la
energía se calcula multiplicando el consumo por 1000 y
se le suma 5000. Si el estrato es 2 el valor de la energía
se calcula multiplicando el consumo por 1800 y se le
suma 10000 y si es estrato3, se calcula multiplicando
por 12000 y se le suma 3500 y si es estrato 4 se
multiplica por 150000 y se le suma 5000
Salidas
Identificador Descripción Tipo
valorEnergia El valor a pagar Real
por consumo de
energía
Código en Python
Prueba de escritorio
19
Ingrese el 200
consumo de
energia
361000
Valor consumo
de energía
361000
Funciones
Las funciones empaquetan y “aíslan” del resto del programa, una parte de código que
realiza alguna tarea específica.
Las funciones atienden a la estrategia “divide y vencerás” estrategia para resolver
problemas grandes, dividiéndolo en problemas más pequeños.
Las funciones reciben datos del programa principal, realizan operaciones y le devuelven los
resultados.
20
igual que con la depuración, si el problema se encuentra en un procedimiento
llamado, entonces puedes encontrarlo una vez y eliminarlo rápidamente.
➢ Sin embargo, si se usan procedimientos y funciones en exceso, el programa puede
ser más difícil de entender. Entre más difícil sea de entender, más tiempo se
necesita para arreglar un programa.
Para menor complejidad se va a escribir en funciones los ejercicios del capitulo anterior
Se revisara de nuevo el ejercicio uno, peroe sta vez haceindo el codigo dentro de una
función.
Análisis
Entradas
Identificad Descripción Tipo
or
edad Edad de la entero
persona
Proceso
Si edad>=18 muestra un mensaje
diciendo que es mayor de edad
En caso contrario muestra un mensaje
diciendo que es menor de edad
Salida
Identificad Descripción Tipo
or
No se crea Muestra
ninguna mensaje
variable diciendo si es
mayor o menor
de edad
Código Python
21
Este procedimiento se va a realizar dentro de una función llamada mayorEdad
La funciones instrucciones que se agrupan para resolver una tarea especifica, en este caso
calcular seterminar si la persona es mayor o menor de edad.
Una función se define con la palabra def y luego viene el nombre que se le da a la función,
seguido de unos parentesis que abren y cierran. Luego identado más a la la derecha de la
palabra def, se escriben las instrucciones que hace parte de la función.
Para que una función se ejecute debe ser llamada desde el programa principal. Siendo el
programa principal el codigo que esta escrito identado totalmente a la izquierda de la
ventana del entorno de desarrollo.
Prueba de escritorio
22
Hasta ahora con una sola tarea o un programa tan simple no se ve el aprovechamiento de
usar funciones, pero si nos pidieran determinar si dos personas o más son mayores de edad,
dentro del mismo programa en vez de escribir el código dos veces, se escribe una sola
función y se llama dos veces, optimizando así el desarrollo del programa, quedando el
código así:
La función puede recibir parámetros, dentro del cuerpo de la función se trabaja con los
valores que fueron recibidos para las variables x,y.
En este ejemplo la función retorna el resultado de la suma de x y y. Este valor sera tomado
en el lugar donde la función sea llamada. Desde el programa principal la función se debe
llamar así:
23
En la función resta no se reciben parámetros, por lo tanto los datos que necesita para hacer
la resta, debe pedirlos desde el cuerpo de la función.
La función no retorna ningún valor, por lo tanto, el resultado de la resta se imprime desde la
función.
24
Que está definida igual que la función multiplicación. Por lo tanto, se llama si desde el
programa principal.:
Desarrolle un programa que lea los datos de 2 catetos (a,b) y determine cuál de los 2 catetos
es mayor y muestre su hipotenusa.
Entradas
identificador Descripción Tipo
a Primer cateto del real
triangulo
Salida
Nombre Descripción Tipo
hipotenusa Hipotenusa del real
triangulo
lado mayor del real
mayor triangulo
25
Código Python
La función que determina el mayor de dos números recibe los dos números, realiza una
comparación entre ellos para determinar el mayor y retorna el mayor.
La función que determinar la hipotenusa recibe los dos números, aplica la fórmula del
teorema de Pitágoras para obtener la hipotenusa y la retorna.
El programa principal usa estas dos funciones para resolver el problema.
Prueba de escritorio
Programa principal
Mensaje por a b m h
pantalla
Digite el valor 4
del cateto a
26
Digite el valor 3
del cateto b
calcularMayor(4,3)
4
calculaHipotenusa(4,3)
5
El valor
mayor es 4
El valor de la
hipotenusa es
5
Calcularmayor(4,3)
a b mayor
4 3 4
calculaHipotenusa(4,3)
a b h
4 3 5
Para el siguiente vagón, usando funciones, haga un programa que calcule el área del vagón
27
Análisis
Entradas
Nombre Descripción Tipo
b Ancho del vagón Real
Código Python
28
Prueba de escritorio
Programa principal
mensaje por b a r aV
pantalla
Ingrese el valor 5
de b
Ingrese el valor 10
de a
Ingrese el valor 4
del r
areaVagon(5,10,4)
150.52
El valor del
área del vagón
es
150.52
areaVagon(5,10,4)
29
a b radio AR AC area
5 10 4
areaRectangulo(5,10)
50
areaCirculo(4)
50.26
50+50.26+50.26
150.52
areaRectangulo(5,10)
a b area
5 10 5*10
50
areaCirculo(4)
radio area
4 3.1416*4*4
50.26
Variables Globales: Son aquellas variables que se crean en el programa principal, por
fuera de cualquier función. Éstas son reconocidas en todo lugar del programa (incluso
dentro de las funciones)
30
Ejercicios propuestos
Tipo Precio($)
1 75000
2 97000
3 110000
Por cada cinco sillas compradas se obtiene un descuento, de acuerdo con la tabla
Tipo descuento
1 5%
2 7,5%
3 10%
El resto de las sillas se cobran a precio normal. Diseñe un programa que lea el tipo de silla
y la cantidad a comprar e imprima la cantidad, el precio unitario, el descuento y el precio
total, de lo que debe cancelar el cliente por la compra.
Nota: El almacén sólo vende un tipo de silla a cada cliente.
Estructuras de repetición
Son un grupo de instrucciones que permite la ejecución repetitiva de otro grupo de
instrucciones. Hay una variable asociada al ciclo o estructura de repetición que controla
el número de veces que se repetirán las instrucciones.
Existen 2 estructuras de repetición:
While
For
Estructura while
31
while( condicion):
instrucción 1
instrucción 2
……
Prueba de escritorio
32
3
4 4<=5
4
5
5<=5 verdero
5
6
6<=5 falso, rompe ciclo
El ultimo valor de a es 6, para cuyo valor ya no entra la ciclo, por lo tanto el ultimo valor de
a que se imprime es el 5..
Ejecución del programa
Otros ejemplos:
Para evitar que la tabla de la prueba de escritorio quede demasiado larga, se van a ir
colocando los valores que vayan tomando la variable al revisar cada línea de código, de
33
derecha a izquierda en la tabla, siempre y cuando las variables en las columnas de la tabla
este en ese orden, si al revisar una instrucción se afecta una variable que está ubicada en la
tabla a la izquierda, de la variable anterior modificada, entonces el nuevo valor se coloca en
la línea inferior siguiente de la tabla.
Prueba de escritorio
Mientras que la variable a sea menor que la variable b se hacen las instrucciones que están
dentro del ciclo. Note que la impresión de las variables c y a se hace cuando termina el
ciclo.
a b c a<b
9 7 3 9<7 Falso
Vemos que las instrucciones dentro del ciclo no se ejecutan, dado que la condición la
primera vez que se evalúa es falsa
34
El curso de Algebra se califica con dos parciales , el primero tiene un peso de 30% y el
segundo 35% también se saca una nota de laboratorios con un valor del 25% y una nota
del trabajo final del curso con un valor del 10%
Análisis
Entradas
Nombre Descripción Tipo
n Cantidad de estudiantes en el Entero
curso
Real
P1 Nota del parcial 1
Trab Real
Nota de los trabajos
35
definitiva = p1*0.30 + p2*0.35 + lab*0.25 + trab*0.1
Codigo Python
36
Mensaje por n j j<=n nombre definitiva
pantalla
Ingrese el 2 1 1<=2
número de Verdadero
estudiantes
Ingrese el Laura calcularDefinitiva()
nombre Pérez 3.55
La nota
definitiva de
Laura Pérez
es 3.55
2 2<=2
Verdadero
Ingrese el Juana calcularDefinitiva()
nombre Gómez 2.55
calcularDefinitiva()
p1 p2 lab trab definitiva
3 4 3 5 3*0.3+4*0.35+3*0.25+5*0.1
3.55
calculraDefinitiva()
37
round es una función prestablecida de Python que se utiliza para redondear un número y así
se imprime con los decimales deseados.
Diseñe un programa que permita ingresar números hasta que el usuario no desee continuar
más, en cuyo caso ingresa “n”. El programa debe mostrar la suma de todos los números
pares ingresados y la cantidad de números pares que se ingresaron.
Análisis
Entradas
Identificador Descripción Tipo
salir Es la opción ingresada para texto
indicar si desea continuar
“s” o desea salir “n”
38
Proceso
Se pide ingresar números hasta que el usuario no quiera
continuar más. Cada número que se ingresa debe ser
evaluado si es para, calculando su residuo, si este es o,
entonces el número es par y la variable cp se incrementa en
1. Cada número que se ingresa se debe acumular su suma en
la variable suma. Por lo tanto, la suma se hace fuera del
condicional.
Salida
Identificador Descripción Tipo
cp Contiene la cantidad de entero
números pares que se van
ingresando
Código Python
Prueba de escritorio
39
salir i cp suma While(salir==”S”) Mensaje por i%2==0
or salir==”S” pantalla
“S” 1 0 0 Verdadero Ingrese un
número
3 ¿Desea 3%2==0 falso
continuar?
“S” 6 1 6 Verdadero ¿Desea
continuar?
“S” 7 ¿Desea
continuar?
“S” 8 2 14 ¿Desea
continuar?
“n” La cantidad de
números pares es
2
El resultado de
la suma es 14
Variables contadoras: Son variables usadas para realizar, como su nombre lo indica,
conteos de la cantidad de veces que se cumple una situación específica.
Como su objetivo principal es contar, deben ser de tipo entero y normalmente se inicializan
en cero.
40
Variables acumuladoras: son variables usadas para ir acumulando el resultado de una
operación.
Pueden ser de tipo numérico (entero o real) en las cuales acumula el resultado de
operaciones matemáticas, o de tipo cadena en las cuales se concatenan frases o palabras.
Ejercicios Propuestos
1. Diseñe un algoritmo que reciba números digitados por el usuario y los imprima en
pantalla, el programa debe terminar cuando el usuario digite un número negativo.
2. Diseñe un algoritmo que reciba números digitados por el usuario y al final imprima
la suma de los números digitados, el programa debe terminar cuando el usuario
digite 0 (cero).
3. Suponga que el administrador de una tienda desea calcular el total de ventas del día,
para ello debe registrar el nombre del producto, el valor del producto y la cantidad
de unidades vendidas. Al final el sistema debe mostrar la lista de productos
digitados, el total de ventas por cada producto, el total de ventas del día
Estructura for
Para iterar sobre los elementos de una colección de elementos. Esta estructura es
usualmente utilizada cuando se conocen los valores inicial y final de la variable que
es utilizada en la condición de parada.
Un ciclo para (for) puede ser usado (y en Python es su único uso) para obtener uno a
uno los elementos de una colección de elementos y poder realizar con cada uno de
ellos el mismo bloque de operaciones.
Un esquema textual que en Python representa dicho ciclo para (for) es el que se da
en el siguiente fragmento de código.
41
El fragmento es el bloque de instrucciones previas que han sido ejecutadas antes del
ciclo. El fragmento es la variable que se usa para ir recorriendo (iterando) sobre los
elementos de la colección (tomar como valor cada uno de ellos en cada iteración).
El fragmento es la colección de elementos que será recorrida (iterada) con el ciclo.
Ejemplos
Ejemplos de range:
42
El comando range(-7, 8) genera la secuencia [-7, -6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5,
6, 7].
El comando range(2,11,2) genera la secuencia [2, 4, 6, 8, 10].
El comando range(11,20,2) genera la secuencia [11, 13, 15, 17, 19].
El comando range(5,-1,-1) genera la secuencia [5, 4, 3, 2, 1, 0].
El comando range(-2) genera la secuencia [ ]
Los rangos se combinan perfectamente con la instrucción para (for): Se define una variable
que se utilizara para recorrer cada número en el rango. En castellano se podrá pensar como:
“Para cada número i en el rango dado”. Esto se puede observar en los siguientes ejemplos:
Prueba de escritorio
El rango de números de la función range seria 1.. 19, recordemos que llega hasta un valor
antes que lo que aparece en el segundo parámetro. El ultimo valor de i es 19
43
El código
Prueba de escritorio
44
El siguiente código
Prueba de escritorio
45
El siguiente código
n s i Mensaje por
pantalla
6 0 1
1 1
2
3 2
3
5 3
4
9 4
5
14 5
6
20 6
La suma es igual a
20
46
Ejecución
a)
100
∑ 4𝑟
𝑟=1
Prueba de escritorio
47
Ejecución
b)
3
5−𝑖
∑
𝑖2 + 1
𝑖=1
Instrucciones en Python
Prueba de escritorio
48
2.8 La
sumatoria
es igual a
2.8
Ejecución
Ejercicios Resuelvos
Análisis
Entradas
Nombre Descripción Tipo
Cantidad: Cantidad de estudiantes Entero
Proceso
Desde 1 hasta la cantidad de estudiantes, se pide al usuario que
ingrese el nombre del estudiante y cada nombre ingresado se
concatena en una variable tipo texto.
Salida
listadoEstudiantes Listado de todos los Texto
estudiantes
Código Python
49
Prueba de escritorio
Factorial de un número
Se desea crear un programa en Python que permita imprimir en pantalla el factorial de un
número el cual es digitado por un usuario.
El factorial de un número n es la multiplicación de todos los números de la serie 1 a n, por
ejemplo el factorial de 5 es 1 x 2 x 3 x 4 x 5 = 120, el factorial de 3 es 1 x 2 x 3 = 6.
Análisis
Entradas
Identificador Descripción Tipo
n Número al que se le va a Entero
calcular el factorial
Proceso
Se realiza el acumulado de las multiplicaciones de los números
desde 1 hasta n.
Salida
factorial Listado de todos los entero
estudiantes
50
Código Python
Prueba de escritorio
Programa principal
Mensaje por n
pantalla
Ingrese un 4
número
El factorial de 4
es factorial(4)
El factorial de 4
es 4
Factorial(4)
n factorial i
4 1 1
1 2
2 3
6 4
24
Ejecución
51
Ciclos Anidados
52