Skip to content

Formatar Placa de Carro #180

@camilamaia

Description

@camilamaia

Seu pedido de recurso está relacionado a um problema? Por favor, descreva.

Dada uma String correspondente a uma placa de carro válida, seja no formato da placa é o antigo (LLLNNNN) ou o novo Formato Mercosul / PIV (LLLNLNN), retornar uma String correspondendo a esta placa formatada com o traço para o formato antigo e sem mudança para o formato Mercosul.

Definição do Formato Antigo (LLLNNNN), segundo a RESOLUÇÃO 231 DE 15 DE MARÇO DE 2007:

Composto por 7 (sete) caracteres alfanuméricos individualizados sendo o primeiro grupo composto por 3
(três), resultante do arranjo, com repetição de 26 (vinte e seis) letras, tomadas três a três, e o
segundo grupo composto por 4 (quatro), resultante do arranjo, com repetição, de 10 (dez)
algarismos, tomados quatro a quatro.

Definição do Formato Mercosul / PIV (LLLNLNN), segundo RESOLUÇÃO Nº 780, DE 26 DE JUNHO DE 2019:

Composto de 7 (sete) caracteres alfanuméricos na sequência LLLNLNN, com combinação aleatória, distribuída e controlada pelo DENATRAN.

O caracter "L" refere-se à letra, e o caracter "N" refere-se ao numeral.

Descreva a solução que você gostaria

  • Chamar um novo utilitário passando uma String correspondente a uma placa de carro válida e retornar uma String correspondendo a esta placa formatada com o traço para o formato antigo e sem mudança para o formato Mercosul
  • A String deve estar sem formatação, sem símbolos.
  • Caso a placa passada como parâmetro não seja válida nem no formato antigo nem no formato Mercosul / PIV, retornar None
  • Não diferenciar entre maiúsculas e minúsculas
  • Sempre retornar maiúsculas

Descreva alternativas que você considerou

Criar um novo utilitário format_license_plate:

def format_license_plate(license_plate):
    ...

Exemplo de uso:

from brutils import format_license_plate

>>> format_license_plate("ABC123")
"ABC-123"
>>> format_license_plate("abc123")
"ABC-123"
>>> format_license_plate("ABC1D23")
"ABC1D23"
>>> format_license_plate("abc1d23")
"ABC1D23"
>>> format_license_plate("ABCD123")
None

Contexto adicional

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions