Formato Python ()

O método embutido format () retorna uma representação formatada do valor fornecido controlado pelo especificador de formato.

A format()função é semelhante ao método de formato String. Internamente, os dois métodos chamam o __format__()método de um objeto.

Embora a format()função __format__()interna format()seja uma implementação de baixo nível para formatar um objeto usando internamente, string é uma implementação de nível superior capaz de realizar operações de formatação complexas em várias strings de objeto também.

A sintaxe de format () é:

 formato (valor (, format_spec))

format () Parâmetros

A format()função tem dois parâmetros:

  • valor - valor que precisa ser formatado
  • format_spec - A especificação de como o valor deve ser formatado.

O especificador de formato pode estar no formato:

((preencher) alinhar) (sinal) (#) (0) (largura) (,) (. precisão) (tipo) onde, as opções são preencher :: = qualquer caractere alinhar :: = "" | "=" | "^" sinal :: = "+" | "-" | "" largura :: = precisão inteira :: = tipo inteiro :: = "b" | "c" | "d" | "e" | "E" | "f" | "F" | "g" | "G" | "n" | "o" | "s" | "x" | "X" | "%"

Visite estes links para aprender mais sobre os tipos de formato e alinhamento.

Valor de retorno do formato ()

A format()função retorna uma representação formatada de um determinado valor especificado pelo especificador de formato.

Exemplo 1: formatação de número com formato ()

 # d, f and b are type # integer print(format(123, "d")) # float arguments print(format(123.4567898, "f")) # binary format print(format(12, "b"))

Resultado

 123 123.456790 1100

Exemplo 2: formatação de números com preenchimento, alinhamento, sinal, largura, precisão e tipo

 # integer print(format(1234, "*>+7,d")) # float number print(format(123.4567, "^-09.3f"))

Resultado

 * + 1.234 0123.4570

Aqui, ao formatar o inteiro 1234, especificamos o especificador de formatação *>+7,d. Vamos entender cada opção:

  • * - É o caractere de preenchimento que preenche os espaços vazios após a formatação
  • > - É a opção de alinhamento certa que alinha a string de saída à direita
  • + - É a opção de sinal que obriga o número a ser assinado (tendo um sinal à sua esquerda)
  • 7 - É a opção de largura que força o número a ter uma largura mínima de 7, os outros espaços serão preenchidos por caracteres de preenchimento
  • , - É a operadora de milhares que coloca uma vírgula entre todos os milhares.
  • d - É a opção de tipo que especifica que o número é um inteiro.

Ao formatar o número de ponto flutuante 123.4567, especificamos o especificador de formato ^-09.3f. Esses são:

  • ^ - É a opção de alinhamento central que alinha a coluna de saída ao centro do espaço restante
  • - - É a opção de sinal que força apenas números negativos a mostrarem o sinal
  • 0 - É o personagem que é colocado no lugar dos espaços vazios.
  • 9 - É a opção de largura que define a largura mínima do número para 9 (incluindo ponto decimal, vírgula de milhar e sinal)
  • .3 - É o operador de precisão que define a precisão do número flutuante fornecido em 3 casas
  • f - É a opção de tipo que especifica que o número é um float.

Exemplo 3: Usando format () substituindo __format __ ()

 # custom __format__() method class Person: def __format__(self, format): if(format == 'age'): return '23' return 'None' print(format(Person(), "age"))

Resultado

 23

Aqui, substituímos o __format__()método da classe Person.

Ele agora aceita um formatparâmetro e retorna 23 se for igual a 'age'. Se nenhum formato for especificado, Noneserá retornado.

A format()função é executada internamente Person().__format__("age")para retornar 23.

Artigos interessantes...