Come leggere gli input dell'utente come interi in Python
- Leggere l’input dell’utente come numeri interi in Python 2.x
- Leggere l’input dell’utente come numeri interi in Python 3.x
In questo tutorial, impareremo a leggere gli input degli utenti come interi in Python.
Leggere l’input dell’utente come numeri interi in Python 2.x
Python 2.7 ha due funzioni per leggere l’input dell’utente, cioè raw_input
e input
.
raw_input
legge l’input dell’utente come stringa grezza e il suo valore di ritorno è semplicemente string
.
input
riceve l’input dell’utente e poi valuta la stringa e il risultato della valutazione viene restituito.
Per esempio,
>>> number = raw_input("Enter a number: ")
Enter a number: 1 + 1
>>> number, type(number)
('1 + 1', <type 'str'>)
>>> number = input("Enter a number: ")
Enter a number: 1 + 1
>>> number, type(number)
(2, <type 'int'>)
Considerate due volte quando usate input
in Python 2.x. Potrebbe imporre problemi di sicurezza perché input
valuta qualsiasi tipo di utente.
Diciamo se avete già importato os
nel vostro programma e poi chiede l’input dell’utente,
>>> number = input("Enter a number: ")
Enter a number: os.remove(*.*)
Il vostro input os.remove(*.*)
viene valutato e cancella tutti i file del vostro dizionario di lavoro senza alcun preavviso!
Leggere l’input dell’utente come numeri interi in Python 3.x
raw_input
è obsoleto in Python 3.x e viene sostituito con input
in Python 3.x. Riceve solo la stringa di input dell’utente ma non valuta la stringa a causa del rischio per la sicurezza come descritto sopra.
Pertanto, si deve convertire esplicitamente l’input dell’utente dalla stringa in numeri interi.
>>> number = int(input("Enter a number: "))
Enter a number: 123
>>> number
123
Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.
LinkedIn Facebook