Article image
Maxwell Chaves
Maxwell Chaves10/01/2024 11:15
Compartilhe

Como Melhorar a Formatação de Nomes Completos utilizando str.replace

  • #Python

Hoje, vamos resolver um problema comum que muitos de nós enfrentamos: como formatar nomes completos com iniciais maiúsculas e, ao mesmo tempo, manter as preposições em minúsculo.

O Desafio

Imaginem a seguinte situação: você tem uma lista de nomes completos, e deseja apresentá-los de maneira uniforme, com as iniciais em maiúsculas e, ao mesmo tempo, respeitando a tradição de manter as preposições em minúsculo.

A Origem das Preposições em Nomes Completos

Antes de estudarmos a solução, vamos refletir sobre a origem das preposições em nomes completos. No Brasil, por exemplo, é comum encontrar sobrenomes que incluem as preposições: "de", "da", "das", "dos" "do" . Estas preposições, muitas vezes, indicam a origem geográfica ou a filiação familiar. Diante dessa realidade, precisamos criar um código que respeite e preserve a apresentação original desses nomes.

A Solução: str.replace

Encontramos na documentação do Python a função replace que retorna uma cópia da string com todas as ocorrências da substring old substituídas por new. Se o argumento opcional count é fornecido, apenas as primeiras count ocorrências são substituídas: str.replace(old, new[, count])

Vamos criar uma função simples que formata nomes completos, aplicando iniciais maiúsculas e mantendo as preposições em minúsculo. Veja o código:

def formatar_nome(nome_completo):

  # Utiliza o método title() para colocar a primeira letra de cada
  # palavra em maiúscula
  nome_formatado = nome_completo.title()

  # Substitui as ocorrências das preposições pela mesma palavra em
  # minúsculo
  nome_formatado = (
      nome_formatado.replace(" De ", " de ")
          .replace(" Da ", " da ")
          .replace(" Das ", " das ")
          .replace(" Do ", " do ")
          .replace(" Dos ", " dos ")
  )

  return nome_formatado

Aplicação Prática

Vejamos alguns exemplos do uso dessa função:

nome = 'MAXWELL DE OLIVEIRA CHAVES'
nome_formatado = formatar_nome(nome)
print(nome_formatado)  # Output: Maxwell de Oliveira Chaves

nome = 'maria das virgens'
nome_formatado = formatar_nome(nome)
print(nome_formatado)  # Output: Maria das Virgens

nome = 'josé do patrocinio'
nome_formatado = formatar_nome(nome)
print(nome_formatado)  # Output: José do Patrocinio

nome = 'JOÃO DAS NEVES'
nome_formatado = formatar_nome(nome)
print(nome_formatado)  # Output: João das Neves

Conclusão

Ao incorporar a função str.replace, conseguimos formatar nomes com iniciais maiúsculas e preposições em minúsculo.

Espero que esta solução seja útil em seus projetos.

Link sobre a documentação:

https://docs.python.org/pt-br/3/library/stdtypes.html?highlight=replace#str.replace

Compartilhe
Comentários (0)