Cómo leer la entrada del usuario como números enteros en Python

Jinku Hu 30 enero 2023
  1. Leer la entrada del usuario como números enteros en Python 2.x
  2. Lea las entradas del usuario como enteros en Python 3.x
Cómo leer la entrada del usuario como números enteros en Python

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

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
Autor: 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

Artículo relacionado - Python Input