Python / input() / Usar a entrada do usuário em uma variável
No Python, input() lê uma linha da entrada padrão e retorna uma string. Com name = input(), você pode usar esse texto por uma variável. Mesmo números digitados precisam de int() ou float() antes de cálculos. A quebra de linha final é removida, mas os outros espaços permanecem.
Ler uma linha e utilizá-la
Os exemplos usam apenas Python 3 e foram verificados fornecendo entrada padrão ao Python 3.12.14. Salve cada código completo em UTF-8 como input_demo.py e execute python input_demo.py no terminal, ou python3 conforme o ambiente. Substitua o conteúdo para executar cada exemplo independentemente.
Após iniciar, digite JB e pressione Enter. Como o exemplo não mostra uma instrução inicial, esperar sem imprimir nada é normal.
name = input()
print(f"Hello, {name}!")
print(type(name).__name__)
Este e os demais blocos de resultados mostram somente a saída do programa, sem o eco dos caracteres digitados no terminal.
Hello, JB!
str
O argumento prompt da documentação de input() permite mostrar uma instrução com input("Name: "). Ela não integra o valor retornado. A entrada padrão também pode vir de um arquivo ou de outro programa.
Converter texto numérico para calcular
Digite 0012 na primeira linha e 1.25 na segunda. Cada chamada lê uma linha diferente; não coloque os dois valores na mesma linha.
text = input()
print(repr(text))
print(text + "1")
number = int(text)
print(number + 1)
price = float(input())
print(price * 2)
'0012'
00121
13
2.5
repr() mostra a representação da string com aspas. Acrescentar "1" ao texto gera 00121; converter para inteiro e somar 1 produz 13. A conversão perde zeros iniciais. Mantenha códigos postais e identificadores como texto quando o formato for importante.
int("1.25") e int("hello") geram ValueError. Use float quando um número de ponto flutuante servir ao objetivo; o exemplo usa ponto decimal. Símbolos monetários e vírgulas de agrupamento não são removidos automaticamente. Para cálculos monetários decimais exatos, avalie separadamente as limitações de ponto flutuante binário.
Solicitar novamente uma entrada inválida
Conversão válida e valor permitido são condições diferentes. Este exemplo aceita uma idade não negativa. Digite hello, -1 e 20, um por linha:
while True:
try:
text = input()
except EOFError:
print("Input ended.")
break
try:
age = int(text)
except ValueError:
print("Enter a whole number.")
continue
if age < 0:
print("Enter 0 or greater.")
continue
print(f"Accepted: {age}")
break
Enter a whole number.
Enter 0 or greater.
Accepted: 20
ValueError trata texto não convertível; outra condição rejeita inteiros negativos. Uma linha vazia também falha na conversão. break termina o laço quando o valor é aceito. Seguindo o tratamento de exceções, capture erros específicos e esperados. EOF encerra o laço em vez de solicitar entradas indefinidamente.
Espaços e linhas vazias
Digite dois espaços, JB e mais dois espaços. Na segunda linha, pressione somente Enter.
text = input()
print(repr(text))
print(repr(text.strip()))
empty = input()
print(repr(empty))
print(empty == "")
' JB '
'JB'
''
True
input() mantém os espaços ao redor de JB. str.strip() retorna uma nova string sem espaços externos e não modifica a original. Não o aplique indiscriminadamente quando os espaços forem importantes. Uma linha vazia resulta em "", não None. Defina se uma linha contendo apenas espaços também deve ser tratada como vazia.
Ler dois valores de uma linha
Divida a string e converta cada parte. Digite 10 20 em uma única linha:
parts = input().split()
if len(parts) != 2:
print("Enter exactly two integers.")
else:
try:
left, right = map(int, parts)
except ValueError:
print("Use whole numbers.")
else:
print(left + right)
30
split() sem separador agrupa espaços consecutivos. Primeiro o código exige exatamente duas partes; depois map passa cada uma para int. Somente 10 ou três valores geram a mensagem de quantidade; 10 hello gera a mensagem sobre inteiros. Este exemplo termina após uma entrada inválida. Para novas tentativas, use um laço como no exemplo anterior.
EOFError e consoles sem suporte a entrada
EOF significa End of File, o fim do fluxo de entrada. Sem mais dados, input() gera EOFError em vez de retornar uma linha vazia. Este código tenta ler duas vezes. Um fluxo com apenas uma quebra de linha produz:
for index in range(2):
try:
text = input()
except EOFError:
print("EOF")
break
print(repr(text))
''
EOF
A primeira leitura recebe uma string vazia; a segunda encontra EOF. No terminal, pressione Enter na primeira leitura e envie o fim de entrada na seguinte. No Windows, normalmente se usa Ctrl+Z seguido de Enter; no macOS/Linux, Ctrl+D em uma linha vazia. O terminal ou IDE pode tratar essas teclas de outra forma.
Se o painel de saída da IDE não permite digitar, execute em um terminal ou console apropriado. Com arquivos ou avaliadores on-line, confira se todas as linhas necessárias foram fornecidas. Esperar entrada e alcançar EOF são estados diferentes. Não é necessário executar o texto do usuário com eval() para convertê-lo em número.




