Como ler a entrada do usuário como números inteiros em Python

Jinku Hu 30 janeiro 2023
  1. Leia a entrada do usuário como números inteiros em Python 2.x
  2. Leia a entrada do usuário como números inteiros no Python 3.x
Como ler a entrada do usuário como números inteiros em Python

Neste tutorial, vamos aprender como ler as entradas dos usuários como inteiros em Python.

Leia a entrada do usuário como números inteiros em Python 2.x

Python 2.7 tem duas funções para ler a entrada do usuário, ou seja, raw_input e input.

O raw_input lê o input do usuário como uma string bruta e seu valor de retorno é simplesmente string.

A input recebe a entrada do usuário e então avalia a string e o resultado da avaliação é retornado.

Por exemplo, raw_input,

>>> 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'>)
Advertência

Considere duas vezes quando você utiliza input no Python 2.x. Isso poderia impor problemas de segurança porque a input avalia qualquer tipo de usuário.

Digamos que se você já importou os no seu programa e então ele pede a entrada do usuário,

>>> number = input("Enter a number: ")
Enter a number: os.remove(*.*)

Sua entrada os.remove(*.*) é avaliada e apaga todos os arquivos do seu dicionário de trabalho sem nenhum aviso prévio!

Leia a entrada do usuário como números inteiros no Python 3.x

O raw_input é obsoleto no Python 3.x e é substituído por input no Python 3.x. Ele só recebe a string de entrada do usuário, mas não avalia a string por causa do risco de segurança como descrito acima.

Portanto, você tem que converter explicitamente a entrada do usuário da string para inteiros.

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

Artigo relacionado - Python Input