Три метода Python строки формата (%, формат, ф-строка)

ДЕНЬ 7. отформатированной строка

До сих пор я знаю, есть три способа формата питон строка, первый есть в начале процентов, затем формат после 2,5 (), то добавляются строки отладки на 3,6 ф

7,1% отформатированная строка

Строка% формат Python является самым ранней, и она совместима со всеми версиями методы форматирования строки, в какой-то библиотеке питоном ранее рекомендуемый% отформатирован путь, он будет строка форматирования по характеру в качестве альтернативы, после последовательности параметров, формат

"xxxxxx %s xxxxxx" % (value1, value2)
  • Отличающийся тем, что %sон отформатирован характер, а это означает , что значение обратной формата символьного типа, а также аналогичного формата символов %d, %fи тому подобное, с конкретной ссылкой на статьи строку Python отформатирован
  • Позже value1, value2он должен быть отформатирован значения, будь то числовой или символ, будет отформатирован как символ , соответствующий типу отформатирован
  • Конечно, вы не можете передать значение в виде кортежа, вы можете напрямую записать так: "xxxxx %s" % valueно не предлагают писать, нужно только передать параметр в этом, и второй, если значение является кортеж или список таких как тип, этот триггер TypeErrer
  • Если вы только передать параметр, и это не будет вызывать исключение для определения типа параметра, вы можете использовать приведенные выше формулировки, в противном случае, я рекомендую вам предоставить кортеж, так же, как"xxxx %s " % (value,)
value1 = (7, 8)
value2 = [9, 0]
print("DAY %s 格式化字符串 %s " % (value1,value2))
value3 = 1
s = "xxxix %s" % value3  # 不推荐
print(s)
s1 = "xxxx %s " % value1
print(s1)  # TypeError: not all arguments converted during string formatting

Формат 7.2 ()

%, В то время мощного, но неизбежно некоторые проблемы с ним, код не особенно красивы, и поэтому, после того, как питон 2.5, обеспечивает более элегантный str.format()метод.

    def format(self, *args, **kwargs): # known special case of str.format
        """
        S.format(*args, **kwargs) -> str

        Return a formatted version of S, using substitutions from args and kwargs.
        The substitutions are identified by braces ('{' and '}').
        """
        pass
  • Формат () общего пользования
# 使用名称占位符
s2 = "xxxx {age} xxxx {name}".format(age=18, name="hangman")
print(s2)  # xxxx 18 xxxx hangman

# 使用序号占位符,为空默认从左到右01234.。。
s3 = "xxxx {1} xxx{0}".format(value1,value2)
print(s3)  # xxxx [9, 0] xxx(7, 8)

# 也可以混合使用
s4 = "xxxx {} XXX {name} xxx {}".format(value2,value1,name="s4")
print(s4)  # xxxx [9, 0] XXX s4 xxx (7, 8)

7,3 ф-строка

ф-строка, 2015 Python 3.6 РЕР строки метод форматирования в соответствии с недавно добавленным 498, F-строка в выражениях для вычисления времени выполнения факта, а не значение константы. В исходном коде Python, е-строка представляет собой текстовую строку, префикс «», где выражение содержится в фигурных скобках. Содержание выражение фигурных скобок заменит его значение. например

import datetime
name = "zings"
age = 17
date = datetime.date(2019,7,18)
print(f'my name is {name}, this year is {date:%Y},Next year, I\'m {age+1}')  # my name is zings, this year is 2019,Next year, I'm 18

7.3.2 Формат Спецификация Mini-Language

Поле «Формат спецификация» используется для замены строки формата, содержащейся в соответствующих отображаемых значения, определенных

Общий вид стандартного спецификатора формата является:

