Entrada e saída
Esta aula aborda os fundamentos de entrada e saída em Python, incluindo as funções input() e print() com seus parâmetros sep e end, conversão de tipos de dados e técnicas de formatação de saída. O conteúdo é apresentado com exemplos práticos e exercícios para fixação.
Nesta aula, vamos explorar como um programa em Python interage com o usuário e o ambiente. Entrada e saída (E/S) são operações fundamentais: a entrada permite que o programa receba dados (geralmente do teclado) e a saída exibe resultados para o usuário. Dominar essas funções é essencial para criar programas interativos e legíveis.
Python oferece funções simples e poderosas para E/S, como input() para ler dados e print() para exibir mensagens. Além disso, veremos como converter tipos de dados e formatar a saída de maneira profissional.
input
A função input() é usada para ler uma linha de texto do usuário. Quando chamada, o programa pausa e aguarda que o usuário digite algo e pressione Enter. Tudo o que for digitado é retornado como uma string. Opcionalmente, você pode passar uma mensagem (prompt) que será exibida antes da entrada.
Exemplo básico:
nome = input("Digite seu nome: ")
print("Olá, " + nome + "!")
Lembre-se: o valor retornado sempre é uma string. Se precisar de um número, você deve convertê-lo explicitamente.
print (sep, end)
A função print() exibe um ou mais objetos no console. Por padrão, os objetos são separados por um espaço e uma nova linha é adicionada ao final. Você pode modificar esse comportamento usando os parâmetros sep (separador) e end (finalizador).
Exemplo com sep e end:
print("a", "b", "c", sep="-") # a-b-c
print("Linha 1", end="...")
print("Linha 2") # Linha 1...Linha 2
O parâmetro sep define o que colocar entre os argumentos (padrão é espaço). end define o que colocar no final (padrão é \n).
Conversão de tipos
Como input() sempre retorna uma string, muitas vezes precisamos converter esse valor para outro tipo, como inteiro (int) ou ponto flutuante (float). A conversão é feita com as funções int(), float(), str(), etc.
Exemplo de conversão:
idade = input("Digite sua idade: ")
idade_int = int(idade)
print("Você tem", idade_int, "anos.")
Cuidado: se o usuário digitar algo que não pode ser convertido (como letras), ocorrerá um erro (ValueError). Mais adiante veremos como tratar exceções.
Formatação de saída
Python oferece várias maneiras de formatar strings para exibição. As principais são:
- Concatenação com
+: simples, mas limitado. str.format(): método flexível com placeholders{}.- f-strings (Python 3.6+): moderna e eficiente, usando
f"...".
Exemplo com f-string:
nome = "Ana"
idade = 25
print(f"{nome} tem {idade} anos.") # Ana tem 25 anos.
Você também pode controlar a formatação numérica, como casas decimais:
pi = 3.14159
print(f"{pi:.2f}") # 3.14
Boas práticas
- Sempre valide e converta entradas do usuário para evitar erros.
- Use f-strings para formatação legível e eficiente.
- Evite concatenação excessiva; prefira formatação.
- Documente o que é esperado como entrada (ex: "Digite um número inteiro").
Referências
- Documentação oficial: input()
- Documentação oficial: print()
- Tutorial oficial: Entrada e Saída
- Real Python: f-strings
- 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." usando f-string.
✓ Resposta:
nome = input("Digite seu nome: ") idade = input("Digite sua idade: ") print(f"Olá, {nome}! Você tem {idade} anos.") -
Crie um programa que leia dois números inteiros do usuário e exiba a soma. Use conversão de tipos.
✓ Resposta:
a = int(input("Digite o primeiro número: ")) b = int(input("Digite o segundo número: ")) print(f"A soma é {a + b}.") -
Use print() com sep e end para exibir os números de 1 a 5 na mesma linha separados por vírgula e sem espaço extra no final.
✓ Resposta:
print(1, 2, 3, 4, 5, sep=",", end="") -
Escreva um programa que leia um número real (float) e exiba-o com duas casas decimais.
✓ Resposta:
num = float(input("Digite um número real: ")) print(f"{num:.2f}") -
Crie um programa que peça o nome, altura (float) e peso (float) do usuário, e calcule o IMC (peso / altura²). Exiba o resultado com 1 casa decimal.
✓ Resposta:
nome = input("Digite seu nome: ") altura = float(input("Digite sua altura (em metros): ")) peso = float(input("Digite seu peso (em kg): ")) imc = peso / (altura ** 2) print(f"{nome}, seu IMC é {imc:.1f}.")