Pular para o conteúdo
Editor

Entrada e saída em Python: print(), input() e formatação

Iniciante15 min4 exercícios90 XP

Este tutorial foi traduzido do original em inglês.Read in EnglishLeer en españolЧитать на русскомอ่านภาษาไทยAvisar sobre um erro de tradução

0/4 exercícios

Todo programa precisa de um jeito de se comunicar com o mundo lá fora. Um app de previsão do tempo mostra temperaturas. Um jogo exibe a sua pontuação. Uma calculadora mostra respostas. Tudo isso é saída.

Em Python, print() é a sua principal ferramenta para mostrar informações ao usuário. Parece simples à primeira vista, mas tem opções poderosas que permitem controlar exatamente a aparência da saída.

Neste tutorial, você vai aprender técnicas avançadas de print(), truques de formatação para uma saída organizada e como o input() lê o que o usuário digita. No final, você vai conseguir criar saídas caprichadas, com cara de programa profissional.

Você já sabe que print("Hello") exibe um texto. Mas o print() consegue lidar com vários valores de uma vez. Separe-os com vírgulas, e o Python exibe todos com espaços entre eles.

Pense no print() como um garçom repetindo o seu pedido. Você passa vários itens, e ele anuncia cada um com uma pausa entre eles.

Exibindo vários valores com vírgulas
# Printing multiple values
name = "Alice"
age = 25
city = "Paris"
print(name, age, city) # Alice 25 Paris
print("Name:", name) # Name: Alice
print("Age:", age, "years") # Age: 25 years
Saída
Alice 25 Paris
Name: Alice
Age: 25 years

Repare em algo útil: o Python adiciona automaticamente um espaço entre os valores. Você também não precisa converter números em strings. A função print() cuida disso para você.


Por padrão, o print() coloca um espaço entre os valores. O parâmetro sep permite trocar esse separador pelo que você quiser. O nome vem de "separator" (separador).

Imagine que você está enfiando contas em um colar. O sep é o nó que você dá entre uma conta e outra. Você escolhe o que vai entre os itens.

Usando sep para controlar o que vai entre os valores
# Default separator is a space
print("A", "B", "C") # A B C
# Custom separators
print("A", "B", "C", sep="-") # A-B-C
print("A", "B", "C", sep=" | ") # A | B | C
print("A", "B", "C", sep="") # ABC (no separator)
print("A", "B", "C", sep="\n") # Each on a new line
Saída
A B C
A-B-C
A | B | C
ABC
A
B
C

O parâmetro sep é perfeito para montar saídas formatadas, como datas, caminhos de arquivos ou dados CSV, sem precisar concatenar strings na mão.

Usos práticos do sep
# Practical uses of sep
year, month, day = 2025, 3, 15
print(year, month, day, sep="-") # 2025-3-15
# Build a file path
print("home", "user", "docs", sep="/") # home/user/docs
# Create CSV-like output
print("Alice", 25, "Paris", sep=",") # Alice,25,Paris
Saída
2025-3-15
home/user/docs
Alice,25,Paris

Toda vez que o print() termina, ele adiciona um caractere de nova linha no final. É por isso que cada chamada de print() começa em uma linha nova. O parâmetro end permite mudar o que vem depois da saída.

Pense no end como a pontuação no fim de uma frase. Por padrão, o Python "aperta Enter" depois de cada print. Você pode trocar isso por um espaço, uma vírgula ou por nada.

Usando end para controlar as quebras de linha
# Default end is a newline
print("Hello")
print("World")
# Output:
# Hello
# World
print() # blank line
# Custom end - keep printing on the same line
print("Hello", end=" ")
print("World")
# Output: Hello World
print("Loading", end="...")
print("Done!")
# Output: Loading...Done!
Saída
Hello
World

Hello World
Loading...Done!
Usando end em um laço
# Print items on the same line using a loop
fruits = ["apple", "banana", "cherry", "date"]
for fruit in fruits:
print(fruit, end=" ")
print() # Final newline to clean up
# Output: apple banana cherry date
Saída
apple banana cherry date

Como combinar sep e end?

Você pode usar sep e end na mesma chamada de print(). Assim você tem controle total sobre o que vai entre os valores e o que vem no final de tudo.

Usando sep e end juntos
# Combine sep and end
print("A", "B", "C", sep=" -> ", end=" [DONE]\n")
# Output: A -> B -> C [DONE]
# Build a progress bar effect
print("Step 1", "Step 2", "Step 3", sep=" > ", end="\n\n")
print("All steps complete!")
Saída
A -> B -> C [DONE]
Step 1 > Step 2 > Step 3

All steps complete!

Como criar saídas alinhadas e formatadas?

Programas de verdade precisam de uma saída legível. Tabelas, recibos e relatórios precisam de colunas bem alinhadas. O Python oferece várias formas de fazer isso.

O jeito mais direto usa os métodos de string .ljust(), .rjust() e .center(). Eles completam a string com espaços até atingir a largura desejada.

Alinhando texto com ljust() e rjust()
# Right-align numbers for a clean column
print("Item".ljust(15), "Price".rjust(8))
print("-" * 24)
print("Coffee".ljust(15), "$4.50".rjust(8))
print("Sandwich".ljust(15), "$8.99".rjust(8))
print("Cookie".ljust(15), "$2.75".rjust(8))
Saída
Item               Price
------------------------
Coffee             $4.50
Sandwich           $8.99
Cookie             $2.75

Para ter mais controle, use f-strings com especificadores de formato. Dentro das chaves, você pode definir a largura e o alinhamento de cada valor.

Especificadores de alinhamento em f-strings
# f-string alignment
# < left-align, > right-align, ^ center
print(f"{'Name':<15} {'Score':>8}")
print(f"{'-' * 24}")
print(f"{'Alice':<15} {95:>8}")
print(f"{'Bob':<15} {87:>8}")
print(f"{'Charlie':<15} {92:>8}")
Saída
Name               Score
------------------------
Alice                 95
Bob                   87
Charlie               92
Uma tabuada formatada
# Building a multiplication table
print(" ", end="")
for i in range(1, 4):
print(f"{i:>4}", end="")
print()
print("-" * 14)
for row in range(1, 4):
print(f"{row} |", end="")
for col in range(1, 4):
print(f"{row * col:>4}", end="")
print()
Saída
     1   2   3
--------------
1 |   1   2   3
2 |   2   4   6
3 |   3   6   9

Como funciona a função input() em Python?

A saída é só metade da história. A maioria dos programas também precisa receber informações do usuário. Em Python, a função input() pausa o programa e espera o usuário digitar alguma coisa.

Pense no input() como um campo de formulário em um site. O programa mostra uma pergunta, o usuário digita a resposta e o programa guarda essa resposta em uma variável.

Faça uma pergunta com input()
name = input("What is your name? ")
print("Hello,", name)

Clique em Executar: o programa para no input() e fica esperando. Digite o seu nome, aperte Enter, e ele continua com a sua resposta guardada em name.

A função input() sempre retorna uma string, mesmo que o usuário digite um número. Esse é um detalhe importante que pega muitos iniciantes de surpresa. Execute este código e digite um número:

input() sempre retorna uma string
age = input("How old are you? ")
print(type(age)) # always <class 'str'>
print(age + 10) # TypeError: a string and a number cannot be added

Como converter a entrada do usuário em números?

Como o input() sempre retorna uma string, você precisa convertê-la quando espera um número. Envolva o input() com int() para números inteiros ou com float() para números decimais.

Convertendo a entrada em números
age = int(input("How old are you? "))
print("In 10 years you will be", age + 10)
price = float(input("Price of the item: "))
print("Tax:", round(price * 0.08, 2))

Quais são os padrões de saída mais comuns em programas Python?

Programas profissionais usam padrões de saída reconhecíveis. Menus, cabeçalhos, recibos e indicadores de progresso seguem formatos previsíveis. Aprender esses padrões dá aos seus programas um acabamento caprichado.

Padrão: exibição de um menu
# Pattern 1: A menu display
print("=" * 30)
print(" RESTAURANT MENU")
print("=" * 30)
print("1. Burger $8.99")
print("2. Pizza $12.50")
print("3. Salad $7.25")
print("=" * 30)
Saída
==============================
    RESTAURANT MENU
==============================
1. Burger         $8.99
2. Pizza          $12.50
3. Salad          $7.25
==============================
Padrão: relatório formatado
# Pattern 2: A simple report
title = "Sales Report"
print(title.center(30, "="))
print()
print(f"{'Product':<15} {'Units':>7} {'Revenue':>8}")
print("-" * 30)
products = [
("Widgets", 150, 1500.00),
("Gadgets", 89, 2670.00),
("Gizmos", 234, 4680.00),
]
for name, units, revenue in products:
print(f"{name:<15} {units:>7} {revenue:>8.2f}")
print("-" * 30)
total_rev = sum(r for _, _, r in products)
print(f"{'Total':<15} {'':<7} {total_rev:>8.2f}")
Saída
=========Sales Report=========

