Hola a todos, hoy os dejo una serie de ejercicios propuestos y resueltos de listas, tuplas y diccionarios en Python.
Todos los ejercicios que proponemos están resueltos en este mismo post, intenta hacerlo por ti mismo y si te quedas atascado puedes mirar la solución. Recuerda, que no tiene por que estar igual tu solución con la del post, el objetivo es que aprendas no que me copies la solución.
Aquí tienes todos los posts relacionados con python:
Curso Python
1) Mete los valores del 1 al 100 en una lista.
Spoiler Inside |
SelectShow> |
—- 1º forma —–
#!/usr/bin/python3
lista = []
i=1
while i<=100:
lista.append(i)
i=i+1
print (lista)
—- 2º forma —-
#!/usr/bin/python3
lista = list(range(1,101))
print (lista)
|
2) Crea una tupla con los meses del año, pide números al usuario, si el numero esta entre 1 y la longitud máxima de la tupla, muestra el contenido de esa posición sino muestra un mensaje de error.
El programa termina cuando el usuario introduce un cero.
Spoiler Inside |
SelectShow> |
#!/usr/bin/python3
meses = ("Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre")
salir = False
while(not salir):
numero = int(input("Dame un numero: "))
if(numero==0):
salir= True
else:
if(numero>=1 and numero<=len(meses)):
print(meses[numero-1])
else:
print("Inserta un numero entre 1 y ",len(meses))
|
3) Pide un numero por teclado y guarda en una lista su tabla de multiplicar hasta el 10. Por ejemplo, si pide el 5 la lista tendrá: 5,10,15,20,25,30,35,40,45,50
Spoiler Inside |
SelectShow> |
#!/usr/bin/python3
numero = int(input("Dame un numero: "))
lista = []
for i in range(1,11):
lista.append(i*numero)
print(lista)
|
4) Pide números y mételos en una lista, cuando el usuario meta un 0 ya dejaremos de insertar. Por último, muestra los números ordenados de menor a mayor.
Spoiler Inside |
SelectShow> |
#!/usr/bin/python3
lista = []
salir = False
while(not salir):
numero = int(input("Dame un numero: "))
if(numero == 0):
salir=True
else:
lista.append(numero)
lista.sort() #ordena la lista
print(lista)
|
5) Lo mismo que el anterior pero ordenando de mayor a menor.
Spoiler Inside |
SelectShow> |
#!/usr/bin/python3
lista = []
salir = False
while(not salir):
numero = int(input("Dame un numero: "))
if(numero == 0):
salir=True
else:
lista.append(numero)
lista.sort(reverse=True) #ordena la lista
print(lista)
|
6) Pide una cadena por teclado, mete los caracteres en una lista sin espacios.
Spoiler Inside |
SelectShow> |
#!/usr/bin/python3
cadena = input("Dame una cadena: ")
print(cadena)
lista = []
for c in cadena:
if(c != ' '):
lista.append(c)
print(lista)
|
7) Pide una cadena por teclado, mete los caracteres en una lista sin repetir caracteres.
Spoiler Inside |
SelectShow> |
#!/usr/bin/python3
cadena = input("Dame una cadena: ")
print(cadena)
lista = []
for c in cadena:
if(c not in lista):
lista.append(c)
print(lista)
|
8) Crea una tupla con números, pide un numero por teclado e indica cuantas veces se repite.
Spoiler Inside |
SelectShow> |
—- 1º forma —-
#!/usr/bin/python3
numeros = (5,4,3,2,1,6,45,3,6,6,6,6,6)
numero = int(input("Dame un numero: "))
contador= 0
for i in numeros:
if numero == i:
contador = contador + 1
print ("Hay ",contador," repeticion/es")
—- 2º forma —-
#!/usr/bin/python3
numeros = (7,6,5,4,3,2,3,4,5,1,4,3)
numero = int(input("Dame un numero: "))
print("Numero de repeticiones: ",numeros.count(numero))
|
9) Crea una tupla con números e indica el numero con mayor valor y el que menor tenga.
Spoiler Inside |
SelectShow> |
—- 1º forma —-
#!/usr/bin/python3
numeros = (5,4,3,-2,1,6,455,3,6,6,6,6,6)
maximo = numeros[0]
minimo = numeros[0]
for i in numeros:
if i > maximo:
maximo = i
if i < minimo:
minimo = i
print("El maximo es ",maximo)
print("El minimo es ",minimo)
—- 2º forma —-
#!/usr/bin/python3
numeros = (7,6,5,4,3,2,3,4,5,1,4,3)
print("Maximo: ",max(numeros))
print("Minimo: ",min(numeros))
|
10) Crea un diccionario donde la clave sea el nombre del usuario y el valor sea el teléfono (no es necesario validar). Tendrás que ir pidiendo contactos hasta el usuario diga que no quiere insertar mas. No se podrán meter nombres repetidos.
Spoiler Inside |
SelectShow> |
#!/usr/bin/python3
agenda = {}
salir = False
while (not salir):
#Pedimos los datos
nombre=input("Introduce un nombre: ")
telefono=int(input("Introduce un telefono: "))
#Comprobamos si esta dentro del diccionario
if(nombre not in agenda):
#Añadimos el contacto
agenda[nombre] = telefono
print('Añadido el contacto')
else:
print('El nombre esta repetido')
#Indicamos si queremos salir
respuesta = input("¿Quieres salir? (S/N)")
if(respuesta == "S"):
salir = True
#Mostramos el diccionario
print(agenda)
|
11) Crea una tupla con valores ya predefinidos del 1 al 10, pide un índice por teclado y muestra los valores de la tupla.
Spoiler Inside |
SelectShow> |
#!/usr/bin/python3
tupla = (1,2,3,4,5,6,7,8,9,10)
indice = int(input("Dame un indice: "))
if indice>=0 and indice<len(tupla):
print(tupla[indice])
else:
print("Indice no valido")
|
12) Crea una lista vacía (pongamos 10 posiciones), pide sus valores y devuelve la suma y la media de los números.
Spoiler Inside |
SelectShow> |
#!/usr/bin/python3
lista = []
suma = 0
media = 0
numero = 0
for i in range(10):
numero = int(input("Dame un numero: "))
lista.append(numero)
suma += numero
for i in lista:
print(i)
media = suma / len(lista)
print("La suma es ",suma)
print("La media es ",media)
|
Espero que os sea de ayuda. Si tenéis dudas, preguntad. Estamos para ayudarte.
hola! necesito codificar cadenas en base a un diccionario, es decir si tengo el diccionario {1:’h’, 2:’o’, 3:’l’, 4:’a’} e ingreso la cadena ‘hola’ me devuelva como resultado ‘1234’, intenté hacerlo con un for » in »: …print (), pero creo no va por ahí, y la verdad es que soy bastante novata en esto de la programación. Espero puedan ayudarme pronto! Gracias!!!
Hola! Cuando meto uno de tus ejercicios en python, el noveno, «<» el «;» me da error. Por que?
Muy completo y gracias por la publicación
saludos y gracias por estos ejercicios,
en el ejercicio 2. cuando eliges el numero 1 no lo reconoce. lo pude corregir cambiando bajo el else: if(numero>0 and numero<=len(meses))
Hola,
Me podrías explicar este ejercicio, el número 2. No llego a entender bien el uso de la variable Salir=False y Salir=True
Gracias, los ejercicios están genial.
cuando haces un bucle while «x»-> tiene que ser True. al decir que es «x» es false, le estaría diciendo al bucle while que pare.
Pero al decirle que ejecute el bucle while mientras no sea «x», le estaría diciendo que es True y cuando cambia el valor o actualiza le estaría diciendo que «x» no es True por lo que es False