0% encontró este documento útil (0 votos)
141 vistas12 páginas

Ejercicios Prácticos de Python: Scripts, Cadenas y Estructuras de Datos

Este documento proporciona una lista de ejercicios de programación en Python para practicar diferentes temas como números, cadenas, listas, tuplas, diccionarios, matrices, errores y excepciones. Los ejercicios van desde operaciones básicas con números hasta la manipulación de diferentes tipos de datos estructurados y la detección y corrección de errores. El documento también incluye enlaces a recursos en línea para que los estudiantes puedan utilizar como referencia al completar los ejercicios.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
141 vistas12 páginas

Ejercicios Prácticos de Python: Scripts, Cadenas y Estructuras de Datos

Este documento proporciona una lista de ejercicios de programación en Python para practicar diferentes temas como números, cadenas, listas, tuplas, diccionarios, matrices, errores y excepciones. Los ejercicios van desde operaciones básicas con números hasta la manipulación de diferentes tipos de datos estructurados y la detección y corrección de errores. El documento también incluye enlaces a recursos en línea para que los estudiantes puedan utilizar como referencia al completar los ejercicios.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Primer Práctico: Ejercicios Scripts en Python, repaso Introducción a la informática y Programación

Utilizar como base lo siguiente:

- Libro base el que está en la página web:


o https://www.tutorialpython.com/
- Página web del tema:
o https://hqdg2ci1kdbvhptxehudsw-on.drv.tw/www.pythontema1.com/
- Canal de youtube:
o https://www.youtube.com/channel/UC2sgELp9Jwh47FAc2vg-8-w?view_as=subscriber

Pueden utilizar otras referencias que vean conveniente, también se les pasará uno al grupo
Números:

1. Suma de dos números.

2. Escribir un programa que pida al usuario un número entero positivo y muestre por pantalla todos los
números impares desde 1 hasta ese número separados por comas.

3. Invertir un número.

4. Determinar si un número es capicúa.

5. Potencia dada una base y un exponente.

6. Determinar si un número es primo.

7. Convertir a binario, números decimales entre 0 a 100.

8. Serie de los números pares empezando en 0.

9. Serie de los números primos empezando en 0.

10. Serie Fibonacci empezando en 0 y 1.


Cadenas:

1. Contar espacios.

2. Dada una cadena y una letra, contar una letra cuanto se repite, sin importar si es mayúscula,
minúscula o con acento.

3. Imprimir diferentes palabras en diferentes líneas, p.e.: "hola mundo cruel", se imprimirá en tres
líneas.

4. Pedir el nombre y los apellidos y concatenarlos en un nombre completo.

5. Invertir una cadena.

6. Determinar si una cadena es palíndrome.

7. Dado uno de los tres colores básicos en español, devolver el mismo color en inglés.

8. Dada una cadena y un carácter especial separador: ", #, $, %, &, /, (, ), *, etc. Separar línea a línea la
cadena cada vez que se encuentre el carácter separador

9. Dada dos cadenas, concatenarlas, poniendo primero la de menor longitud.

10. Según las siguientes condiciones de una contraseña correcta: longitud mínima 8 caracteres, máxima
12, combinación de mínimo un número, una letra minúscula, una mayúscula y un caracter alfanumérico,
hacer un programa que pida una contraseña y le diga al asuario si es correcta o no la misma.
Listas y Tuplas:

1. Escribir un programa que almacene las asignaturas de un curso (por ejemplo Matemáticas, Física,
Química, Historia y Lengua) en una lista y la muestre por pantalla el mensaje: "Yo estudio <asignatura>",
donde <asignatura> es cada una de las asignaturas de la lista.

2. Escribir un programa que almacene las asignaturas de un curso (por ejemplo Matemáticas, Física,
Química, Historia y Lengua) en una lista, pregunte al usuario la nota que ha sacado en cada asignatura, y
después las muestre por pantalla con el mensaje En <asignatura> has sacado <nota> donde <asignatura>
es cada una de las asignaturas de la lista y <nota> cada una de las correspondientes notas introducidas
por el usuario.

3. Escribir un programa que pregunte al usuario los jugadores titulares de la selección boliviana de
fútbol, los almacene en una lista y los muestre por pantalla ordenados de menor a mayor, según su
número o según su apellido paterno (el usuario elegirá).

4. Escribir un programa que almacene las asignaturas de un curso (por ejemplo Matemáticas, Física,
Química, Historia y Lengua) en una lista, pregunte al usuario la nota que ha sacado en cada asignatura y
elimine de la lista las asignaturas aprobadas. Al final el programa debe mostrar por pantalla las
asignaturas que el usuario tiene que repetir.

5. Escribir un programa que almacene el abecedario en una lista, elimine de la lista las letras que ocupen
posiciones múltiplos de 3, y muestre por pantalla la lista resultante.

