quello che ho fatto io, so che con tutti quegli if nestati fà un po' schifo ma funziona, se volete divertirvi provate a fare più funzioni per comparare, sò che di recente hanno aggiunto anche switch/case in python ancora non ho provato. persona = { "nome": "luca", "cognome": "rossi", "eta": 25, "altezza": 1.60, } operazioni = ["aggiungere", "modificare", "eliminare",] modifica_elimina = ["nome", "cognome", "eta", "altezza"] def start(): operazione = input("cosa vuoi fare ?") if operazione == operazioni[0]: key_aggiunge = input(" aggiungi chiave:valore separati da una virgola: ") aggiungi(key_aggiunge.split(",")) if operazione == operazioni[1]: key_modifica = input("cosa vuoi modificare ?: ") if key_modifica == modifica_elimina[0]: nuovo_nome = input("scrivi il nuovo nome: ") persona["nome"] = nuovo_nome print(nuovo_nome) print(persona) if key_modifica == modifica_elimina[1]: nuovo_cognome = input("scrivi il nuovo cognome: ") persona["cognome"] = nuovo_cognome print(nuovo_cognome) print(persona)
if operazione == operazioni[2]: key_elimina = input("cosa vuoi eliminare ?: ") if key_elimina == modifica_elimina[0]: print("eliminazione nome in corso..." ) del persona["nome"] print("nome eliminato con successo ") print(persona) if key_elimina == modifica_elimina[1]: print("eliminazione dle cognome in corso...") del persona["cognome"] print("cognome eliminato con successo ") print(persona)
def aggiungi(param): chiave = param[0] valore = param[1] persona[chiave] = valore print(persona) # def modifica(param1): while True: start()
Scusa Edo, ma avendo chiamato la funzione 'aggiungi' prima di averla definita, non dovrebbe dare un errore? io avrei definito la funzione 'aggiungi' prima della funzione 'start'
no, perché se noti la funzione "aggiungi" viene chiamata dentro la funzione "start", che a sua volta viene chiamata dentro al while ("aggiungi" si trova sopra al while). Di conseguenza la funzione "aggiungi" viene definita prima di essere chiamata.
def aggiungi(param): chiave = param[0] valore =[param[1]] persona[chiave]= valore print(persona) va bene come ho fatto? è l'esercizio degli interessi che avevi accennato alla fine
Eccoti la mia versione dell'esercizio, leggermente personalizzata. Ovviamente uno può averlo implementato in modo diverso (ad esempio usando il cmd del al posto del metodo .pop(key) per eiliminare la coppia key-value nel dict person). Spero di eserti stato utile, anche se dopo un anno. person = { "nome": "Luca", "cognome": "Rossi", "età": 25 } operations = ( "aggiungere una nuova coppia key-value", "modificare una coppia key-value", "eliminare una coppia key-value", "terminare il programma" ) print(operations) def start(): print(" Cosa vuoi fare?") print(" Per " + operations[0] + ": digita 1") print(" Per " + operations[1] + ": digita 2") print(" Per " + operations[2] + ": digita 3") print(" Per " + operations[3] + ": digita 4")
operation_idx = int(input(" Digita qui >>> ")) if operation_idx == 1: x = input(" Digita il nome della KEY >>>>>>>>>>>> ") y = input(" Adesso digita il valore del VALUE >>> ") if y.isnumeric(): y = int(y) add_kv([x, y]) elif operation_idx == 2: x = input(" Vuoi modificare una KEY (1) o un VALUE(2)? >>> ") x = int(x) if x == 1: print(" Ecco la lista delle KEY presenti e modificabili:") print(person.keys()) y = input(" Digita la KEY da modificare >>>> ") z = None else: print(person) y = input("A quale KEY fa riferimento il VALUE da modificare? >>> ") z = input(" Digita il nuovo VALUE da aggiornare >> ") modify_kv([y, z])
elif operation_idx == 3: print(" Ecco la lista delle KEY presenti ed eliminabili:") print(person.keys()) x = input(" Quale KEY vuoi eliminare? >>> ") remove_kv(x) elif operation_idx == 4: exit_pgm() # Definizione della function "Aggiungi key-value" def add_kv(param): key = param[0] value = param[1] person[key] = value print(person) # Definizione della function "Modifica key-value" def modify_kv(param): key = param[0] value = param[1] if value.isnumeric(): value = int(value) if value != None: person[key] = value print(person) # Definizione della function "Rimuovi key-value" def remove_kv(param): key = param person.pop(key) # Definizione della function "Termina programma" def exit_pgm(): print(" Ecco il dict Persona aggiornato:") print(person) print("Ciao!") quit() # Esecuzione in loop del programma while True: start()
Ciao Edoardo, potresti spiegarmi come si fa ad assegnare come valore di un dict una tupla? Grazie....nell'esercizio volevo inserire come chiave "sport" e poter assegnare più valori
Ciao! Ho fatto la funzione elimina, ma sono riuscito solo limitando l'eliminazione a nome cognome età, e non riesco a eliminare eventuali elementi aggiunti dopo... come faccio?
potresti pubblicare l'esercizio del tutto svolto??grazie mille
Bravo, complimenti spiegazione sempre pulita!!
quello che ho fatto io, so che con tutti quegli if nestati fà un po' schifo ma funziona, se volete divertirvi provate a fare più funzioni per comparare, sò che di recente hanno aggiunto anche switch/case in python ancora non ho provato.
persona = {
"nome": "luca",
"cognome": "rossi",
"eta": 25,
"altezza": 1.60,
}
operazioni = ["aggiungere", "modificare", "eliminare",]
modifica_elimina = ["nome", "cognome", "eta", "altezza"]
def start():
operazione = input("cosa vuoi fare ?")
if operazione == operazioni[0]:
key_aggiunge = input(" aggiungi chiave:valore separati da una virgola: ")
aggiungi(key_aggiunge.split(","))
if operazione == operazioni[1]:
key_modifica = input("cosa vuoi modificare ?: ")
if key_modifica == modifica_elimina[0]:
nuovo_nome = input("scrivi il nuovo nome: ")
persona["nome"] = nuovo_nome
print(nuovo_nome)
print(persona)
if key_modifica == modifica_elimina[1]:
nuovo_cognome = input("scrivi il nuovo cognome: ")
persona["cognome"] = nuovo_cognome
print(nuovo_cognome)
print(persona)
if operazione == operazioni[2]:
key_elimina = input("cosa vuoi eliminare ?: ")
if key_elimina == modifica_elimina[0]:
print("eliminazione nome in corso..." )
del persona["nome"]
print("nome eliminato con successo ")
print(persona)
if key_elimina == modifica_elimina[1]:
print("eliminazione dle cognome in corso...")
del persona["cognome"]
print("cognome eliminato con successo ")
print(persona)
def aggiungi(param):
chiave = param[0]
valore = param[1]
persona[chiave] = valore
print(persona)
# def modifica(param1):
while True:
start()
Ma con modificare dobbiamo modificare sia la chiave e il valore di una coppia chiave-valore o solo il valore delle chiavi?
0:28 hahahahahahaha mi hai ucciso :D
mai troppo serio quando spiego 😎
Sempre e solo il milgiore!
Scusa Edo, ma avendo chiamato la funzione 'aggiungi' prima di averla definita, non dovrebbe dare un errore? io avrei definito la funzione 'aggiungi' prima della funzione 'start'
dovrebbe darti errore, mi dai il timestamp del video che lo vado a rivedere?
@@EdoardoMidali 6:29
no, perché se noti la funzione "aggiungi" viene chiamata dentro la funzione "start", che a sua volta viene chiamata dentro al while ("aggiungi" si trova sopra al while). Di conseguenza la funzione "aggiungi" viene definita prima di essere chiamata.
fatto, tutto perfetto ;)
come hai assegnato ad una chiave (nel caso specifico interessi), come valore una tupla?
@aki5529
come mi potresti aiutare bro?? Perchè non riesco ad andarne fuori...
def aggiungi(param):
chiave = param[0]
valore =[param[1]]
persona[chiave]= valore
print(persona)
va bene come ho fatto? è l'esercizio degli interessi che avevi accennato alla fine
Ciao dove posso mandarti lo screenshot dell'esercizio?
Sarebbe possibile visionare l'esercizio completo, ci sono cose in cui non riesco ad andare avanti, anche con video spiegazione sarebbe molto meglio :)
non ho salvato il codice da nessuna parte al momento, andrebbe registrato il video
E vabene grazie lo stesso, in caso se posso chiedere, la funzione di elininazione come dovrebbe essere compilata?😅
@@suize6881
def elimina(chiave):
del persona[chiave]
e da input ti fai passare passare semplicemente la stringa della chiave che vuoi eliminare
Eccoti la mia versione dell'esercizio, leggermente personalizzata. Ovviamente uno può averlo implementato in modo diverso (ad esempio usando il cmd del al posto del metodo .pop(key) per eiliminare la coppia key-value nel dict person). Spero di eserti stato utile, anche se dopo un anno.
person = {
"nome": "Luca",
"cognome": "Rossi",
"età": 25
}
operations = (
"aggiungere una nuova coppia key-value",
"modificare una coppia key-value",
"eliminare una coppia key-value",
"terminare il programma"
)
print(operations)
def start():
print(" Cosa vuoi fare?")
print(" Per " + operations[0] + ": digita 1")
print(" Per " + operations[1] + ": digita 2")
print(" Per " + operations[2] + ": digita 3")
print(" Per " + operations[3] + ": digita 4")
operation_idx = int(input(" Digita qui >>> "))
if operation_idx == 1:
x = input(" Digita il nome della KEY >>>>>>>>>>>> ")
y = input(" Adesso digita il valore del VALUE >>> ")
if y.isnumeric():
y = int(y)
add_kv([x, y])
elif operation_idx == 2:
x = input(" Vuoi modificare una KEY (1) o un VALUE(2)? >>> ")
x = int(x)
if x == 1:
print(" Ecco la lista delle KEY presenti e modificabili:")
print(person.keys())
y = input(" Digita la KEY da modificare >>>> ")
z = None
else:
print(person)
y = input("A quale KEY fa riferimento il VALUE da modificare? >>> ")
z = input(" Digita il nuovo VALUE da aggiornare >> ")
modify_kv([y, z])
elif operation_idx == 3:
print(" Ecco la lista delle KEY presenti ed eliminabili:")
print(person.keys())
x = input(" Quale KEY vuoi eliminare? >>> ")
remove_kv(x)
elif operation_idx == 4:
exit_pgm()
# Definizione della function "Aggiungi key-value"
def add_kv(param):
key = param[0]
value = param[1]
person[key] = value
print(person)
# Definizione della function "Modifica key-value"
def modify_kv(param):
key = param[0]
value = param[1]
if value.isnumeric():
value = int(value)
if value != None:
person[key] = value
print(person)
# Definizione della function "Rimuovi key-value"
def remove_kv(param):
key = param
person.pop(key)
# Definizione della function "Termina programma"
def exit_pgm():
print(" Ecco il dict Persona aggiornato:")
print(person)
print("Ciao!")
quit()
# Esecuzione in loop del programma
while True:
start()
Ciao Edoardo, potresti spiegarmi come si fa ad assegnare come valore di un dict una tupla? Grazie....nell'esercizio volevo inserire come chiave "sport" e poter assegnare più valori
questo è un buon metodo
list = list(dict.items())
ragazzi potreste pubblicare qualche indizio/consiglio?? perchè a me non viene..
Ciao! Ho fatto la funzione elimina, ma sono riuscito solo limitando l'eliminazione a nome cognome età, e non riesco a eliminare eventuali elementi aggiunti dopo... come faccio?
Ciao, potresti scrivere il codice che hai utilizzato per favore?
0:28 quando una delle 29 indentazioni e` fuoriposto