Introdução
Ao escrever programas em Python, apresentar a saída de forma limpa e organizada é essencial tanto para a legibilidade do código quanto para a experiência do usuário. Seja criando relatórios, exibindo dados tabulares ou simplesmente imprimindo informações no console, o alinhamento adequado do texto torna sua saída mais profissional e fácil de ler.
Neste laboratório, você aprenderá várias técnicas para alinhar e formatar a saída de texto em Python. Você explorará diferentes métodos de alinhamento, praticará técnicas de formatação e criará exibições tabulares bem estruturadas que podem ser aplicadas em aplicações do mundo real.
Alinhamento Básico de Strings em Python
Neste primeiro passo, você aprenderá sobre os conceitos fundamentais de alinhamento de texto em Python e implementará técnicas básicas de alinhamento.
O que é Alinhamento de Texto?
Alinhamento de texto refere-se a como o texto é posicionado dentro de um determinado espaço. Python fornece vários métodos para controlar o posicionamento do texto ao imprimir no console. Os três principais tipos de alinhamento são:
- Alinhamento à esquerda (Left alignment): O texto começa na borda esquerda do espaço alocado.
- Alinhamento à direita (Right alignment): O texto termina na borda direita do espaço alocado.
- Alinhamento centralizado (Center alignment): O texto é centralizado dentro do espaço alocado.
Seu Primeiro Programa de Alinhamento
Vamos criar um script Python simples para demonstrar as técnicas básicas de alinhamento.
Abra o WebIDE no seu ambiente LabEx.
Crie um novo arquivo chamado
basic_alignment.pyno diretório/home/labex/projectclicando no ícone "New File" no WebIDE.Adicione o seguinte código ao arquivo:
## basic_alignment.py
print("Basic String Alignment Examples")
print("-" * 30)
## Left alignment example
print("Left alignment:")
print("Python".ljust(20) + "|")
print("Programming".ljust(20) + "|")
print("Alignment".ljust(20) + "|")
print()
## Right alignment example
print("Right alignment:")
print("Python".rjust(20) + "|")
print("Programming".rjust(20) + "|")
print("Alignment".rjust(20) + "|")
print()
## Center alignment example
print("Center alignment:")
print("Python".center(20) + "|")
print("Programming".center(20) + "|")
print("Alignment".center(20) + "|")
Salve o arquivo pressionando
Ctrl+Sou selecionando "File" > "Save" no menu.Abra um terminal no WebIDE (se ainda não estiver aberto) clicando no menu "Terminal" e selecionando "New Terminal".
Execute o script usando o interpretador Python:
cd ~/project
python3 basic_alignment.py
- Você deve ver a seguinte saída:
Basic String Alignment Examples
------------------------------
Left alignment:
Python |
Programming |
Alignment |
Right alignment:
Python|
Programming|
Alignment|
Center alignment:
Python |
Programming |
Alignment |
Entendendo o Código
O script que você acabou de criar demonstra três métodos básicos de alinhamento de strings em Python:
- ljust(width): Justifica a string à esquerda dentro de um campo da largura especificada.
- rjust(width): Justifica a string à direita dentro de um campo da largura especificada.
- center(width): Centraliza a string dentro de um campo da largura especificada.
Em cada exemplo, adicionamos uma barra vertical (|) no final de cada linha para mostrar claramente o limite do espaço alocado. Observe como o texto se alinha de forma diferente em cada caso, mantendo a mesma largura total de 20 caracteres.
Alinhamento de Strings com Caracteres Diferentes
Os métodos de justificação de strings também podem receber um segundo parâmetro para especificar o caractere de preenchimento que será usado para o padding. Vamos modificar nosso script para ver isso em ação.
Crie um novo arquivo chamado
alignment_with_chars.pyno diretório/home/labex/project.Adicione o seguinte código ao arquivo:
## alignment_with_chars.py
print("String Alignment With Custom Characters")
print("-" * 40)
## Using different padding characters
print("Left alignment with dots:")
print("Python".ljust(20, '.') + "|")
print("Programming".ljust(20, '.') + "|")
print()
print("Right alignment with asterisks:")
print("Python".rjust(20, '*') + "|")
print("Programming".rjust(20, '*') + "|")
print()
print("Center alignment with hyphens:")
print("Python".center(20, '-') + "|")
print("Programming".center(20, '-') + "|")
- Salve o arquivo e execute-o:
python3 ~/project/alignment_with_chars.py
- Você deve ver uma saída como esta:
String Alignment With Custom Characters
----------------------------------------
Left alignment with dots:
Python..............|
Programming.........|
Right alignment with asterisks:
**************Python|
*********Programming|
Center alignment with hyphens:
-------Python------|
----Programming----|
Esses exemplos demonstram como você pode personalizar a aparência do seu texto alinhado usando diferentes caracteres de preenchimento.
Métodos Avançados de Formatação para Alinhamento
No passo anterior, você aprendeu sobre o alinhamento básico de strings usando os métodos ljust(), rjust() e center(). Agora, vamos explorar métodos de formatação mais poderosos e flexíveis disponíveis em Python.
Métodos de Formatação de Strings em Python
Python oferece várias maneiras de formatar strings:
- Formatação de estilo antigo (usando o operador
%) - O método
str.format() - F-strings (literais de string formatados, disponíveis no Python 3.6+)
Cada método fornece maneiras de alinhar texto e formatar vários tipos de dados. Vamos explorá-los um por um.
1. Formatação de Estilo Antigo (% Operador)
Este é o método mais antigo de formatação de strings em Python, semelhante à função printf() do C.
- Crie um novo arquivo chamado
old_style_formatting.pyno diretório/home/labex/project:
## old_style_formatting.py
print("Formatação de String de Estilo Antigo")
print("-" * 30)
## Alinhamento à esquerda com formatação %
print("Alinhamento à esquerda:")
print("%-15s | %-10s" % ("Python", "Linguagem"))
print("%-15s | %-10s" % ("JavaScript", "Web"))
print()
## Alinhamento à direita com formatação %
print("Alinhamento à direita:")
print("%15s | %10s" % ("Python", "Linguagem"))
print("%15s | %10s" % ("JavaScript", "Web"))
print()
## Formatação de números
preco = 125.5
taxa_imposto = 0.21
print("Preço: $%8.2f" % preco)
print("Taxa de imposto: %6.1f%%" % (taxa_imposto * 100))
print("Valor do imposto: $%6.2f" % (preco * taxa_imposto))
print("Total: $%8.2f" % (preco * (1 + taxa_imposto)))
- Salve o arquivo e execute-o:
python3 ~/project/old_style_formatting.py
- Você deve ver uma saída semelhante a esta:
Formatação de String de Estilo Antigo
------------------------------
Alinhamento à esquerda:
Python | Linguagem
JavaScript | Web
Alinhamento à direita:
Python | Linguagem
JavaScript | Web
Formatação de números:
Preço: $ 125.50
Taxa de imposto: 21.0%
Valor do imposto: $ 26.36
Total: $ 151.86
2. O Método str.format()
O método str.format() fornece uma maneira mais versátil de formatar strings e foi introduzido para resolver algumas limitações do operador %.
- Crie um novo arquivo chamado
format_method.pyno diretório/home/labex/project:
## format_method.py
print("Formatação de String com str.format()")
print("-" * 35)
## Alinhamento básico com format
print("Alinhamento básico:")
print("{:<15} | {:<10}".format("Python", "Linguagem"))
print("{:>15} | {:>10}".format("Python", "Linguagem"))
print("{:^15} | {:^10}".format("Python", "Linguagem"))
print()
## Alinhamento com caractere de preenchimento personalizado
print("Caractere de preenchimento personalizado:")
print("{:*<15} | {:.>10}".format("Python", "Linguagem"))
print("{:#^15} | {:=^10}".format("Python", "Linguagem"))
print()
## Alinhamento com nomes de campo
print("Usando nomes de campo:")
print("{name:<15} | {type:<10}".format(name="JavaScript", type="Web"))
print("{name:>15} | {type:>10}".format(name="Python", type="Linguagem"))
print()
## Formatação de números
preco = 125.5
taxa_imposto = 0.21
print("Formatação de números:")
print("Preço: ${:8.2f}".format(preco))
print("Taxa de imposto: {:6.1f}%".format(taxa_imposto * 100))
print("Valor do imposto: ${:6.2f}".format(preco * taxa_imposto))
print("Total: ${:8.2f}".format(preco * (1 + taxa_imposto)))
- Salve o arquivo e execute-o:
python3 ~/project/format_method.py
- Você deve ver uma saída semelhante a esta:
Formatação de String com str.format()
-----------------------------------
Alinhamento básico:
Python | Linguagem
Python | Linguagem
Python | Linguagem
Caractere de preenchimento personalizado:
Python********* | Linguagem...
#####Python##### | ==Linguagem==
Usando nomes de campo:
JavaScript | Web
Python | Linguagem
Formatação de números:
Preço: $ 125.50
Taxa de imposto: 21.0%
Valor do imposto: $ 26.36
Total: $ 151.86
3. F-strings (Python 3.6+)
F-strings fornecem uma maneira concisa e conveniente de incorporar expressões dentro de literais de string. Eles são prefixados com a letra 'f' e usam chaves {} para incluir expressões.
- Crie um novo arquivo chamado
f_strings.pyno diretório/home/labex/project:
## f_strings.py
print("Formatação de String com F-strings")
print("-" * 35)
linguagem = "Python"
categoria = "Linguagem"
versao = 3.10
ano = 2022
## Alinhamento básico com f-strings
print("Alinhamento básico:")
print(f"{linguagem:<15} | {categoria:<10}")
print(f"{linguagem:>15} | {categoria:>10}")
print(f"{linguagem:^15} | {categoria:^10}")
print()
## Especificação de largura dinâmica
largura1 = 15
largura2 = 10
print("Largura dinâmica:")
print(f"{linguagem:<{largura1}} | {categoria:<{largura2}}")
print(f"{linguagem:>{largura1}} | {categoria:>{largura2}}")
print()
## Expressões dentro de f-strings
print("Expressões em f-strings:")
print(f"{linguagem + str(versao):<15} | {ano - 1991:>10} anos de idade")
print()
## Formatação de números
preco = 125.5
taxa_imposto = 0.21
print("Formatação de números:")
print(f"Preço: ${preco:8.2f}")
print(f"Taxa de imposto: {taxa_imposto * 100:6.1f}%")
print(f"Valor do imposto: ${preco * taxa_imposto:6.2f}")
print(f"Total: ${preco * (1 + taxa_imposto):8.2f}")
- Salve o arquivo e execute-o:
python3 ~/project/f_strings.py
- Você deve ver uma saída semelhante a esta:
Formatação de String com F-strings
-----------------------------------
Alinhamento básico:
Python | Linguagem
Python | Linguagem
Python | Linguagem
Largura dinâmica:
Python | Linguagem
Python | Linguagem
Expressões em f-strings:
Python 3.1 | 31 anos de idade
Formatação de números:
Preço: $ 125.50
Taxa de imposto: 21.0%
Valor do imposto: $ 26.36
Total: $ 151.86
Comparação dos Métodos de Formatação
Cada método de formatação tem suas vantagens. Veja quando usar cada um:
- Operador %: Use em código legado ou quando a compatibilidade com versões mais antigas do Python for necessária.
- str.format(): Mais poderoso que a formatação %, especialmente para requisitos de formatação complexos.
- F-strings: A opção mais concisa e legível, recomendada para todo o novo código Python (Python 3.6+).
A tendência moderna em Python é usar f-strings sempre que possível devido à sua legibilidade e benefícios de desempenho.
Criando Tabelas Formatadas com Python
Agora que você aprendeu diferentes técnicas de alinhamento, vamos aplicá-las para criar tabelas bem formatadas. Tabelas são uma forma comum de exibir dados estruturados em um formato legível, e o alinhamento adequado é crucial para apresentar informações tabulares de forma eficaz.
Tabela Simples com Colunas de Largura Fixa
Vamos começar criando uma tabela simples usando colunas de largura fixa.
- Crie um novo arquivo chamado
simple_table.pyno diretório/home/labex/project:
## simple_table.py
print("Tabela Simples de Largura Fixa")
print("-" * 50)
## Defina alguns dados
header = ["Nome", "Idade", "Cidade", "Profissão"]
data = [
["John Smith", 34, "Nova Iorque", "Médico"],
["Sarah Johnson", 28, "São Francisco", "Engenheira"],
["Michael Brown", 42, "Chicago", "Professor"],
["Emily Davis", 31, "Boston", "Cientista"]
]
## Imprima o cabeçalho
print(f"{header[0]:<20} {header[1]:<8} {header[2]:<15} {header[3]:<15}")
print("-" * 60)
## Imprima as linhas
for row in data:
print(f"{row[0]:<20} {row[1]:<8} {row[2]:<15} {row[3]:<15}")
- Salve o arquivo e execute-o:
python3 ~/project/simple_table.py
- Você deve ver uma tabela formatada, como esta:
Tabela Simples de Largura Fixa
--------------------------------------------------
Nome Idade Cidade Profissão
------------------------------------------------------------
John Smith 34 Nova Iorque Médico
Sarah Johnson 28 São Francisco Engenheira
Michael Brown 42 Chicago Professor
Emily Davis 31 Boston Cientista
Tabela Dinâmica com Tipos Múltiplos de Alinhamento
Diferentes tipos de dados geralmente ficam melhores com estilos de alinhamento diferentes. Por exemplo, texto geralmente é alinhado à esquerda, enquanto números são alinhados à direita. Vamos criar uma tabela mais sofisticada com alinhamento misto.
- Crie um novo arquivo chamado
dynamic_table.pyno diretório/home/labex/project:
## dynamic_table.py
print("Tabela Dinâmica com Alinhamento Misto")
print("-" * 50)
## Defina alguns dados
header = ["Produto", "Preço", "Quantidade", "Total"]
products = [
["Laptop", 1299.99, 3, 3899.97],
["Mouse", 24.50, 10, 245.00],
["Monitor", 349.95, 2, 699.90],
["Teclado", 49.99, 5, 249.95],
["Fones de ouvido", 89.95, 4, 359.80]
]
## Calcule as larguras das colunas com base no conteúdo
col_widths = [
max(len(str(header[0])), max(len(str(row[0])) for row in products)) + 2,
max(len(str(header[1])), max(len(f"${row[1]:.2f}") for row in products)) + 2,
max(len(str(header[2])), max(len(str(row[2])) for row in products)) + 2,
max(len(str(header[3])), max(len(f"${row[3]:.2f}") for row in products)) + 2
]
## Imprima o cabeçalho
print(f"{header[0]:<{col_widths[0]}}"
f"{header[1]:>{col_widths[1]}}"
f"{header[2]:>{col_widths[2]}}"
f"{header[3]:>{col_widths[3]}}")
print("-" * sum(col_widths))
## Imprima as linhas com alinhamento apropriado
for product in products:
print(f"{product[0]:<{col_widths[0]}}",
f"${product[1]:.2f}".rjust(col_widths[1]),
f"{product[2]}".rjust(col_widths[2]),
f"${product[3]:.2f}".rjust(col_widths[3]))
## Imprima o resumo
total_quantity = sum(product[2] for product in products)
total_cost = sum(product[3] for product in products)
print("-" * sum(col_widths))
print(f"{'TOTAL':<{col_widths[0]}}",
f"".rjust(col_widths[1]),
f"{total_quantity}".rjust(col_widths[2]),
f"${total_cost:.2f}".rjust(col_widths[3]))
... (rest of the translated content)
Resumo
Neste laboratório, você aprendeu várias técnicas para alinhar e formatar a saída de texto em Python:
- Métodos básicos de alinhamento de strings:
ljust(),rjust()ecenter() - Diferentes abordagens de formatação de strings: operador %,
str.format()e f-strings - Como criar tabelas bem estruturadas com colunas de largura fixa
- Como aplicar diferentes estilos de alinhamento com base nos tipos de dados
- Como criar aplicações do mundo real, como relatórios financeiros, com formatação adequada
Essas habilidades de alinhamento de texto são essenciais para criar saídas legíveis e profissionais em muitas aplicações, desde utilitários simples de linha de comando até sistemas complexos de processamento de dados. Ao dominar o alinhamento de texto em Python, você pode melhorar significativamente a experiência do usuário e a legibilidade de seus programas.
À medida que você continua sua jornada em Python, lembre-se de que uma saída limpa e bem formatada é frequentemente tão importante quanto a lógica computacional de seus programas. As técnicas aprendidas neste laboratório ajudarão você a apresentar seus dados de uma forma que seja funcional e visualmente atraente.



