Diferència entre revisions de la pàgina «ASIX-M3-UF1-A4.3- Solucions Exercicis diccionaris»
(Pàgina blanquejada) |
|||
(5 revisions intermèdies per 2 usuaris que no es mostren) | |||
Línia 1: | Línia 1: | ||
+ | == A4.3 Exercicis Diccionaris == | ||
+ | 1. Creeu un programa en python on declarareu un diccionari per guardar els preus de les diferents fruites d'un supermercat. El programa demanarà el nom de la fruita i la quantitat que s'ha venut i mostrarà el preu final de la fruita a partir de les dades guardades al diccionari. Si la fruita no existeix, ens donarà un error. Després de cada consulta, el programa ens preguntarà si volem fer una altra consulta. | ||
+ | |||
+ | <source lang = "python"> | ||
+ | # Preus de la fruita | ||
+ | preus = {"pera": 2.19, "melon": 2.05, "sandia": 1.95, "platano": 2.4, "fresa": 4.89} | ||
+ | |||
+ | # Menú | ||
+ | |||
+ | opcio = input("Calcular preu d'un producte (s/n): ") | ||
+ | |||
+ | print("") | ||
+ | |||
+ | # Mentre no Sortir | ||
+ | while opcio == 's' : | ||
+ | |||
+ | # Demanar dades del producte | ||
+ | producte = input("Nom del producte: ") | ||
+ | if producte in preus: | ||
+ | pes = float(input("Pes del producte: ")) | ||
+ | |||
+ | # Calcular preu del producte | ||
+ | preuProducte = preus[producte]*pes | ||
+ | |||
+ | # Mostrar el preu total | ||
+ | print('Preu del producte: %.2f' %preuProducte) | ||
+ | |||
+ | # El producte no existeix | ||
+ | else : | ||
+ | print("Aquest producte no existeix!!") | ||
+ | |||
+ | # Calcular preu d'un altre producte | ||
+ | opcio = input("Calcular preu d'un altre producte (s/n): ") | ||
+ | |||
+ | </source> | ||
+ | <!----> | ||
+ | 2. Escriu un programa que llegeixi una frase i crei un diccionari amb la quantitat d'aparicions de cada caràcter. A continuació, mostra el contingut del diccionari. | ||
+ | |||
+ | <source lang = "python"> | ||
+ | print("Repeticions caràcters en una frase \n") | ||
+ | |||
+ | # Inicialització diccionari i frase | ||
+ | caracters = {} | ||
+ | frase = input("Escriu una frase: ") | ||
+ | |||
+ | # Recórrer la frase i comptar caràcter | ||
+ | for caracter in frase: | ||
+ | if caracter in caracters: | ||
+ | caracters[caracter] += 1 # el caràcter ja està en el diccionari | ||
+ | else: | ||
+ | caracters[caracter] = 1 # primera aparició del caràcter | ||
+ | |||
+ | # Mostrar el resultat | ||
+ | for clau,valor in caracters.items(): | ||
+ | print(clau,":",valor) | ||
+ | </source> | ||
+ | <!----> | ||
+ | |||
+ | 3. Escriu un programa, que declari un diccionari amb l'inventari d'un departament d'informàtica (ordinadors sobretaula, portàtils, projectors, impressores, ...). Presenteu un menú amb les opcions necessaris per fer un manteniment de l'inventari (insercions, actualitzacions, eliminacions i llistat). La darrera opció del menú serà per sortir del programa. | ||
+ | |||
+ | <source lang = "python"> | ||
+ | # Declarem l'inventari inicial | ||
+ | inventari = {"ordinadors": 102, "portatils": 25, "projectors": 6, "impressores": 3} | ||
+ | |||
+ | # Menú | ||
+ | print("\nMenú principal \n\n 1. Afegir \n 2. Actualitzar \n 3. Eliminar \n 4. Llistat \n 5. Sortir \n") | ||
+ | opcio = input("Opcio: ") | ||
+ | print("") | ||
+ | |||
+ | # Mentre no Sortir | ||
+ | while opcio != '5' : | ||
+ | |||
+ | # Afegir producte comprovant que no existeix... | ||
+ | if opcio == '1' : | ||
+ | producte = input("Nom del producte: ") | ||
+ | if producte in inventari : | ||
+ | print("Aquest producte ja existeix!!") | ||
+ | else : | ||
+ | unitats = int(input("Unitats: ")) | ||
+ | inventari[producte] = unitats | ||
+ | |||
+ | # Actualitzar producte comprovant que existeix... | ||
+ | elif opcio == '2' : | ||
+ | producte = input("Nom del producte: ") | ||
+ | if producte in inventari : | ||
+ | print("Unitats inventari: %d" %inventari[producte]) | ||
+ | unitats = int(input("Unitats actuals: ")) | ||
+ | inventari[producte] = unitats | ||
+ | else : | ||
+ | print("Aquest producte no existeix!!") | ||
+ | |||
+ | # Eliminar producte comprovant que existeix... | ||
+ | elif opcio == '3' : | ||
+ | producte = input("Nom del producte: ") | ||
+ | if producte in inventari : | ||
+ | unitats = inventari.pop(producte) | ||
+ | print("El producte tenia %d unitats" %unitats) | ||
+ | else : | ||
+ | print("Aquest producte no existeix!!") | ||
+ | |||
+ | # Llistat de tots els productes de l'inventari | ||
+ | elif opcio == '4' : | ||
+ | print("\nProducte Unitats") | ||
+ | print("-------- -------") | ||
+ | for clau, valor in inventari.items(): # retorna les claus i els seus valors | ||
+ | print(clau.ljust(16)+str(valor).rjust(5)) | ||
+ | |||
+ | |||
+ | else : | ||
+ | print("Opció incorrecte!!") | ||
+ | |||
+ | # Menú | ||
+ | print("\nMenú principal \n\n 1. Afegir \n 2. Actualitzar \n 3. Eliminar \n 4. Llistat \n 5. Sortir \n") | ||
+ | opcio = input("Opcio: ") | ||
+ | print("") | ||
+ | |||
+ | print("\n\nGràcies per utilitzar aquest programa!\n\n") | ||
+ | </source> | ||
+ | <!----> | ||
+ | |||
+ | 4. Escriu un programa que implementi una agenda de telèfons. Utilitza un diccionari amb clau nom del contacte e i valor el seu telèfon. Presenteu un menú amb les opcions: afegir/modificar, cercar contactes, eliminar un contacte i sortir del programa. | ||
+ | |||
+ | Descripció de les opcions: | ||
+ | :* Afegir/modificar: demana un nom de contacte. Si es troba en l'agenda ha de mostrar el telèfon i, opcionalment, permetre modificar-lo. Si el nom no es troba enl'agenda es demanarà el telèfon i s'afagirà el contacte a l'agenda. | ||
+ | :* Cercar: demana els primers caracters dels noms i mostrarà tots els noms dels contactes que comencin per aquests caracters juntament en els seus respectius telèfons. | ||
+ | :* Eliminar: demana el nom d'un contacte i si existeix mostra el seu telèfon i demana confirmació per elimniar-lo; en cas afirmatiu l'eliminarà de l'agenda. Si el contacte no existeix informarà del fet. | ||
+ | :* Llistar: mostrarà tots els contactes de l'agenda, juntament amb els seus telèfons. | ||
+ | :* Sortir: finalitzarà el programa amb un missatge de comiat. | ||
+ | |||
+ | <source lang = "python"> | ||
+ | print("Agenda de contactes") | ||
+ | |||
+ | # Declarmem el diccionari | ||
+ | agenda = {} | ||
+ | |||
+ | # Menú | ||
+ | print("\nMenú principal \n\n 1. Afegir/modificar \n 2. Cercar \n", | ||
+ | "3. Eliminar \n 4. Llistar \n", | ||
+ | "5. Sortir \n") | ||
+ | opcio = input("Opció: ") | ||
+ | print("") | ||
+ | |||
+ | # Mentre no Sortir | ||
+ | while opcio != '5' : | ||
+ | |||
+ | # Afegir / modificar persona i/o telèfon | ||
+ | if opcio == '1' : | ||
+ | nomContacte = input("Nom del contacte: ") | ||
+ | if nomContacte in agenda : | ||
+ | print("Telèfon actual: ", agenda[nomContacte]) | ||
+ | if input("Vols modificar el telèfon (Sí / No): ").lower().startswith('s'): | ||
+ | nouTelefon = input("Telèfon: ") | ||
+ | agenda[nomContacte] = nouTelefon | ||
+ | else: | ||
+ | nouTelefon = input("Telèfon: ") | ||
+ | agenda[nomContacte] = nouTelefon | ||
+ | |||
+ | # Cercar totes les persones que comencin per una subcadena | ||
+ | elif opcio == '2' : | ||
+ | nomContacte = input("Introdueix inici noms: ") | ||
+ | print("\nContacte Telèfon") | ||
+ | print("--------- -------") | ||
+ | for contacte, telefon in agenda.items(): | ||
+ | if contacte.startswith(nomContacte): | ||
+ | print(contacte.ljust(12)+telefon) | ||
+ | |||
+ | # Eliminar una persona comprovant que existeix... | ||
+ | elif opcio == '3' : | ||
+ | nomContacte = input("Nom del contacte: ") | ||
+ | if nomContacte in agenda : | ||
+ | print("Telèfon actual: ", agenda[nomContacte]) | ||
+ | if input("Segur que vols elimiar aquest contacte (Sí / No): ").lower().startswith('s'): | ||
+ | contacteEl = agenda.pop(nomContacte) | ||
+ | else : | ||
+ | print("Aquest contacte no existeix!!") | ||
+ | |||
+ | # Llistat de tota l'agenda | ||
+ | elif opcio == '4' : | ||
+ | print("\nContacte Telèfon") | ||
+ | print("--------- -------") | ||
+ | for contacte, telefon in agenda.items(): # retorna les claus i els seus valors | ||
+ | print(contacte.ljust(12)+telefon) | ||
+ | else : | ||
+ | print("Opció incorrecte!!") | ||
+ | |||
+ | # Menú | ||
+ | print("\nMenú principal \n\n 1. Afegir/modificar \n 2. Cercar \n", | ||
+ | "3. Eliminar \n 4. Llistar \n", | ||
+ | "5. Sortir \n") | ||
+ | opcio = input("Opció: ") | ||
+ | print("") | ||
+ | |||
+ | print("\n\nGràcies per utilitzar aquest programa!\n\n") | ||
+ | </source> | ||
+ | <!----> | ||
+ | |||
+ | 5. Crea un programa que permita introducir a un profesor las notas de sus estudiantes. Los datos se deberán almacenar en un diccionario como el siguiente: | ||
+ | <pre> | ||
+ | estudiantes = { | ||
+ | 1: { | ||
+ | "nombre": "Lorea", | ||
+ | "nota": 8 | ||
+ | }, | ||
+ | 2: { | ||
+ | "nombre": "Markel", | ||
+ | "nota": "4.2" | ||
+ | }, | ||
+ | 3: { | ||
+ | "nombre": "Julen", | ||
+ | "nota": 6.5 | ||
+ | } | ||
+ | } | ||
+ | </pre> | ||
+ | Una vez introducidos todos los datos, el programa mostrará una lista con los nombres de los estudiantes que han suspendido y otra con los que han aprobado. También calculará y mostrará la nota media de la clase. | ||
+ | |||
+ | |||
+ | <source lang = "python"> | ||
+ | # Declarem el diccionari estudiants i el comptador d'alumnes | ||
+ | estudiants = {} | ||
+ | numAlumnes = 0 | ||
+ | |||
+ | # Introduim els alumnes i les seves notes | ||
+ | |||
+ | opcio = input("Vols introduir un nou alumne?(s/n): ") | ||
+ | print("") | ||
+ | |||
+ | # Mentre no Sortir | ||
+ | while opcio == 's' : | ||
+ | |||
+ | # Demanem dades de l'alumne | ||
+ | |||
+ | nomAl = input("Nom de l'alumne: ") | ||
+ | notaAl =float(input("Nota de l'alumne: ")) | ||
+ | numAlumnes += 1 | ||
+ | # Introduim l'alumne i la seva nota en el diccionari | ||
+ | estudiants[numAlumnes] = {"nom":nomAl,"nota":notaAl} | ||
+ | |||
+ | # Més alumnes? | ||
+ | print("") | ||
+ | opcio = input("Vols introduir un nou alumne?(s/n): ") | ||
+ | print("") | ||
+ | |||
+ | # Suspesos | ||
+ | print("Alumnes suspesos") | ||
+ | print("-----------------------------") | ||
+ | |||
+ | for numAl, alumne in estudiants.items(): | ||
+ | if alumne["nota"] < float(5.0): | ||
+ | print(str(numAl).ljust(3)+alumne["nom"].ljust(16)+str(alumne["nota"]).rjust(5)) | ||
+ | print("") | ||
+ | |||
+ | # Suspesos | ||
+ | print("Alumnes aprovats") | ||
+ | print("-----------------------------") | ||
+ | |||
+ | for numAl, alumne in estudiants.items(): | ||
+ | if alumne["nota"] >= float(5.0): | ||
+ | print(str(numAl).ljust(3)+alumne["nom"].ljust(16)+str(alumne["nota"]).rjust(5)) | ||
+ | |||
+ | |||
+ | </source> | ||
+ | <!----> | ||
+ | 6. Escriu un programa, que ens permeti emmagatzemar els noms dels alumnes d'una classe i les notes obtingudes. Els alumnes poden tenir diferents número de notes. Utilitza un diccionari amb clau nom de l'alumne i valors les llistes de notes de cada alumne. Presenteu un menú amb les opcions: afegir alumne (sense notes), afegir alumne amb notes, afegir notes a un alumne, modificar una nota (primer cal mostrar-les), eliminar un alumne, mostrar les notes d'un alumne, calcular la nota mitjana, llistar tots els alumnes amb les seves notes i la darrera opció per sortir del programa. | ||
+ | |||
+ | <source lang = "python"> | ||
+ | print("Notes alumnes") | ||
+ | |||
+ | # Declarmem el diccionari | ||
+ | alumnes = {} | ||
+ | |||
+ | # Menú | ||
+ | print("\nMenú principal \n\n 1. Afegir alumne \n 2. Afegir alumne i notes \n", | ||
+ | "3. Afegir notes a un alumne \n", | ||
+ | "4. Modificar nota \n 5. Eliminar alumne \n", | ||
+ | "6. Mostrar notes alumne \n 7. Calcula la mitja d'un alumne \n", | ||
+ | "8. Llistat alumnes amb notes \n 9. Sortir \n") | ||
+ | opcio = input("Opció: ") | ||
+ | print("") | ||
+ | |||
+ | # Mentre no Sortir | ||
+ | while opcio != '9' : | ||
+ | |||
+ | # Afegir alumne sense notes comprovant que no existeix... | ||
+ | if opcio == '1' : | ||
+ | nomAlumne = input("Nom de l'alumne: ") | ||
+ | if nomAlumne in alumnes : | ||
+ | print("Aquest alumne ja existeix!!") | ||
+ | else : | ||
+ | alumnes[nomAlumne] = [] | ||
+ | |||
+ | # Afegir alumne amb notes comprovant que no existeix... | ||
+ | if opcio == '2' : | ||
+ | nomAlumne = input("Nom de l'alumne: ") | ||
+ | if nomAlumne in alumnes : | ||
+ | print("Aquest alumne ja existeix!!") | ||
+ | else : | ||
+ | print("Introdueix les notes de l'alumne (-1 per acabar)") | ||
+ | numNota = 1 | ||
+ | nota = int(input("Nota %d alumne: " %numNota)) | ||
+ | notes =[] | ||
+ | while nota != -1: | ||
+ | if nota >=0 and nota <=10: | ||
+ | notes.append(nota) | ||
+ | numNota += 1 | ||
+ | else: | ||
+ | print("Nota Incorrecte") | ||
+ | nota = int(input("Nota %d alumne: " %numNota)) | ||
+ | alumnes[nomAlumne] = notes | ||
+ | |||
+ | # Afegir notes a un alumne comprovant que existeix... | ||
+ | elif opcio == '3' : | ||
+ | nomAlumne = input("Nom de l'alumne: ") | ||
+ | if nomAlumne in alumnes : | ||
+ | print("Introdueix les noves notes de l'alumne (-1 per acabar)") | ||
+ | numNota = 1 | ||
+ | nota = int(input("Nova nota %d alumne: " %numNota)) | ||
+ | notes = alumnes[nomAlumne] | ||
+ | while nota != -1: | ||
+ | if nota >=0 and nota <=10: | ||
+ | notes.append(nota) | ||
+ | numNota += 1 | ||
+ | else: | ||
+ | print("Nota Incorrecte") | ||
+ | nota = int(input("Nova nota %d alumne: " %numNota)) | ||
+ | alumnes[nomAlumne] = notes | ||
+ | else : | ||
+ | print("Aquest alumne no existeix!!") | ||
+ | |||
+ | |||
+ | # Modificar una nota d'un alumne comprovant que existeix... | ||
+ | elif opcio == '4' : | ||
+ | nomAlumne = input("Nom de l'alumne: ") | ||
+ | if nomAlumne in alumnes : | ||
+ | # Mostrar les notes de l'alumne | ||
+ | numNota = 1 | ||
+ | for nota in alumnes[nomAlumne]: | ||
+ | print("Nota %d: %d" %(numNota,alumnes[nomAlumne][numNota-1])) | ||
+ | numNota += 1 | ||
+ | notaMod=int(input("Quina nota vols modificar? ")) | ||
+ | if notaMod >= 1 and nota <= len(alumnes[nomAlumne]): | ||
+ | notaNova = int(input("Nota nova: ")) | ||
+ | notaEl = alumnes[nomAlumne].pop(notaMod-1) | ||
+ | alumnes[nomAlumne].insert(notaMod-1,notaNova) | ||
+ | else : | ||
+ | print("Aquest alumne no existeix!!") | ||
+ | |||
+ | # Eliminar un alumne comprovant que existeix... | ||
+ | elif opcio == '5' : | ||
+ | nomAlumne = input("Nom de l'alumne: ") | ||
+ | if nomAlumne in alumnes : | ||
+ | notesEl = alumnes.pop(nomAlumne) | ||
+ | else : | ||
+ | print("Aquest alumne no existeix!!") | ||
+ | |||
+ | # Mostrar notes d'un alumne | ||
+ | elif opcio == '6' : | ||
+ | nomAlumne = input("Nom de l'alumne: ") | ||
+ | if nomAlumne in alumnes : | ||
+ | print("\nAlumne Notes") | ||
+ | print("------ -----") | ||
+ | print(nomAlumne.ljust(12)+str(alumnes[nomAlumne])) | ||
+ | else : | ||
+ | print("Aquest alumne no existeix!!") | ||
+ | |||
+ | # Calcular la mitja d'un alumne | ||
+ | elif opcio == '7' : | ||
+ | nomAlumne = input("Nom de l'alumne: ") | ||
+ | if nomAlumne in alumnes : | ||
+ | sumaNotes = 0; | ||
+ | print("\nAlumne Mitja") | ||
+ | print("------ -----") | ||
+ | print(nomAlumne.ljust(12)+str(sum(alumnes[nomAlumne])/len(alumnes[nomAlumne])).rjust(5)) | ||
+ | else : | ||
+ | print("Aquest alumne no existeix!!") | ||
+ | |||
+ | # Llistat de tots els alumnes | ||
+ | elif opcio == '8' : | ||
+ | print("\nAlumne Notes") | ||
+ | print("------ -----") | ||
+ | for clau, valor in alumnes.items(): # retorna les claus i els seus valors | ||
+ | print(clau.ljust(12)+str(valor)) | ||
+ | else : | ||
+ | print("Opció incorrecte!!") | ||
+ | |||
+ | # Menú | ||
+ | |||
+ | print("\nMenú principal \n\n 1. Afegir alumne \n 2. Afegir alumne i notes \n", | ||
+ | "3. Afegir notes a un alumne \n", | ||
+ | "4. Modificar nota \n 5. Eliminar alumne \n", | ||
+ | "6. Mostrar notes alumne \n 7. Calcular la mitja d'un alumne \n", | ||
+ | "8. Llistat alumnes amb notes \n 9. Sortir \n") | ||
+ | opcio = input("Opció: ") | ||
+ | print("") | ||
+ | |||
+ | print("\n\nGràcies per utilitzar aquest programa!\n\n") | ||
+ | </source> | ||
+ | <!----> |
Revisió de 09:28, 25 maig 2024
A4.3 Exercicis Diccionaris
1. Creeu un programa en python on declarareu un diccionari per guardar els preus de les diferents fruites d'un supermercat. El programa demanarà el nom de la fruita i la quantitat que s'ha venut i mostrarà el preu final de la fruita a partir de les dades guardades al diccionari. Si la fruita no existeix, ens donarà un error. Després de cada consulta, el programa ens preguntarà si volem fer una altra consulta.
# Preus de la fruita
preus = {"pera": 2.19, "melon": 2.05, "sandia": 1.95, "platano": 2.4, "fresa": 4.89}
# Menú
opcio = input("Calcular preu d'un producte (s/n): ")
print("")
# Mentre no Sortir
while opcio == 's' :
# Demanar dades del producte
producte = input("Nom del producte: ")
if producte in preus:
pes = float(input("Pes del producte: "))
# Calcular preu del producte
preuProducte = preus[producte]*pes
# Mostrar el preu total
print('Preu del producte: %.2f' %preuProducte)
# El producte no existeix
else :
print("Aquest producte no existeix!!")
# Calcular preu d'un altre producte
opcio = input("Calcular preu d'un altre producte (s/n): ")
2. Escriu un programa que llegeixi una frase i crei un diccionari amb la quantitat d'aparicions de cada caràcter. A continuació, mostra el contingut del diccionari.
print("Repeticions caràcters en una frase \n")
# Inicialització diccionari i frase
caracters = {}
frase = input("Escriu una frase: ")
# Recórrer la frase i comptar caràcter
for caracter in frase:
if caracter in caracters:
caracters[caracter] += 1 # el caràcter ja està en el diccionari
else:
caracters[caracter] = 1 # primera aparició del caràcter
# Mostrar el resultat
for clau,valor in caracters.items():
print(clau,":",valor)
3. Escriu un programa, que declari un diccionari amb l'inventari d'un departament d'informàtica (ordinadors sobretaula, portàtils, projectors, impressores, ...). Presenteu un menú amb les opcions necessaris per fer un manteniment de l'inventari (insercions, actualitzacions, eliminacions i llistat). La darrera opció del menú serà per sortir del programa.
# Declarem l'inventari inicial
inventari = {"ordinadors": 102, "portatils": 25, "projectors": 6, "impressores": 3}
# Menú
print("\nMenú principal \n\n 1. Afegir \n 2. Actualitzar \n 3. Eliminar \n 4. Llistat \n 5. Sortir \n")
opcio = input("Opcio: ")
print("")
# Mentre no Sortir
while opcio != '5' :
# Afegir producte comprovant que no existeix...
if opcio == '1' :
producte = input("Nom del producte: ")
if producte in inventari :
print("Aquest producte ja existeix!!")
else :
unitats = int(input("Unitats: "))
inventari[producte] = unitats
# Actualitzar producte comprovant que existeix...
elif opcio == '2' :
producte = input("Nom del producte: ")
if producte in inventari :
print("Unitats inventari: %d" %inventari[producte])
unitats = int(input("Unitats actuals: "))
inventari[producte] = unitats
else :
print("Aquest producte no existeix!!")
# Eliminar producte comprovant que existeix...
elif opcio == '3' :
producte = input("Nom del producte: ")
if producte in inventari :
unitats = inventari.pop(producte)
print("El producte tenia %d unitats" %unitats)
else :
print("Aquest producte no existeix!!")
# Llistat de tots els productes de l'inventari
elif opcio == '4' :
print("\nProducte Unitats")
print("-------- -------")
for clau, valor in inventari.items(): # retorna les claus i els seus valors
print(clau.ljust(16)+str(valor).rjust(5))
else :
print("Opció incorrecte!!")
# Menú
print("\nMenú principal \n\n 1. Afegir \n 2. Actualitzar \n 3. Eliminar \n 4. Llistat \n 5. Sortir \n")
opcio = input("Opcio: ")
print("")
print("\n\nGràcies per utilitzar aquest programa!\n\n")
4. Escriu un programa que implementi una agenda de telèfons. Utilitza un diccionari amb clau nom del contacte e i valor el seu telèfon. Presenteu un menú amb les opcions: afegir/modificar, cercar contactes, eliminar un contacte i sortir del programa.
Descripció de les opcions:
- Afegir/modificar: demana un nom de contacte. Si es troba en l'agenda ha de mostrar el telèfon i, opcionalment, permetre modificar-lo. Si el nom no es troba enl'agenda es demanarà el telèfon i s'afagirà el contacte a l'agenda.
- Cercar: demana els primers caracters dels noms i mostrarà tots els noms dels contactes que comencin per aquests caracters juntament en els seus respectius telèfons.
- Eliminar: demana el nom d'un contacte i si existeix mostra el seu telèfon i demana confirmació per elimniar-lo; en cas afirmatiu l'eliminarà de l'agenda. Si el contacte no existeix informarà del fet.
- Llistar: mostrarà tots els contactes de l'agenda, juntament amb els seus telèfons.
- Sortir: finalitzarà el programa amb un missatge de comiat.
print("Agenda de contactes")
# Declarmem el diccionari
agenda = {}
# Menú
print("\nMenú principal \n\n 1. Afegir/modificar \n 2. Cercar \n",
"3. Eliminar \n 4. Llistar \n",
"5. Sortir \n")
opcio = input("Opció: ")
print("")
# Mentre no Sortir
while opcio != '5' :
# Afegir / modificar persona i/o telèfon
if opcio == '1' :
nomContacte = input("Nom del contacte: ")
if nomContacte in agenda :
print("Telèfon actual: ", agenda[nomContacte])
if input("Vols modificar el telèfon (Sí / No): ").lower().startswith('s'):
nouTelefon = input("Telèfon: ")
agenda[nomContacte] = nouTelefon
else:
nouTelefon = input("Telèfon: ")
agenda[nomContacte] = nouTelefon
# Cercar totes les persones que comencin per una subcadena
elif opcio == '2' :
nomContacte = input("Introdueix inici noms: ")
print("\nContacte Telèfon")
print("--------- -------")
for contacte, telefon in agenda.items():
if contacte.startswith(nomContacte):
print(contacte.ljust(12)+telefon)
# Eliminar una persona comprovant que existeix...
elif opcio == '3' :
nomContacte = input("Nom del contacte: ")
if nomContacte in agenda :
print("Telèfon actual: ", agenda[nomContacte])
if input("Segur que vols elimiar aquest contacte (Sí / No): ").lower().startswith('s'):
contacteEl = agenda.pop(nomContacte)
else :
print("Aquest contacte no existeix!!")
# Llistat de tota l'agenda
elif opcio == '4' :
print("\nContacte Telèfon")
print("--------- -------")
for contacte, telefon in agenda.items(): # retorna les claus i els seus valors
print(contacte.ljust(12)+telefon)
else :
print("Opció incorrecte!!")
# Menú
print("\nMenú principal \n\n 1. Afegir/modificar \n 2. Cercar \n",
"3. Eliminar \n 4. Llistar \n",
"5. Sortir \n")
opcio = input("Opció: ")
print("")
print("\n\nGràcies per utilitzar aquest programa!\n\n")
5. Crea un programa que permita introducir a un profesor las notas de sus estudiantes. Los datos se deberán almacenar en un diccionario como el siguiente:
estudiantes = { 1: { "nombre": "Lorea", "nota": 8 }, 2: { "nombre": "Markel", "nota": "4.2" }, 3: { "nombre": "Julen", "nota": 6.5 } }
Una vez introducidos todos los datos, el programa mostrará una lista con los nombres de los estudiantes que han suspendido y otra con los que han aprobado. También calculará y mostrará la nota media de la clase.
# Declarem el diccionari estudiants i el comptador d'alumnes
estudiants = {}
numAlumnes = 0
# Introduim els alumnes i les seves notes
opcio = input("Vols introduir un nou alumne?(s/n): ")
print("")
# Mentre no Sortir
while opcio == 's' :
# Demanem dades de l'alumne
nomAl = input("Nom de l'alumne: ")
notaAl =float(input("Nota de l'alumne: "))
numAlumnes += 1
# Introduim l'alumne i la seva nota en el diccionari
estudiants[numAlumnes] = {"nom":nomAl,"nota":notaAl}
# Més alumnes?
print("")
opcio = input("Vols introduir un nou alumne?(s/n): ")
print("")
# Suspesos
print("Alumnes suspesos")
print("-----------------------------")
for numAl, alumne in estudiants.items():
if alumne["nota"] < float(5.0):
print(str(numAl).ljust(3)+alumne["nom"].ljust(16)+str(alumne["nota"]).rjust(5))
print("")
# Suspesos
print("Alumnes aprovats")
print("-----------------------------")
for numAl, alumne in estudiants.items():
if alumne["nota"] >= float(5.0):
print(str(numAl).ljust(3)+alumne["nom"].ljust(16)+str(alumne["nota"]).rjust(5))
6. Escriu un programa, que ens permeti emmagatzemar els noms dels alumnes d'una classe i les notes obtingudes. Els alumnes poden tenir diferents número de notes. Utilitza un diccionari amb clau nom de l'alumne i valors les llistes de notes de cada alumne. Presenteu un menú amb les opcions: afegir alumne (sense notes), afegir alumne amb notes, afegir notes a un alumne, modificar una nota (primer cal mostrar-les), eliminar un alumne, mostrar les notes d'un alumne, calcular la nota mitjana, llistar tots els alumnes amb les seves notes i la darrera opció per sortir del programa.
print("Notes alumnes")
# Declarmem el diccionari
alumnes = {}
# Menú
print("\nMenú principal \n\n 1. Afegir alumne \n 2. Afegir alumne i notes \n",
"3. Afegir notes a un alumne \n",
"4. Modificar nota \n 5. Eliminar alumne \n",
"6. Mostrar notes alumne \n 7. Calcula la mitja d'un alumne \n",
"8. Llistat alumnes amb notes \n 9. Sortir \n")
opcio = input("Opció: ")
print("")
# Mentre no Sortir
while opcio != '9' :
# Afegir alumne sense notes comprovant que no existeix...
if opcio == '1' :
nomAlumne = input("Nom de l'alumne: ")
if nomAlumne in alumnes :
print("Aquest alumne ja existeix!!")
else :
alumnes[nomAlumne] = []
# Afegir alumne amb notes comprovant que no existeix...
if opcio == '2' :
nomAlumne = input("Nom de l'alumne: ")
if nomAlumne in alumnes :
print("Aquest alumne ja existeix!!")
else :
print("Introdueix les notes de l'alumne (-1 per acabar)")
numNota = 1
nota = int(input("Nota %d alumne: " %numNota))
notes =[]
while nota != -1:
if nota >=0 and nota <=10:
notes.append(nota)
numNota += 1
else:
print("Nota Incorrecte")
nota = int(input("Nota %d alumne: " %numNota))
alumnes[nomAlumne] = notes
# Afegir notes a un alumne comprovant que existeix...
elif opcio == '3' :
nomAlumne = input("Nom de l'alumne: ")
if nomAlumne in alumnes :
print("Introdueix les noves notes de l'alumne (-1 per acabar)")
numNota = 1
nota = int(input("Nova nota %d alumne: " %numNota))
notes = alumnes[nomAlumne]
while nota != -1:
if nota >=0 and nota <=10:
notes.append(nota)
numNota += 1
else:
print("Nota Incorrecte")
nota = int(input("Nova nota %d alumne: " %numNota))
alumnes[nomAlumne] = notes
else :
print("Aquest alumne no existeix!!")
# Modificar una nota d'un alumne comprovant que existeix...
elif opcio == '4' :
nomAlumne = input("Nom de l'alumne: ")
if nomAlumne in alumnes :
# Mostrar les notes de l'alumne
numNota = 1
for nota in alumnes[nomAlumne]:
print("Nota %d: %d" %(numNota,alumnes[nomAlumne][numNota-1]))
numNota += 1
notaMod=int(input("Quina nota vols modificar? "))
if notaMod >= 1 and nota <= len(alumnes[nomAlumne]):
notaNova = int(input("Nota nova: "))
notaEl = alumnes[nomAlumne].pop(notaMod-1)
alumnes[nomAlumne].insert(notaMod-1,notaNova)
else :
print("Aquest alumne no existeix!!")
# Eliminar un alumne comprovant que existeix...
elif opcio == '5' :
nomAlumne = input("Nom de l'alumne: ")
if nomAlumne in alumnes :
notesEl = alumnes.pop(nomAlumne)
else :
print("Aquest alumne no existeix!!")
# Mostrar notes d'un alumne
elif opcio == '6' :
nomAlumne = input("Nom de l'alumne: ")
if nomAlumne in alumnes :
print("\nAlumne Notes")
print("------ -----")
print(nomAlumne.ljust(12)+str(alumnes[nomAlumne]))
else :
print("Aquest alumne no existeix!!")
# Calcular la mitja d'un alumne
elif opcio == '7' :
nomAlumne = input("Nom de l'alumne: ")
if nomAlumne in alumnes :
sumaNotes = 0;
print("\nAlumne Mitja")
print("------ -----")
print(nomAlumne.ljust(12)+str(sum(alumnes[nomAlumne])/len(alumnes[nomAlumne])).rjust(5))
else :
print("Aquest alumne no existeix!!")
# Llistat de tots els alumnes
elif opcio == '8' :
print("\nAlumne Notes")
print("------ -----")
for clau, valor in alumnes.items(): # retorna les claus i els seus valors
print(clau.ljust(12)+str(valor))
else :
print("Opció incorrecte!!")
# Menú
print("\nMenú principal \n\n 1. Afegir alumne \n 2. Afegir alumne i notes \n",
"3. Afegir notes a un alumne \n",
"4. Modificar nota \n 5. Eliminar alumne \n",
"6. Mostrar notes alumne \n 7. Calcular la mitja d'un alumne \n",
"8. Llistat alumnes amb notes \n 9. Sortir \n")
opcio = input("Opció: ")
print("")
print("\n\nGràcies per utilitzar aquest programa!\n\n")