Entrada e saída
Esta aula aborda os fundamentos de entrada e saída em Python, incluindo as funções input() e print(), conversão de tipos e formatação de saída. O aluno aprenderá a interagir com o usuário e exibir dados de forma profissional.
Nesta aula, vamos explorar como um programa Python pode se comunicar com o mundo exterior: recebendo dados do usuário (entrada) e exibindo resultados (saída). Dominar essas operações é essencial para criar programas interativos e úteis.
Veremos desde o uso básico de input() e print() até técnicas de formatação de strings e boas práticas de conversão de tipos. Ao final, você será capaz de criar pequenos programas que coletam informações, processam e mostram resultados de maneira clara.
input
A função input() é a principal forma de obter dados do usuário via terminal. Quando chamada, ela exibe um prompt opcional e aguarda que o usuário digite algo e pressione Enter. O valor retornado é sempre uma string.
Exemplo básico:
nome = input("Digite seu nome: ")
print("Olá, " + nome + "!")É importante lembrar que input() sempre retorna uma string, mesmo que o usuário digite números. Portanto, para operações matemáticas, será necessário converter o valor para o tipo adequado (veja seção de conversão).
Dica: evite usar input() sem argumento, pois o usuário pode não saber o que digitar. Sempre forneça um prompt descritivo.
print (sep, end)
A função print() exibe um ou mais objetos no terminal, separando-os por espaço por padrão e adicionando uma quebra de linha ao final. Ela aceita dois parâmetros importantes: sep (separador) e end (final).
Exemplos:
print("Python", "é", "legal") # saída: Python é legal
print("Python", "é", "legal", sep="-") # saída: Python-é-legal
print("Linha 1", end="...")
print("Linha 2") # saída: Linha 1...Linha 2O parâmetro sep permite personalizar o caractere que separa os itens impressos. Já end controla o que é exibido após o último item; o padrão é \n (nova linha).
Esses parâmetros são úteis para formatar saídas sem precisar concatenar strings manualmente.
Conversão de tipos
Como input() retorna string, muitas vezes precisamos converter o valor para um tipo numérico (int, float) ou booleano. Python oferece funções de conversão explícita: int(), float(), str(), bool().
Exemplo de conversão para realizar soma:
idade_str = input("Quantos anos você tem? ")
idade = int(idade_str)
print("Daqui a 5 anos você terá", idade + 5)Cuidado: se o usuário digitar algo que não pode ser convertido (por exemplo, "abc" para int), ocorrerá um erro (ValueError). Em programas mais robustos, usamos tratamento de exceções (try/except) para lidar com entradas inválidas.
Também é possível converter para float:
altura = float(input("Digite sua altura em metros: "))
print("Sua altura é", altura)Conversão para booleano: bool() retorna False para valores como 0, 0.0, "" (string vazia), None, e True para os demais.
Formatação de saída
Existem várias maneiras de formatar strings em Python. As principais são:
- Concatenação com
+(menos recomendada para muitos valores) - Operador
%(estilo antigo) - Método
str.format() - f-strings (Python 3.6+) – a forma mais moderna e legível
Exemplo com f-strings:
nome = "Ana"
idade = 30
print(f"{nome} tem {idade} anos.")f-strings permitem embutir expressões diretamente dentro das chaves: {nome}, {idade}. Também suportam especificadores de formatação, como número de casas decimais:
pi = 3.14159265
print(f"Pi com 2 casas: {pi:.2f}") # saída: Pi com 2 casas: 3.14Outros exemplos:
# Alinhamento
print(f"{nome:10} é alinhado à esquerda")
print(f"{nome:>10} é alinhado à direita")
# Preenchimento
print(f"{nome:_>10}") # saída: _______AnaO método str.format() é similar, mas usa placeholders com chaves vazias ou numeradas:
print("{} tem {} anos.".format(nome, idade))
print("{1} tem {0} anos.".format(idade, nome)) # invertendo ordemO operador % é mais antigo e menos usado atualmente, mas ainda aparece em código legado:
print("%s tem %d anos." % (nome, idade))Recomendação: prefira f-strings sempre que possível, por serem mais rápidas e legíveis.
Boas práticas
- Sempre forneça prompts claros em
input(). - Converta tipos de forma segura, usando try/except se necessário.
- Use f-strings para formatação de saída.
- Evite concatenação excessiva com
+dentro deprint(); prefira passar múltiplos argumentos ou usar formatação.
Referências
- Documentação oficial: input()
- Documentação oficial: print()
- Documentação oficial: formatação de strings
- Real Python: Entrada e saída em Python
- W3Schools: Formatação de strings
Exercícios
Escreva um programa que peça ao usuário seu nome e idade, e exiba: "Olá, [nome]! Você tem [idade] anos."
✓ Resposta:nome = input("Digite seu nome: ") idade = input("Digite sua idade: ") print(f"Olá, {nome}! Você tem {idade} anos.")Peça dois números inteiros ao usuário, calcule a soma e exiba o resultado usando
sepeendapropriados.✓ Resposta:a = int(input("Primeiro número: ")) b = int(input("Segundo número: ")) soma = a + b print("A soma de", a, "e", b, "é", soma, end="!\n")Peça ao usuário seu peso (kg) e altura (m), calcule o IMC e exiba com duas casas decimais.
✓ Resposta:peso = float(input("Peso (kg): ")) altura = float(input("Altura (m): ")) imc = peso / (altura ** 2) print(f"Seu IMC é {imc:.2f}")Leia três palavras do usuário e imprima-as separadas por vírgula e um espaço, sem quebra de linha no final.
✓ Resposta:p1 = input("Palavra 1: ") p2 = input("Palavra 2: ") p3 = input("Palavra 3: ") print(p1, p2, p3, sep=", ", end="")Peça um número decimal e exiba-o com 3 casas decimais, alinhado à direita em um campo de 10 caracteres.
✓ Resposta:num = float(input("Digite um número decimal: ")) print(f"{num:>10.3f}")