Curso de Python

Aula 7 - Entrada de Dados

Entrada de dados

Entrada de dados é responsável por pedir para o usuário qualquer coisa que se possa imaginar. Desde nome, idade, cidade, cpf, número de telefone entre outros. Vamos ver como perguntar ao usuário o seu nome:

Utilizando a função input()

Para pedir algo ao usuário, basta escrever o comando input() e pedir o que quiser dentro dos parênteses. Vamos pedir o nome do usuário:

input.py
input('Qual o seu nome? ')
Saída:
Qual o seu nome? _

Ao executar esse programa, é exibido a mensagem que está dentro do input (Qual o seu nome?). O programa espera você digitar algo e quando teclar enter, nada acontecerá. O nome que você digitou é perdido e não poderá ser acessado, pois não guardamos essa informação na memória RAM do computador... É aí que entram as variáveis! Você pode criar uma variável e atribuir o seu valor como um input! Vamos ver um exemplo:

input_variavel.py
nome = input("Digite o seu nome: ")
Saída:
Digite o seu nome: _

Ao executar o programa, pede para o usuário digitar o seu nome, então você digita, e... ainda não aparece nada, que estranho! Isso acontece pois esquecemos de utilizar o print()! Sempre que você quer mostrar algo, lembre-se do print()! Então o código ficaria assim:

input_print.py
nome = input('Digite o seu nome: ')
print(nome)
Saída:
Digite o seu nome: João
João

Pedindo a idade do usuário

idade.py
idade = input('Digite a sua idade: ')
print(idade)
Saída:
Digite a sua idade: 25
25

Ok, conseguimos imprimir agora a idade do usuário. Mas tem uma pequena coisa errada na variável idade. Como você sabe, o input() pergunta algo ao usuário. Porém essa pergunta é feita e retornada um tipo de dado string, e nós estamos perguntando a idade, ou seja, é do tipo int (inteiro). Quando você responde a variável idade, sempre retornará uma string '25' e não um número inteiro 25. Isso é muito ruim pois não permite realizar cálculos matemáticos. Vamos ver um exemplo:

erro_idade.py
idade = input('Digite a sua idade: ')
ano = 2025
print(ano - idade) # Isso causará um erro!
Saída:
Erro, não é possível fazer cálculos com strings e inteiros

Se o usuário digitasse que sua idade é 10, então ele nasceu em 2015 pelo cálculo. Mas há um grande problema, pois isso resultará em um erro, porque esquecemos de um pequeno detalhe. Como eu disse, o comando input() SEMPRE RETORNARÁ uma string. É aí que está o problema. Quando o programa executa aquele código, o programa se pergunta: "Mas como eu vou subtrair 2025 de um texto?". Não é possível fazer cálculos utilizando um inteiro e uma string. Mas é possível resolver isso utilizando o int() antes do input para indicar que isso precisa retornar um inteiro. Vamos ver como fica:

idade_correta.py
idade = int(input('Digite a sua idade: '))
ano = 2025
print(ano - idade)
Saída:
Digite a sua idade: 10
2015

Exemplo com saldo bancário

Vamos ver mais um exemplo:

saldo_erro.py
saldo = input('Digite o seu saldo: ')
aposentadoria = 2400
print(saldo + aposentadoria) # Isso causará erro!
Saída:
Erro

Consegue perceber se tem algum erro neste código? Analise bem! Esquecemos de utilizar o int antes do input. Vamos ajustar o código novamente:

saldo_correto.py
saldo = int(input('Digite o seu saldo: '))
aposentadoria = 2400
print(saldo + aposentadoria)
Saída:
Digite o seu saldo: 1000
3400

Usando float para números decimais

Também é possível utilizar o float, aquele tipo de dado que possui casas decimais, se lembra? Um exemplo que pede ao usuário seu peso:

peso.py
peso = float(input("Olá, você pesa quantos quilos? "))
print(peso)
Saída:
Olá, você pesa quantos quilos? 68.5
68.5

Fazendo uma calculadora de soma

Agora vamos fazer um pequeno projetinho de uma calculadora que apenas soma. Será assim: pede para o usuário digitar dois números, e o programa retorna a soma entre eles. Vamos ver:

calculadora.py
num1 = int(input('Digite o primeiro número: '))
num2 = int(input('Digite o segundo número: '))
soma = num1 + num2
print(soma)
Saída:
Digite o primeiro número: 5
Digite o segundo número: 7
12

Imprimindo de um jeito diferente

Você percebeu que imprimimos as coisas, mas não especificamos o que é aquela mensagem? Exemplo: Você pede ao usuário seu nome, e você só imprime na tela o nome do usuário. Parece um pouco sem graça, então que tal criar mensagens personalizadas para as mensagens que são impressas? Vamos ver como funciona:

Concatenação

A concatenação mescla dois valores utilizando o operador de adição (+). Vamos supor que você tenha que pedir o nome do usuário e o seu sobrenome, e no final, você junta tudo e mostra seu nome completo:

concatenacao.py
nome = input("Digite o seu primeiro nome: ")
sobrenome = input("Digite o seu sobrenome: ")
nome_completo = nome + sobrenome
print(nome_completo)
Saída:
Digite o seu primeiro nome: João
Digite o seu sobrenome: Silva
JoãoSilva

Ainda há um pequeno probleminha neste código, pois não há espaço. Vamos apenas adicionar um espaço:

concatenacao.py
nome = input("Digite o seu primeiro nome: ")
sobrenome = input("Digite o seu sobrenome: ")
nome_completo = nome + ' ' + sobrenome
print(nome_completo)
Saída:
Digite o seu primeiro nome: João
Digite o seu sobrenome: Silva
João Silva

Não vou detalhar muito sobre esse código, apenas siga em frente e você entenderá.

Ok, isso só imprime o nome completo. Mas vamos supor que queremos enviar uma mensagem do tipo "Seu nome completo é: {e nesse espaço aqui mostre o nome que o usuário digitou}". Isso é totalmente possível e muito fácil. Vamos ver como funciona:

mensagem_personalizada.py
nome = input("Digite o seu primeiro nome: ")
sobrenome = input("Digite o seu sobrenome: ")
nome_completo = nome + ' ' + sobrenome
print('Seu nome completo é ' + nome_completo)
Saída:
Digite o seu primeiro nome: Lucas
Digite o seu sobrenome: dos Santos
Seu nome completo é Lucas dos Santos

f-strings (formatação de strings)

Que legal, não é? Mas ainda há um jeito que facilita a concatenção! Essa forma se chama f-string, que consiste em utilizar um f antes das aspas e as chaves para o nome de variáveis. Vamos ver como é:

f-string.py
cidade = input('Qual a sua cidade? ')
print(f'Você mora em {cidade}')
Saída:
Qual a sua cidade? São Paulo
Você mora em São Paulo

Uau, fácil, não acha? Apenas utilizamos um f antes das aspas, seguido pela mensagem que queremos e em seguida utilizamos chaves e a variável dentro das chaves. Mais simples que a concatenação! Vamos ver outro exemplo:

amigos.py
amigos = int(input('Quantos amigos você tem? ')) # Não esqueça do int!!
print(f'Uau! Você tem {amigos} amigos')
Saída:
Quantos amigos você tem? 16
Uau! Você tem 16 amigos