Questi sono equivalenti:
raw_input('Text here') # Python 2
input('Text here') # Python 3
E questi sono equivalenti:
input('Text here') # Python 2
eval(raw_input('Text here')) # Python 2
eval(input('Text here')) # Python 3
Si noti che in Python 3 non c'è una funzione chiamata raw_input()
, come Python 3 input()
è solo raw_input()
rinominato. E in Python 3 non esiste un equivalente diretto di Python 2 input()
, ma può essere facilmente simulato in questo modo: eval(input('Text here'))
.
Ora, in Python 3 la differenza tra input('Text here')
e eval(input('Text here'))
è che il primo restituisce la rappresentazione di stringa di ingresso immesso (con a capo finale rimosso), mentre il secondo non sicuro evaluates l'ingresso, come se fosse un'espressione inserito direttamente nell'interprete interattivo.
fonte
2013-09-26 18:47:36
Se non si era abituati a usare 'eval', per farla breve si valuta la stringa che si passa ad esso come se fosse codice. – whatyouhide
Se non si usa mai 'eval()', probabilmente è OK. Se usi 'eval()', non usarlo mai su input utente non criticati. Considera cosa succede se l'utente digita 'os.system (" rm -rf/")'. –