Files
learning/python/основы/форматирование.py
2022-05-06 00:49:26 +03:00

48 lines
3.0 KiB
Python
Executable File
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#Слева указать спецификаторы после знака %, справа указать то, на что эти спецификаторы заменить
#d = десятичное число, s = строка
formating = "That's %d %s bird" % (1, "dead")
print(formating)
x = 1234
#%[(name)][flags][width][.precision]спец
# name = ключ в словаре. При указании * для width и precision значение возьмётся из элемента в списке входных значений
#-10 = отступ слева. при указании отриц. числа превращается в отступ справа
#06 = поле становится равным 6 и добавляются вводные нули вместо отсутпа
res = "integers: ...%d...%-10d...%06d" % (x, x, x)
print(res)
#f = вещественное число
#. используется для определения кол-ва знаков после запятой
res = "%f...%.2f" % (1/3.0, 1/3.0)
print(res)
#Использование словаря:
formating = "%(number)d %(text)s" % {"number" : 1, "text" : "spam"}
print("\n", formating)
#*****************************************Методы форматирования*****************************************
#Могут использоваться именованные аргументы или номера аргументов
template = "{motto}, {0} and {food}"
print(template.format("ham", motto="spam", food="eggs"))
import sys
#Для ссылки на объект в словаре необходимо указать положение словаря в списке входных значений (1) и ключ объекта в квадратных скобках [spam]
#Для ссылки на атрибут объекта нужно применить точку (.platform)
template = "My {1[spam]} runs {0.platform}".format(sys, {"spam": "laptop"})
print(template)
somelist = list("spam")
#Использование отрицательных значений внутри строки формата приводит к ошибке
#Также нельзя создавать срезы внутри строки формата
#Поэтому объект нужно указать вне строки. |
template = "first = {0[0]}, last = {1}".format(somelist, somelist[-1])
print(template)
#Синтаксис точного форматирования: {fieldname!conversionflag:formatspec}
#Синтаксис formatspec: [[fill]align][sign][#][0][width][.precision][typecode] (В квадратных скобках необязательные компоненты)
#< = выравнивание слева, > = выравнивание справа
print("\n{0:>10} = {1:<10}".format("spam", 123.4567))
#Извлечение значения из списка аргументов:
print("{0:.{1}f}".format(3.14159, 2))