Forum
>>
Principianti
>>
Far funzionare una funzione
Pagina: 1
Esegui il login per scrivere una risposta.
Pagina: 1
Scritto da Heryx |
2016-04-05 09:27:14 - Far funzionare una funzione
|
Salve a tutti,
da poco ho ripreso python, ma posso dire che dopo mesi non ricordo quasi niente. Vorrei creare una funzione che mi facesse delle domande sul nome e il numero di cellulare, per inserirli in un dizionario. Questo è il codice: nomi = [] numeri = [] def insert_dict(key,value): a = input('Inserisci il tuo nome: ') b = input('Inserisci il tuo numero telefonico: ') if a == True: key.append(a) else: input('Non hai inserito nessun nome. Riprova!') if b == True: value.append(b) else: input('Non hai inserito nessun numero. Riprova!') insert_dict() questo è l'errore che mi da:TypeError: insert_dict() takes exactly 2 arguments (0 given) Grazie a tutti in anticipo! --- Ultima modifica di Heryx in data 2016-04-05 09:28:25 --- |
|
Scritto da Heryx |
2016-04-05 09:28:57 - Re: Far funzionare una funzione
|
Il tutto è indentato..
|
|
Scritto da Daniele aka Palmux |
2016-04-05 11:13:28 - Re: Far funzionare una funzione
|
L'errore è già autoesplicativo, la funzione insert_dict() richiede due argomenti, che tu non fornisci.
Quindi la funzione dovrebbe essere: def insert_dict(): ---il tuo codice---oppure quando la richiami: insert_dict("aggiungi","qualcosa") #Tipo nomi e numeri?E fin qui abbiamo pensato all'errore. Però nel tuo codice c'è un altro grosso errore, che non farà mai funzionare lo script. Cerchi di aggiungere i valori inseriti dall'utente a key e value, che però non corrispondono a nulla, non certo alle liste nomi e numeri (che forse vorresti passare alle funzione?). Insomma fai un po' di refactoring del codice. Ciao. Daniele |
|
Scritto da Heryx |
2016-04-05 14:04:38 - Re: Far funzionare una funzione
|
Ciao Daniele,
grazie per aver risposto. Faccio subito qualche prova |
|
Scritto da Heryx |
2016-04-05 14:17:32 - Re: Far funzionare una funzione
|
Ok, ho corretto qualcosa. Adesso mi fa le domande, inserisco i dati, ma non li 'appende' nella lista
Ecco il codice: nomi = [] numeri = [] r = '' def insert_dict(): a = input('Inserisci il tuo nome: ') b = raw_input('Inserisci il tuo numero telefonico: ') if a == r: nomi.append(a) else: input('Non hai inserito nessun nome. Riprova!') if b == r: numeri.append(b) else: input('Non hai inserito nessun numero. Riprova!') insert_dict() Cosa sbaglio? --- Ultima modifica di Heryx in data 2016-04-05 15:10:44 --- --- Ultima modifica di Heryx in data 2016-04-05 15:11:24 --- |
|
Scritto da Daniele aka Palmux |
2016-04-05 16:52:21 - Re: Far funzionare una funzione
|
Alcune cose:
1. Non usare input() ma raw_input(), leggi qui perché (risposta di Claudio_F); 2. La condizione if a == r nel tuo script non vuol dire nulla di concreto; 3. I controlli sui dati inseriti sono pochi ed insufficienti; 4. Quando si va nei due else, di fatto non serve a nulla perché non interagisci con questi nuovi inserimenti. Pulendo il tuo codice appare così: #Ecco le liste iniziali nomi = [] numeri = [] #Definisco la funzione def insert_dict(): #Iniziamo dal nome a = raw_input('Inserisci il tuo nome: ') if a: nomi.append(a) else: raw_input('Non hai inserito nessun nome. Riprova!: ') #Che ci fai con questo? Nulla... #Ora tocca al numero b = raw_input('Inserisci il tuo numero telefonico: ') if b: numeri.append(b) else: raw_input('Non hai inserito nessun numero. Riprova!: ') #Anche qui che ci fai? # Posso richiamare la funzione insert_dict() NOTA: Devi lavorarci ancora, perché è bel lontano dall'essere quello che ti serve. Cya |
Pagina: 1
Esegui il login per scrivere una risposta.