raw_input
questa istruzione avendo installato python 3 non va,mi da errore.Come posso sostituirla.Grazie
il 18 Maggio 2016, da federico ferrara
Ciao Federico. Puoi farmi vedere in che modo invochi il metodo? Che errore ti dà?
b=raw_input("chiedimi qualcosa") NameError: name 'raw_input' is not defined ( questo e' l'errore) ho usato anche int input ed eval input ma la stessa cosa - federico ferrara 19 Maggio 2016
In Python 3.0 il metodo raw_input() è stato rinominato in input(). Prova quindi con b=input("chiedimi qualcosa") - Giorgio Audino 19 Maggio 2016
a={"come stai":"bene grazie","quanti anni hai":"3 anni","dove abiti":"milano"} b="inizio" while b!=" ": b=input("chiedimi qualcosa") if a. has_key(b): print (a[b]) else: c=input("non capisco.Cosa devo risponderealla domanda"+b) a[b]=c chiedimi qualcosacome stai non va avanti. Postreste dirmi dov'e' l'errore?.Grazie chiedimi qualcosacome stai chiedimi qualcosa - federico ferrara 19 Maggio 2016
Ciao Federico, In Python 3.0 il metodo raw_input() è stato rinominato in input(). Prova quindi con b=input("chiedimi qualcosa")
Allora, nel codice che hai copiato ci sono tre errori: l'invocazione del metodo has_key per a ha uno spazio di troppo: dovrebbe essere a.has_key(...). Inoltre, non va avanti poiché hai posto come condizione di permanenza nel ciclo che b dev'essere diverso da " ", cioè uno spazio. Quando tu scrivi "come stai", questa stringa è effettivamente ancora diversa dallo spazio, per cui resterai all'interno del ciclo. Infine, nel caso ini cui a contenga la chiave cercata, la variabile c non sarebbe definita e il programma quindi fallirebbe eseguendo l'istruzione a[b]=c. Ciao!
ho corretto gli errori pero' non va avanti,chiede sempre chiedimi qualcosa. Ecco la modifica a={"come stai":"bene grazie","quanti anni hai":"3 anni","dove abiti":"milano"} b="inizio" while b!="": b=input("chiedimi qualcosa") if a.has_key(b): print(a[b]) else: c=input("non capisco.Cosa devo rispondere alla domanda"+b) a[b]=c Lo ha provato?Le sarei grato se me lo rifacesse lei.Grazie e gentilissimo - federico ferrara 19 Maggio 2016
Il problema è sempre la condizione di permanenza nel ciclo while: adesso andrà avanti a chiederti "chiedimi qualcosa" finché inserisci qualcosa come domanda. Guarda qui, ho messo una possibile soluzione: http://pastebin.com/uyhFP0qr In questo modo il programma continuerà a interagire con te, imparando le risposte quando non le conosce in base a quel che scrivi tu. Ho messo come condizione di permanenza nel ciclo la lunghezza di b: se è uguale a zero esce dal ciclo. In questo modo se premi invio anziché inserire una domanda il programma termina (anche se prima ti chiede cosa rispondere ad una domanda vuota!). Si può migliorare, ma funziona!
a={"come stai":"bene grazie","quanti anni hai":"3 anni","dove abiti":"milano"} b="inizio " while b != 0: b=input("chiedimi qualcosa: ") if a.has_key(b): print (a[b]) else: c=input("non capisco. Cosa devo rispondere alla domanda "+b+"? ") a[b]=c da errore: if a.has_key(b): AttributeError: 'dict' object has no attribute 'has_key' - federico ferrara 19 Maggio 2016
Sostituisci la riga if a.has_key(b): con if b in a: il metodo has_key è stato rimosso in python 3. Ti chiedo scusa ma io sul computer sono fermo alla versione precedente!
ho risolto cosi' va bene: a={"come stai":"bene grazie","quanti anni hai":"3 anni","dove abiti":"milano"} b=" " while len(b) != 0: b=input("chiedimi qualcosa: ") if b in a: print (a[b]) else: c=input("non capisco. Cosa devo rispondere alla domanda "+b+"? ") a[b]=c
Mi sembra di sì! - Giorgio Audino 20 Maggio 2016