Unidad 1 – Fundamentos de Programación en Python
Ejercicios y casos propuestos
En todos los ejercicios propuestos y en caso de ser necesario, elabore el seudocódigo y establezca las
variables de entrada, proceso y salida correspondiente.
I.- Operadores y expresiones – Tipos de datos: números y string
1. ¿Qué resultado se tiene de ejecutar estas tres líneas?
X = 10
X = x * 10
X o print x
2. Evalúe el polinomio x^4 + x^3 + 2x^2 -x + 11. Utilice variables para ingresar varios valores de x.
3. Evalúe el polinomio 13x^3 + 1/2x^1/2 -x + 3. Utilice variables para ingresar varios valores de x y
evalúe en x=10.
4. Elabore un programa que permita realizar las equivalencias de millas, pies y pulgadas a metros.
Solicite el ingreso de la cantidad y la unidad de medida, luego devolver el valor en metros. Considere
que: 1milla = 1609.334 m, 1 pie = 0.3048 m y 1 pulgada = 0.025 m.
5. Elabore un programa aplicando las reglas matemáticas de asociatividad, y decidir cuáles de las
siguientes expresiones son iguales entre sí:
a. ((b * b) - (4 * a * c)) / (2 * a)
b. (b * b - 4 * a * c) / (2 * a)
c. b * b - 4 * a * c / 2 * a
d. (b * b) - (4 * a * c / 2 * a)
e. 1 / 2 * b
f. b / 2.
6. Del ejercicio 5 haga lo siguiente en el intérprete: Denle a, b y c los valores 10, 100, 1000
respectivamente y evalúen las expresiones del ejercicio anterior.
7. Del ejercicio 5 haga lo siguiente en el intérprete: Denle a, b y c los valores 10.0, 100.0, 1000.0
respectivamente y evalúen las expresiones del ejercicio 5 y compare con los resultados del ejercicio
6.
8. Ingrese 5 números reales y calcule su media, desviación estándar y la redondeada a 1 decimal, la
suma de cuadrados y la media geométrica.
9. Escriba un programa pida la cantidad de segundos y devuelva en horas, minutos y segundos
correspondientes.
10. Escriba un programa que pida una temperatura en grados Fahrenheit y que escriba esa temperatura
en grados Celsius. Se recuerda que la relación entre grados Celsius (C) y grados Fahrenheit (F) es la
siguiente: C = (F - 32) / 1,8
11. Evalúa estas expresiones y sentencias en el mismo orden en el que aparecen e indica lo que muestra
el intérprete de Python como respuesta.
a. a = ‘b’
b. a + ‘b’
c. a + ‘a’
d. a*2 + ‘b’*3
e. 2*(a + ‘b’)
f. 2*(‘a’ + ‘b’)
12. ¿Qué resultados se obtendrán al evaluar las siguientes expresiones y asignaciones Python? Calcula
primero a mano el valor resultante de cada expresión y comprueba, con la ayuda del ordenador, si tu
resultado es correcto.
a. ‘a’*3 + ‘/*’*5 + 2*’abc’ + ‘+’
b. Cadena1 = ‘abcba’
c. (4*’<’ + cadena1 + ‘>’*4)*2
d. Subcadena = ‘=’ + ‘-‘*3 + ‘=’
e. ‘10’*5 + 4*subcadena
f. 2* ‘12’ + ‘.’ + ‘3’*3 + ‘e-‘ + 4 *’76’
13. Evalúe las siguientes expresiones:
a. abs(-23) % int(7.3)
b. abs(round(-34.2766, 1))
c. str(float(str(2) * 3 + ‘.123’)) + ‘321’
14. Convierte (en una única expresión) a una cadena el resultado de la división 5011 / 10000 redondeado
con 3 decimales.
15. ¿Que resulta de evaluar estas expresiones?
a. str(2.1) + str(1.2)
b. int(str(2) + str(3))
c. str(int(12.3)) + ‘0’
d. int(‘2’+’3’)
e. st(int(2.1) + float(3))
16. Escriba un programa que le solicite al usuario ingresar una fecha formada por 8 números, donde los
primeros dos representan el día, los siguientes dos el mes y los últimos cuatro el año (DDMMAAAA).
Este dato debe guardarse en una variable con tipo int (número entero). Finalmente, mostrar al
usuario la fecha con el formato DD / MM / AAAA.
Ejemplo de ejecución:
Fecha en formato DDMMAAAA: 03092021
03 / 09 / 2021
17. Se tiene la siguiente frase: 2022 maravilloso el sostenible que sea mundo un y
Empleando slicing, elabore la frase: Que el 2022 sea un mundo maravilloso y sostenible.
18. Empleando slicing Imprima cada palabra de la siguiente frase: Que el 2022 sea un mundo maravilloso
y sostenible”, en una línea aparte.
19. La cadena: "En el mar, la vida es mas sabrosa"
Imprima
1.- es mas
2.- En el mar
3.- mas sabrosa
4.- ram le
20. Elabore un programa que permita ingresar una frase que contenga palabras mayúsculas y
minúsculas, luego convierta toda la frase a mayúsculas o minúsculas a solicitud del usuario.
21. Elabore un programa que permita ingresar una frase, luego que solicite una palabra o letra y
determine cuantas veces está contenido en la frase y en que posición.
22. Empleando el recorrido de cadenas, elabore un programa que solicite una frase y considerando los
espacios en blanco o comas, cuente el número de palabras.
23. Elabore un programa que pida la fecha en enteros ddmmaaaa, lo convierta en cadena, separe dd,
mm y aaaa, luego imprima la siguiente cadena: Lima, dd de mm de aaaa
24. Elabore un programa que solicite el producto, el precio unitario, la cantidad. Luego imprima las
siguientes líneas:
El producto xxxxxxxxx con precio unitario xxxxxxx
Con la cantidad xxxx
Cuyo importe sería xxxxxxxx
25. Algunos sitios Web imponen ciertas reglas para las claves. Escriba una función que verifique si una
cadena de una clave es válida. Suponga que las reglas para las claves son:
Una clave debe de tener al menos 8 caracteres
Una clave debe de consistir solo de letras y dígitos
Una clave debe de contener al menos dos dígitos
Escriba un programa que solicite el ingreso de una clave e imprima "clave válida" si cumple las reglas
o "clave inválida" en caso contrario.
26. Escriba un programa que, dado un número entero, determine si es el doble de un impar (ejemplo, 14
es el doble de 7)
27. Escriba un programa que, dados dos números, muestre por pantalla uno de estos mensajes: “El
segundo es el cuadrado del primero”, “El segundo es menor que el cuadrado del primero” o bien “El
segundo es mayor que el cuadrado del primero”
28. Un Capital “C” en dólares a un interés “i%” anual durante “n” años, se convierte en C*(1+i/100)^n
dólares. Escriba un programa en Python que solicite el capital “C”, el interés “i” y el número de años
“n” y calcule el capital final, solo si “i” es una cantidad positiva
29. Ingrese una cifra cualquiera en soles e indique la menor cantidad de billetes y monedas para dicha
suma. Existen billetes de 200, 100, 50, 20, 10 y monedas de 5, 2 y 1 sol
30. Escriba un programa Python que lea un carácter cualquiera desde el teclado y muestre el mensaje
“Es una mayúscula” cuando el carácter sea una letra mayúscula y el mensaje “Es una minúscula”
cuando sea una minúscula. Si el carácter ingresado no es una letra el programa debe enviar el
mensaje “No es una letra”. El programa también debe identificar la “ñ” o “Ñ”
31. Escriba un programa Python que, dados cinco números enteros, determine cuál de los cuatro últimos
es más cercano al primero (por ejemplo, si el usuario introduce los números 2, 6, 4, 1 y 10, el
programa responderá que el número más cercano a 2 es el 1)
32. Escriba un programa que solicite el radio de un círculo, luego debe mostrar un menú con tres
opciones:
(a) Calcular diámetro
(b) Calcular longitud de la circunferencia
(c) Calcular área
El programa debe enviar el mensaje adecuado si se elige alguna otra letra diferente de las
presentadas en el menú
33. Algunos sitios Web imponen ciertas reglas para los claves. Escriba una función que verifique si una
cadena es una clave válida. Suponga que las reglas para las claves son:
- Una clave debe de tener al menos 8 caracteres (2 ptos)
- Una clave debe de consistir solo de letras y dígitos (2 ptos)
- Una clave debe de contener al menos dos dígitos (2 ptos)
Escriba un programa que solicite el ingreso de una clave e imprima "clave válida" si cumple las
reglas o "clave inválida" en caso contrario.
II.- Tipos de datos – Listas
1. Escriba un programa que elabore una lista de números pares e impares dentro de valores solicitados.
Estos pueden ser ingresados en diferente orden y deberá llenar la lista en dicho orden.
2. Escriba un programa que calcule términos de la sucesión U n+1 = 3 Un + 1, si Un es impar y Un+1 = Un / 2,
si Un es par. El programa tiene que pedir el término U 0 y el número de términos a calcular. Muestre la
lista.
a. Muestre los elementos que se encuentren en el medio y los extremos.
b. Agregue dos números mayores a la lista mostrada.
c. Solicite un número y verifique que no está dentro de la lista, además que dichos números estén
dentro de los valores extremos de la lista. Insértelo en la posición siguiente del mayor menor, es
decir: [2, 5, 7, 9] y si ingreso 8 debe estar después del 7.
d. Solicite un número y verifique que no está dentro de la lista, además que dichos números estén
dentro de los valores extremos de la lista. Insértelo en la posición siguiente del mayor menor, es
decir: [2, 5, 7, 9] y si ingreso 8 debe estar después del 7; además elimine el mayor menor del
número ingresado.
3. Escriba un programa que permita armar la lista de alumnos matriculados en el curso de
Programación Python. Deberá solicitar el código del alumno, el apellido y nombre. Pregunte si desea
continuar ingresando. No puede haber duplicidad de alumnos por código que es una cadena de 8
dígitos enteros y los primeros cuatro corresponden al año de ingreso. Muestre el número de
matriculados y la lista ordenada por código y luego ordenada por apellido - nombre
III.- Controlando el flujo
1. Escriba un programa que pida tres números y que escriba si son los tres iguales, si hay dos iguales o si
son los tres distintos.
2. Elabore un programa que permita ingresar el peso (kilos) y la estatura (metros) de una persona, y
determine cuál es su IMC (Índice de masa corporal), definido con la fórmula IMC = Peso / Estatura^2
y muestre la calificación correspondiente:
IMC CLASIFICACIÓN
Hasta 18.49 Infrapeso
18.50 a 24.99 Normal
25.00 a 29.99 Sobrepeso
30.00 a más Obeso
3. Elabore un programa para el ingreso de las horas trabajadas al día (L-S) durante una semana,
considerar que la jornada es de 8 horas y puede hacer un máximo de 4 horas extras por día. Totalice
por semana y señale cuantas horas normales y extras se hicieron, además calcule el ingreso bruto a
pagar, si se le paga S/ 20 por hora normal y un 50% más por hora extra.
4. Escriba un programa que pregunte primero si se quiere calcular el área de un triángulo o la de un
círculo o la de un cuadrado. Si se contesta que se quiere calcular el área de un triángulo (escribiendo
T o t), el programa tiene que pedir entonces la base y la altura y escribir el área. Si se contesta que se
quiere calcular el área de un círculo (escribiendo C o c), el programa tiene que pedir entonces el radio
y escribir el área. Si se contesta que se quiere calcular el área del cuadrado (escribiendo L o l), el
programa tiene que pedir el lado. Se recuerda que el área de un triángulo es base por altura dividido
por 2 y que el área de un círculo es Pi (aproximadamente 3,141592) por el radio al cuadrado.
5. Escriba un programa que pida los coeficientes de una ecuación de segundo grado (a x² + b x + c = 0) y
escriba la solución.
Se recuerda que una ecuación de segundo grado puede no tener solución, tener una solución única,
tener dos soluciones o que todos los números sean solución. Se recuerda que la fórmula de las
soluciones cuando hay dos soluciones es x = (-b ± √(b2-4ac)) / (2a)
Estos son algunos ejemplos de posibles respuestas (el orden de los ejemplos no tiene por qué
corresponder con el orden de las condiciones).
a b c Solución
1 -2 2 Sin solución real
2 -7 3 Dos soluciones: 0.5 y 3.0
1 2 1 Una solución: -1.0
0 0 5 Sin solución
0 0 0 Todos los números son solución
0 3 2 Una solución: -0.666...
6. Escriba un programa que simule el juego Piedra, papel, tijera para dos jugadores (Inés y Juan). Las
reglas del juego son las siguientes: Simultáneamente, los dos jugadores muestran una mano en tres
posibles posiciones:
a. Piedra: se muestra el puño.
b. Papel: se muestra la palma de la mano.
c. Tijera: se muestra la palma de la mano con los dedos separados en dos grupos.
El jugador que ha sacado Piedra gana al jugador que ha sacado Tijera.
El jugador que ha sacado Tijera gana al jugador que ha sacado Papel.
El jugador que ha sacado Papel gana al jugador que ha sacado Piedra.
Resuelva este ejercicio utilizando la función random.randrange(ini, fin) e importar la librería
random, de manera que el valor 1 corresponda a Piedra, el valor 2 corresponda a papel y el valor 3
corresponda a Tijera.
7. Escriba un programa que simule un juego en el que dos jugadores (Francisca y Javier) tiran dos dados.
El que saque el valor más alto, gana. Si el valor más alto coincide, decide el otro dado. Si también
coincide, empatan.
8. Escriba un programa que genere una multiplicación de dos números del 11 al 99 al azar, muestre la
tabla y pregunte por el resultado, luego diga si se ha dado la respuesta correcta, si está a menos del
10% del valor correcta o a menos del 30%.
9. Escriba un programa para tarifar las llamadas realizas por un cliente con las siguientes condiciones:
a. La tarifa es por segundo por lo que debe solicitarse (Soles/seg).
b. Se solicitan el número de llamadas a contabilizar.
c. Por cada llamada, se solicita su duración en horas, minutos y segundos que se consumieron, luego
se deben convertir a segundos y acumular.
d. Al final del registro se debe calcular el monto a facturar y mostrarlo redondeado a dos decimales.
10. Escriba un programa para tarifar las llamadas realizas por un cliente con las siguientes condiciones
(ampliación del ejercicio 9):
a. La tarifa es por segundo por lo que debe solicitarse (Soles/seg) y ahora se diferencia la tarifa por
llamadas cortas y largas, por lo que se solicitaran ambas tarifas.
b. Se debe ingresar el límite de tiempo de llamada corta.
c. Se solicitan el número de llamadas a contabilizar.
d. Por cada llamada, se solicita su duración en horas, minutos y segundos que se consumieron, luego
se deben convertir a segundos. Se debe categorizar la llamada en llamada corta o larga acumular
la cantidad de llamadas por tipo, además de acumular el tiempo en segundos por tipo.
e. Al final del registro se debe calcular el monto a facturar total y por cada tipo, mostrándolo
redondeado a dos decimales.
11. Dados tres puntos en el plano expresados como coordenadas (x, y), informar cuál es el que se
encuentra más lejos del centro de coordenadas.
12. Escriba un programa que muestre números al azar del 1 al 6 mientras lo pida el usuario y agregue la
suma de los números mostrados.
13. Tomando en cuenta el lanzamiento de los dados (aleatorios entre 1 y 6), elija dos jugadores y en cada
partida se lanza los dados para cada uno, el mayor número gana. Haga este juego hasta que el
usuario diga no más.
14. Escriba un programa que muestre 3 números al azar del 1 al 6. mientras lo pida el usuario y agregue
la suma de los números mostrados. Con estos números se simulará el tragamonedas con las
siguientes condiciones:
a. Inicialmente, el jugador empieza con una moneda. También puede hacer que elija el número de
monedas iniciales
b. En cada tirada, al jugador se le cobra una moneda.
c. En cada tirada, el programa muestra tres números al azar del 1 al 6.
d. Si los tres números son distintos, el jugador no gana nada (es decir, pierde la moneda que apostó).
e. Si salen dos números iguales, el jugador gana dos monedas (es decir, gana en total una moneda).
f. Si salen tres números iguales, el jugador gana cinco monedas (es decir, gana en total cuatro
monedas).
g. El número de monedas puede hacerse negativo.
h. Tras cada tirada, el jugador indica si quiere seguir jugando o no.
i. Al terminar la partida, el programa indica cuántas monedas se han ganado o perdido.
15. Una empresa constructora está contratando personal para su próximo proyecto, se tienen cinco
puestos por cubrir y son: Operario de montacargas, excavadoras, bombas de concreto, aplanadoras y
camiones volquete, los códigos son: Mon001, Exc001, Boc001, Apl001 y Vol001 respectivamente. Se
desea llevar una de estadística de postulantes por cada puesto, registrando su edad y años de
experiencia (se deben usar vectores para código, edad y experiencia en años). Se solicita indicar el
promedio de edad y experiencia, indique la moda para cada puesto.
Se pide:
a) Elabore la tabla de variables
b) Elabore el código en PYTHON correspondiente en Collab
16. Una empresa de taxis desea llevar el registro semanal de servicios por cada unidad que es
identificada por placa del vehículo (XXX-YYY) donde la primera letra indica el tipo de vehículo (A – Z),
la segunda letra indica la zona registral (A – Q o 1 - 9), la tercera letra es un correlativo (A – Z o 1 – 9),
los tres últimos dígitos son números (0 – 9). Se deberán ingresar los datos de la placa y el monto
cobrado por cada servicio hasta que el usuario no desee continuar. Se solicita indicar el número de
servicios y monto recaudado por cada unidad, indicar la unidad con mayor recaudación, además
muestre las ventas acumuladas y promedio por cada unidad, ordenada de forma ascendente.
Se pide:
a) Elabore la tabla de variables
b) Elabore el código en PYTHON correspondiente en Collab
IV.- Matrices
1. Elabore un programa que permita ingresar valores numéricos en vectores que permitan
multiplicarse, deben solicitar previamente las dimensiones (p.e. 4x1 y 1x5). Luego proceder a calcular
la multiplicación.
2. Un/a alumno/a de informática desea realizar una estadística de las horas de estudio mensuales
dedicadas a cada una de sus asignaturas. Crea un programa que dada la siguiente tabla nos permita
calcular:
- El total anual de horas dedicadas a cada asignatura.
- El total mensual de horas dedicadas a estudiar.
- El nombre y el total de horas de la asignatura más estudiada.
3. Elabore una macro para realizar las operaciones básicas (suma, resta y multiplicación de ser posible)
de dos matrices nxm (que no excedan a 5 dimensiones). La operación debe ser seleccionada y deberá
dar la matriz resultada, previa evaluación de poder realizar el producto de las matrices. Emplee
matrices como listas para la operación y sentencia for.
4. Elabore una macro para determinar la nota promedio, mediana, moda, máximo y mínimo de un
curso, así como la elaboración de histograma de frecuencias por cada nota. De preferencias deberá
solicitar el apellido y nombre del alumno. Emplee matrices como listas para la operación y sentencia
for.
V.- Ejercicios Integrales
1. Escriba un programa que, al recibir como data el sueldo de un doctor de un hospital, calcule el
incremento del salario y escriba el nuevo salario
Hay que considerar que:
- Salario menor a S/.5,000 se incrementa en 12% su sueldo
- Salario mayor igual a S/.5000 y menor igual a S/8000 se debe asignar un incremento de 10%
- Salario mayor a S/.8000 y menor igual a S/10000 se debe asignar un incremento de 7%
- Salario mayor a S/.11000 se debe asignar el 5%
2. Escriba un programa que permita calcular el salario de los operarios de una empresa, considerar
que la empresa paga horas extras.
El programa debe recibir como data el sueldo y la categoría del sueldo. Los trabajadores pueden
tener un máximo de 30 horas extra, si tienen más, solo se les pagaran las primeras 30. Los
trabajadores con categoría 4 o mayor a 4 no pueden recibir beneficio.
Categoría 1 - S/40 por hora extra
Categoría 2 - S/50 por hora extra
Categoría 3 - S/85 por hora extra
3. Calcular la fuerza gravitatoria F de atracción de un objeto de masa m en kg cuando es atraído por
un planeta de masa M=5*10^14 kg, distanciados d en metros, sabiendo que la constante
G=6.67*10^-11 y la F = G*m*M/d^2.
4. Calcular la potencia eléctrica trifásica en watts que consume una instalación en Lima, sabiendo
que la corriente I=10 amperios, ángulo de fase es de 𝜱=60 grados y la fórmula es: P =
3^(½)*V*I*cos 𝜱.
5. Elaborar un programa que determine los n primeros términos de la serie Fibonacci, sabiendo que
A1= 0 y A2= 1; y que cada nuevo término es igual a la suma de los 2 términos anteriores: An= A(n-
1) + A(n-2)
6. Escriba un programa que le pregunte al usuario cuántas palabras desea ingresar (mínimo 3 y
máximo 10, debe ser entero), luego debe solicitar al usuario por la línea de comandos que escriba
una palabra y determine si la palabra es una palíndromo o no (la palabra ingresada no debe estar
en blanco) y contar cuantas fueron palíndromos. Un palíndromo es una palabra que se lee igual
hacia atrás que hacia adelante. Las palabras que son palíndromos deben guardarse en una lista. Al
finalizar el programa, se debe imprimir cuántas fueron palíndromos y los palíndromos registrados
7. En una universidad, las direcciones de correo electrónico de los estudiantes terminan con
@student.college.edu, mientras que las direcciones de correo electrónico de profesores terminan
con @prof.college.edu. Escriba un programa que le pregunte primero al usuario cuántas
direcciones de correo electrónico va a introducir (no menos de 4 ni más de 10, debe ser entero), y
luego hace que el usuario introduzca esas direcciones. Las direcciones se deben guardar en una
lista, además de contar cuantas fueron de alumnos y cuantas de profesores. El programa debe
presentar todas las direcciones ingresadas y cuantas de cada tipo
8. Algunos sitios Web imponen ciertas reglas para los claves. Escriba una función que verifique si una
cadena es una clave válida. Suponga que las reglas para las claves son:
Una clave debe de tener al menos 8 caracteres
Una clave debe de consistir solo de letras y dígitos
Una clave debe de contener al menos dos dígitos
Escriba un programa que solicite el ingreso de una clave e imprima "clave válida" si cumple las
reglas o "clave inválida" en caso contrario.