6. Usando listas: Escribir un programa que pida al usuario una palabra y muestre por pantalla el número
de veces que contiene cada vocal.

7. Escribir un programa que almacene en una lista los siguientes precios, 50, 75, 46, 22, 80, 65, 8, y
muestre por pantalla el menor y el mayor de los precios.

8. Escribir un programa que almacene los vectores A=(a1,a2,a3) y B=(b1,b2,b3) en dos listas y muestre
por pantalla su producto escalar. Los ai y bi son números enteros negativos o positivos que el usuario
introducirá por teclado.

9. Escribir un programa que pregunte por una muestra de números, separados por comas, los guarde en
una lista y muestre por pantalla su media, mediana y moda.

10. Pedir al usuario 10 números, guardarlos en una lista, ordenarlos de mayor a menor y mostrarlos por
pantalla.
Diccionarios:

1. Escribir un programa que guarde en una variable el diccionario {'Boliviano': 'Bs', Euro':'€', 'Dollar':'$',
'Yen':'¥'}, pregunte al usuario por una divisa y muestre su símbolo o un mensaje de aviso si la divisa no
está en el diccionario.

2. Escribir un programa que pregunte al usuario su nombre, edad, dirección y teléfono y lo guarde en un
diccionario. Después debe mostrar por pantalla el mensaje

<nombre> tiene <edad> años, vive en <dirección> y su número de teléfono es <teléfono>.

3. Escribir un programa que guarde en un diccionario los precios de las frutas de la tabla, pregunte al
usuario por una fruta, un número de kilos y muestre por pantalla el precio de ese número de kilos de
fruta. Si la fruta no está en el diccionario debe mostrar un mensaje informando de ello.

Fruta Precio
Plátano 1.35
Manzana 0.80
Pera 0.85
Naranja 0.70
4. Escribir un programa que pregunte una fecha en formato dd/mm/aaaa y muestre por pantalla la
misma fecha en formato dd de <mes> de aaaa donde <mes> es el nombre del mes.

5. Escribir un programa que almacene el diccionario con los créditos de las asignaturas de un curso
{'Matemáticas': 6, 'Física': 4, 'Química': 5} y después muestre por pantalla los créditos de cada asignatura
en el formato <asignatura> tiene <créditos> créditos, donde <asignatura> es cada una de las asignaturas
del curso, y <créditos> son sus créditos. Al final debe mostrar también el número total de créditos del
curso.

6. Escribir un programa que cree un diccionario vacío y lo vaya llenado con información sobre una
persona (por ejemplo nombre, edad, sexo, teléfono, correo electrónico, etc.) que se le pida al usuario.
Cada vez que se añada un nuevo dato debe imprimirse el contenido del diccionario.

7. Escribir un programa que cree un diccionario simulando una cesta de la compra. El programa debe
preguntar el artículo y su precio y añadir el par al diccionario, hasta que el usuario decida terminar.
Después se debe mostrar por pantalla la lista de la compra y el coste total, con el siguiente formato

Lista de la compra
Artículo 1 Precio 1
Artículo 2 Precio 2
Artículo 3 Precio 3
… …
Total Costo Total
8. Escribir un programa que cree un diccionario de traducción español-inglés. El usuario introducirá las
palabras en español e inglés separadas por dos puntos, y cada par <palabra>:<traducción> separados
por comas. El programa debe crear un diccionario con las palabras y sus traducciones. Después pedirá
una frase en español y utilizará el diccionario para traducirla palabra a palabra. Si una palabra no está en
el diccionario debe dejarla sin traducir.

9. Escribir un programa que gestione las facturas pendientes de cobro de una empresa. Las facturas se
almacenarán en un diccionario donde la clave de cada factura será el número de factura y el valor el
coste de la factura. El programa debe preguntar al usuario si quiere añadir una nueva factura, pagar una
existente o terminar. Si desea añadir una nueva factura se preguntará por el número de factura y su
coste y se añadirá al diccionario. Si se desea pagar una factura se preguntará por el número de factura y
se eliminará del diccionario. Después de cada operación el programa debe mostrar por pantalla la
cantidad cobrada hasta el momento y la cantidad pendiente de cobro.

10. Escribir un programa que permita gestionar la base de datos de clientes de una empresa. Los clientes
se guardarán en un diccionario en el que la clave de cada cliente será su NIT, y el valor será otro
diccionario con los datos del cliente (nombre, dirección, teléfono, correo, preferente), donde preferente
tendrá el valor True si se trata de un cliente preferente. El programa debe preguntar al usuario por una
opción del siguiente menú: (1) Añadir cliente, (2) Eliminar cliente, (3) Mostrar cliente, (4) Listar todos los
clientes, (5) Listar clientes preferentes, (6) Terminar. En función de la opción elegida el programa tendrá
que hacer lo siguiente:

