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 sinal0
- É 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 casasf
- É 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 format
parâmetro e retorna 23 se for igual a 'age'
. Se nenhum formato for especificado, None
será retornado.
A format()
função é executada internamente Person().__format__("age")
para retornar 23.