Cómo leer la entrada del usuario como números enteros en Python
- Leer la entrada del usuario como números enteros en Python 2.x
- Lea las entradas del usuario como enteros en Python 3.x
En este tutorial, aprenderemos a leer las entradas del usuario como enteros en Python.
Leer la entrada del usuario como números enteros en Python 2.x
Python 2.7 tiene dos funciones para leer la entrada del usuario, que son raw_input
y input
.
raw_input
lee la entrada del usuario como una cadena sin procesar y su valor de retorno es simplemente string
.
La función input
obtiene la entrada del usuario y luego evalúa la cadena y el resultado de la evaluación es devuelto.
Por ejemplo,
>>> 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'>)
Considere dos veces cuando use la input
en Python 2.x. Podría imponer problemas de seguridad porque la input
evalúa cualquier tipo de usuario.
Digamos que si ya has importado os
en tu programa y luego te pide la entrada del usuario,
>>> number = input("Enter a number: ")
Enter a number: os.remove(*.*)
Su entrada os.remove(*.*)
se evalúa y elimina todos los archivos de su diccionario de trabajo sin ningún aviso!
Lea las entradas del usuario como enteros en Python 3.x
La entrada raw_input
es obsoleta en Python 3.x y es reemplazada por la entrada input
en Python 3.x. Sólo obtiene la cadena de entrada del usuario pero no evalúa la cadena debido al riesgo de seguridad descrito anteriormente.
Por lo tanto, tiene que convertir explícitamente la entrada del usuario de la cadena a números enteros.
>>> 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