Product           Units  Revenue
------------------------------
Widgets             150  1500.00
Gadgets              89  2670.00
Gizmos              234  4680.00
------------------------------
Total                    8850.00
Padrão: uma calculadora interativa
# Pattern 3: A program that asks questions
print("Welcome to the Calculator!")
print("Enter two numbers to add.")
print()
num1 = float(input("First number: "))
num2 = float(input("Second number: "))
print(f"Result: {num1} + {num2} = {num1 + num2}")

Exercícios práticos

Hora de praticar! Estes exercícios focam na formatação com print(). Tente resolver cada um antes de olhar as dicas.

Exercício 1: exiba com um separador personalizado
Escreva o código

Exiba as palavras "red", "green" e "blue" separadas por - (espaço, hífen, espaço) usando o parâmetro sep do print().

Saída esperada:

red - green - blue

Use uma única chamada de print() com o parâmetro sep.

# Print "red", "green", "blue" with " - " as the separator
Exercício 2: exiba itens na mesma linha
Escreva o código

Use um laço for para exibir os números de 1 a 5 na mesma linha, separados por espaços. Adicione um print() vazio no final para terminar a linha.

Saída esperada:

1 2 3 4 5

Use o parâmetro end dentro do laço. Cuidado para não deixar um espaço sobrando depois do 5.

# Print numbers 1 through 5 on the same line
for i in range(1, 6):
# Use end parameter to stay on the same line
pass # Replace this line
print() # Final newline
Exercício 3: crie uma tabuada
Escreva o código

Crie uma tabuada para os números de 1 a 3. Cada produto deve ficar alinhado à direita, ocupando 4 caracteres de largura. Exiba uma linha de cabeçalho e uma linha separadora.

Saída esperada:

1   2   3
   -----------
1 |   1   2   3
2 |   2   4   6
3 |   3   6   9

Use o alinhamento das f-strings ({value:>4}) para alinhar os números à direita em colunas de 4 caracteres.

# Print the header row
print(" ", end="")
for i in range(1, 4):
print(f"{i:>4}", end="")
print()
# Print the separator
print(" -----------")
# Print each row of the table
# Your code here
Exercício 4: exiba um recibo formatado
Escreva o código

Crie um recibo formatado com os itens e preços abaixo. Use o alinhamento das f-strings para alinhar os nomes dos itens à esquerda (20 caracteres de largura) e os preços à direita (8 caracteres de largura, 2 casas decimais). Inclua um cabeçalho, separadores e o total.

Itens:

  • Laptop: 999.99
  • Mouse: 29.50
  • Keyboard: 74.99
  • Saída esperada:

    ============================
          TECH STORE
    ============================
    Item                   Price
    ----------------------------
    Laptop                999.99
    Mouse                  29.50
    Keyboard               74.99
    ----------------------------
    Total                1104.48
    ============================
    # Create the receipt
    items = [
    ("Laptop", 999.99),
    ("Mouse", 29.50),
    ("Keyboard", 74.99),
    ]
    # Print the header
    # Print column labels
    # Print each item
    # Print the total

    Resumo: entrada e saída em Python

    Uma referência rápida de tudo o que você aprendeu:

    ConceitoSintaxeExemplo
    Exibir vários valoresprint(a, b, c)print("Hi", name)
    Separador personalizadosep="..."print(1, 2, 3, sep="-") resulta em 1-2-3
    Final personalizadoend="..."print("Hi", end=" ") continua na mesma linha
    Alinhar à esquerdaf"{val:<width}"f"{name:<20}"
    Alinhar à direitaf"{val:>width}"f"{price:>8.2f}"
    Centralizarf"{val:^width}"f"{title:^30}"
    Entrada do usuárioinput("prompt")name = input("Name: ")
    Converter a entradaint(input())age = int(input("Age: "))

    O mais importante: o print() vai muito além de exibir texto. Com sep, end e a formatação das f-strings, você cria uma saída limpa e profissional, e o input() sempre entrega uma string, que você converte quando precisar.

    O que vem a seguir?

    Agora que você sabe criar saídas caprichadas, está pronto para controlar o fluxo dos seus programas. Nos próximos tutoriais, você vai aprender sobre condicionais (if) e laços: as ferramentas que permitem que seus programas tomem decisões e repitam ações.

    Tutoriais relacionados

    Este tutorial foi útil?