1. Preguntar los datos del cliente, crear un diccionario con los datos y añadirlo a la base de datos.
2. Preguntar por el NIT del cliente y eliminar sus datos de la base de datos.
3. Preguntar por el NIT del cliente y mostrar sus datos.
4. Mostrar lista de todos los clientes de la base datos con su NIT y nombre.
5. Mostrar la lista de clientes preferentes de la base de datos con su NIT y nombre.
6. Terminar el programa.
Matrices:

1. Escribir un programa que almacene las matrices


A = [a11 a12 a13] y B = [b11 b12]
[a21 a22 a23] [b21 b22]
[b31 b32]
en una lista y muestre por pantalla su producto.

Nota: Para representar matrices mediante listas usar listas anidadas, representando cada vector fila en
una lista.

2. Realizar el mismo cálculo anterior, utilizando numpy.


Errores y Excepciones:

1. Corregir los errores sintácticos del siguiente programa:


contraseña = input('Introduce la contraseña: ")
if contraseña in ['sesamo'):
print('Pasa')
else
print('No pasa')

2. Detectar y corregir los errores del siguiente programa que aplica el iva a una factura:
base = input('Introduce la base imponible de la factura: ')
print(aplica_iva(base, iva))
def aplica_iva(base, iva = 21):
base = base * iva
return base

3. Detectar y corregir los errores del siguiente programa que calcula el producto escalar de dos vectores:
u = (1, 2, 3)
v = (4, 5, 6)
def producto_escalar(u, v):
for i in u:
u[i+1] *= v[i+1]
return sum(u)
print(producto_escalar(u, v))

4. Detectar y corregir los errores del siguiente programa que devuelve y elimina el teléfono de un listín
telefónico a través del nombre del usuario:

listin = {'Juan':123456789, 'Pedro':987654321}

def elimina(listin, usuario):

del listin[usuario]

return listin[usuario]

print(elimina(listin, 'Pablo'))
5. Detectar y corregir los errores del siguiente programa que multiplica dos matrices:
a = ((1, 2, 3),
(3, 2, 1))
b = ((1, 2),
(3, 4),
(5, 6))
def producto(a, b):
producto = []
for i in range(len(b)):
fila = []
for j in range(len(a[0])):
suma = 0
for k in range(len(a[0]+1)):
suma += a[i][k] * b[k+1][j]
fila[j] = suma
producto[i] = tuple(fila)
return tuple(producto)
print(producto(a, b))

6. Realizar un programa que dada una lista de n números, y un divisor d, devuelva otra lista que tenga
los números de la lista inicial divididos entre d. El programa debe controlar la contingencia de que d
valga 0.

7. Realizar un programa que pida un número por teclado y un divisor, deberá controlar que el usuario no
ingrese una cadena que no se pueda convertir en cadena y que el divisor no sea 0.

8. Realizar un programa que pida dos nombres por teclado y los guarde en dos variables de tipo cadena,
estas dos cadenas se deberán guardar en una lista y mostrar cada uno por pantalla en líneas diferentes.
El programa deberá controlar que al asignar a la lista las cadenas se fallen en su nombre de variable.
Archivos:

1. Según el archivo /etc/passwd (https://e-mc2.net/es/sobre-el-archivo-etcpasswd), mostrar en formato


humano cada línea. P.e., si existe una línea con la información:

lperez:FXWUuZ.vwXttg:500:501:usuario Luis Perez:/home/lperez:/bin/bash

El script deberá mostrar:

Usuario=lperez, Descripcion=usuario Luis Perez, Directorio Home=/home/lperez, Shell=BASH

-> El script debería mostrar una línea en formato humano, por cada línea del archivo /etc/passwd

2. Escribir una función que pida un número entero entre 1 y 10 y guarde en un archivo con el nombre
tabla-n.txt la tabla de multiplicar de ese número, done n es el número introducido.

3. Escribir una función que pida un número entero entre 1 y 10, lea el archivo tabla-n.txt con la tabla de
multiplicar de ese número, done n es el número introducido, y la muestre por pantalla. Si el fichero no
existe debe mostrar un mensaje por pantalla informando de ello.

4. Escribir una función que pida dos números n y m entre 1 y 10, lea el archivo tabla-n.txt con la tabla de
multiplicar de ese número, y muestre por pantalla la línea m del archivo. Si el archivo no existe debe
mostrar un mensaje por pantalla informando de ello.

5. Escribir un programa que acceda a un archivo mediante su ruta y nombre, y muestre por pantalla el
número de palabras que contiene.

6. Escribir un programa que abra el archivo con información sobre los PPAs de su curso (se lo pueden
inventar los datos), pregunte por el registro de un compañero y muestre el PPA de ese compañero.

7. Escribir un programa para gestionar una lista telefónica con los nombres y los teléfonos de los clientes
de una empresa. El programa incorporar funciones crear el archivo con la lista si no existe, para
consultar el teléfono de un cliente, añadir el teléfono de un nuevo cliente y eliminar el teléfono de un
cliente. La lista debe estar guardado en el fichero de texto lista.txt donde el nombre del cliente y su
teléfono deben aparecer separados por comas y cada cliente en una línea distinta.

8. El archivo cotizacion.txt contiene las cotizaciones de las empresas de la CAINCO con las siguientes
columnas: Nombre (nombre de la empresa), Final (precio de la acción al cierre de bolsa), Máximo
(precio máximo de la acción durante la jornada), Mínimo (precio mínimo de la acción durante la
jornada), Volumen (Volumen al cierre de bolsa), Efectivo (capitalización al cierre en miles de bolivianos).
Cada dato está separado por coma y cada empresa por un salto de línea.

a) Construir una función reciba el archivo de cotizaciones y devuelva un diccionario con los datos del
fichero por columnas.

b) Construir una función que reciba el diccionario devuelto por la función anterior y cree un archivo en
formato txt con el mínimo, el máximo y la media de dada columna.
9. El archivo calificaciones.txt contiene las calificaciones de un curso. Durante el curso se realizaron dos
exámenes parciales de teoría y un examen de prácticas. Los alumnos que tuvieron menos de 40 en
alguno de estos exámenes pudieron repetirlo al final del curso (convocatoria ordinaria). A parte de
registrar la calificación en alguna columna puede existir NA=No asistente. Escribir un programa que
contenga las siguientes funciones:

a) Una función que reciba el archivo de calificaciones y devuelva una lista de diccionarios, donde cada
diccionario contiene la información de los exámenes y la asistencia de un alumno. La lista tiene que
estar ordenada por apellidos.

b) Una función que reciba una lista de diccionarios como la que devuelve la función anterior y añada a
cada diccionario un nuevo par con la nota final del curso para el respectivo estudiante. El peso de cada
parcial de teoría en la nota final es de un 30% mientras que el peso del examen de prácticas es de un
40%.

c) Una función que reciba una lista de diccionarios como la que devuelve la función anterior y devuelva
dos listas, una con los alumnos aprobados y otra con los alumnos reprobados. Para aprobar el curso, la
asistencia tiene que ser mayor o igual que el 80%, la nota de los exámenes parciales y de prácticas
mayor o igual que 40 y la nota final mayor o igual que 51.

10. Según el archivo /etc/network/interfaces


(http://fpg.66ghz.com/DebianRed/etcnetworkinterfaces.html?i=1), mostrar en formato humano cada
interfaz de red. P.e., si existe una interfaz con la información:

auto eth1
iface eth1 inet static
address 172.16.11.100
netmask 255.255.0.0
gateway 192.168.11.1

El script deberá mostrar:

Interfaz=eth1, Tipo=estático, Dirección IP=172.16.11.100, Máscara de Red=255.255.0.0, Puerta de


Enlace=192.168.11.1

Los tipos son:


- lo = loopback
- dhcp = automático
- static = estático

Los tipos lo y dhcp no tienen dirección IP, máscara de red ni puerta de enlace en el archivo.

-> El script debería mostrar una línea en formato humano, por cada interfaz del archivo
/etc/network/interfaces.
Subprocesos:

1. Escribir una función a la que se le pase una cadena <nombre> y muestre por pantalla el saludo ¡hola
<nombre>!.

2. Escribir una función que reciba un número entero positivo y devuelva su factorial.

3. Escribir una función que calcule el total de una factura tras aplicarle el IVA. La función debe recibir la
cantidad sin IVA y el porcentaje de IVA a aplicar, y devolver el total de la factura. Si se invoca la función
sin pasarle el porcentaje de IVA, deberá aplicar un 13%.

4. Escribir una función que calcule el área de un círculo y otra que calcule el volumen de un cilindro
usando la primera función.

5. Escribir una función que reciba una muestra de números en una lista y devuelva otra lista con sus
cuadrados.

6. Escribir una función que reciba una muestra de números en una lista y devuelva un diccionario con su
media, varianza y desviación típica. Las claves serán los números recibidos y los valores serán una tupla
de tres con los cálculos pedidos.

7. Escribir una función que calcule el máximo común divisor de dos números y otra que calcule el
mínimo común múltiplo.

8. Escribir una función que convierta un número decimal en binario y otra que convierta un número
binario en decimal.

9. Escribir una función que reciba una frase y devuelva un diccionario con las palabras que contiene y su
longitud.

10. Calculadora de las 4 operaciones básicas, mediante un menú, usando funciones.

También podría gustarte