In Python 3, scrivo un semplice comando per accettare un ingresso intero dall'utente così:Perché l'eval di Python (input ("Immetti input:")) cambia il tipo di dati dell'input?
x = int(input("Enter a number: "))
Se mi salta la parte int()
e semplicemente utilizzare x = input("Enter a number: ")
, tipo di dati del mio input è una stringa, non un numero intero. Lo capisco.
Tuttavia, se uso il seguente comando:
x = eval(input("Enter a number: "))
tipo di dati del input è 'int'.
Perché succede?
forse è un controllo di tipo dinamico quando si utilizza eval()? – cssGEEK
'eval' tratta l'input come se fosse scritto in codice, facendo' x = 3' nel codice rende un intero, quindi 'x = eval (" 3 ")' renderà anche x un intero, lasciando comunque che l'utente inserisca arbitrariamente il codice come loro input può essere un grosso problema, se digitassero 'open (__ file __, 'w'). close()' cancellerebbe il file corrente in esecuzione. –