Come leggere gli input dell'utente come interi in Python

Jinku Hu 30 gennaio 2023
  1. Leggere l’input dell’utente come numeri interi in Python 2.x
  2. Leggere l’input dell’utente come numeri interi in Python 3.x
Come leggere gli input dell'utente come interi in Python

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'>)
Attenzione

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
Autore: Jinku Hu
Jinku Hu avatar Jinku Hu avatar

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

Articolo correlato - Python Input