format_spec     ::=  [[fill]align][sign][#][0][width][grouping_option][.precision][type]
fill            ::=  <any character>
align           ::=  "<" | ">" | "=" | "^"
sign            ::=  "+" | "-" | " "
width           ::=  digit+
grouping_option ::=  "_" | ","
precision       ::=  digit+
type            ::=  "b" | "c" | "d" | "e" | "E" | "f" | "F" | "g" | "G" | "n" | "o" | "s" | "x" | "X" | "%"
(1) Align
Выравнивание (выравнивание) эффект
< Left (строка выравнивания по умолчанию)
> Выравнивание по правому краю (выравнивание по умолчанию)
= Принудительное знак между заполнением и числами заполнения, только цифрами заполнения поддержки
^ центр
  • Если определение ширины минимального поля, в противном случае ширина поля всегда будет заполняться с тем же размером своих данных, поэтому в данном случае, вариант юстировки не имеет смысла.
  • Если задано выравнивать значение, оно может предшествовать заполнение любого символа, если по умолчанию опущено, пространства. Текст не может использовать фигурные скобки ( «{» или «}») в качестве способа заполнения символ или текстовая строка формат, используемый str.format (). Однако замена может быть вставлена ​​с фигурными скобками вложенных полей.
print(f'{name:^18}')  # |      zings     |
(2) знак

подписывать только цифровые работы

подписать эффект
+ Принудительно цифровой знак
- Только отрицательное число с ведущим знаком минус (по умолчанию)
空格 Использование положительного «» для лидера, по-прежнему отрицательный «-» в качестве ведущего
print(f'{money:+}')  # +19999999877
(3) Вариант #

Опция «#», чтобы сделать «альтернативные формы» для преобразования. Для различных типов альтернативных форм, определенных. Эта опция доступна только целое число, вещественное, сложный и типы десятичные. Для целого числа, при использовании двоичной, восьмеричной или шестнадцатеричной выход, этот вариант будет префикс «0b», «0o» или «0x» добавляется к значению выходного сигнала. Для чисел с плавающей точкой, комплексных чисел и десятичной, альтернативные формы могут привести к результатам преобразования всегда содержат символ десятичной точки, даже без цифровой задней, а также. Как правило, только тогда, когда следует число, результаты этих символов преобразуется десятичной запятой будет отображаться. Кроме того, «г» и конверсия «G», конечные нули не удаляются из результата.

(4), опции

«» Он используется для целой части цифрового разделителя тысяч

дескриптор эффект
, Используя, как разделитель тысяч
_ Используется в качестве разделителя тысяч _
  • , Только для чисел с плавающей точкой, и десятичного целым комплекс: для чисел с плавающей точкой и множество раздела ,, только цифры до десятичной точки.
  • _ Относишься к плавающей точке, и множество два, восемь, десять, шестнадцатеричных целого числа: для чисел с плавающей точкой и множественное число, разнесенным _ только цифры перед десятичной точкой, для двух, восемь, шестнадцатеричных целого числа, каждый из обеспеченных от низкого до высокого вставить распорку четыре _ (десятичное целое вставляются каждые три _ а).
print(f'{money:,}')  # 19,999,999,877
(5) ширина

определяются ширина минимальной шириной поле десятичного числа. Если не указано, ширина поля определяется содержанием.

Конечно, формат, есть много особенностей Прочные, вы также можете посмотреть на большой брат статье: Python строка форматирования

(6) .precision

Для .precision цифрового объекта для указанного количества знаков после запятой, если есть десятичный, для не-цифрового объекта, чтобы определить максимальную длину конечного возврата форматирования символов, то есть после завершения форматирования, в точность параметра результата подслушивание

Тип (7)

[Изображение дампа внешняя неисправности линии связи (IMG-AtydwvFj-1563463465332) (... / ... / фото / python_ Обобщенная _01.png)]

** Примечание: ** мини формат языка спецификации формата, как это применимо (первоначально формат)

7.4 резюме

Строка первого метод формата питон%, но его фатальный недостаток является ограниченным типом поддержки, который поддерживает только INT, ули дважды, все другие виды преобразования только для нескольких типов, а также если прошли юани группа, вы должны также пройти одиночные кортежи значения, сделать это, добавьте str.format (), чтобы решить некоторые проблемы,% -formatting, в частности, в том, что он использует обычный синтаксис вызова функции (и, следовательно, поддерживают несколько параметров ), и может быть __format __ () метод на расширение преобразуется в объект строки. Но str.format (код) избыточность и есть проблемы, такие как

v = 6*8
print("the value is {}".format(v))

Использование только е-струнной необходимости

print(f'the value is{6*8}')

F читаемая строка обеспечивает элегантный способ, выражение Python может содержать значения в строке. В том числе лямбда-выражения (чтобы быть помещены в скобках)

Справочная статья

PEP 498

питон документ

Python строка форматирования

F-строка формата строки Python Обзор

GitHub вопросы питон лицо

Опубликовано 62 оригинальные статьи · вона похвала 33 · просмотров 10000 +

рекомендация

отblog.csdn.net/zjbyough/article/details/96466658