Форматирование строк с помощью метода format
Если для подстановки требуется только один аргумент, то значение - сам аргумент: >>> 'Hello, {}!'.format('Vasya')'Hello, Vasya!'А если несколько, то значениями будут являться все аргументы со строками подстановки (обычных или именованных): >>> '{0}, {1}, {2}'.format('a', 'b', 'c')'a, b, c'>>> '{}, {}, {}'.format('a', 'b', 'c')'a, b, c'>>> '{2}, {1}, {0}'.format('a', 'b', 'c')'c, b, a'>>> '{2}, {1}, {0}'.format(*'abc')'c, b, a'>>> '{0}{1}{0}'.format('abra', 'cad')'abracadabra'>>> 'Coordinates: {latitude}, {longitude}'.format(latitude='37.24N', longitude='-115.81W')'Coordinates: 37.24N, -115.81W'>>> coord = {'latitude': '37.24N', 'longitude': '-115.81W'}>>> 'Coordinates: {latitude}, {longitude}'.format(**coord)'Coordinates: 37.24N, -115.81W'Однако метод format умеет большее. Вот его синтаксис: поле замены ::= "{" [имя поля] ["!" преобразование] [":" спецификация] "}"имя поля ::= arg_name ("." имя атрибута | "[" индекс "]")*преобразование ::= "r" (внутреннее представление) | "s" (человеческое представление)спецификация ::= см. нижеНапример: >>> "Units destroyed: {players[0]}".format(players = [1, 2, 3])'Units destroyed: 1'>>> "Units destroyed: {players[0]!r}".format(players = ['1', '2', '3'])"Units destroyed: '1'"Теперь спецификация формата: спецификация ::= [[fill]align][sign][#][0][width][,][.precision][type]заполнитель ::= символ кроме '{' или '}'выравнивание ::= "<" | ">" | "=" | "^"знак ::= "+" | "-" | " "ширина ::= integerточность ::= integerтип ::= "b" | "c" | "d" | "e" | "E" | "f" | "F" | "g" | "G" | "n" | "o" | "s" | "x" | "X" | "%"
Выравнивание производится при помощи символа-заполнителя. Доступны следующие варианты выравнивания:
Опция "знак" используется только для чисел и может принимать следующие значения:
Поле "тип" может принимать следующие значения:
И напоследок, несколько примеров: >>> coord = (3, 5)>>> 'X: {0[0]}; Y: {0[1]}'.format(coord)'X: 3; Y: 5' >>> "repr() shows quotes: {!r}; str() doesn't: {!s}".format('test1', 'test2')"repr() shows quotes: 'test1'; str() doesn't: test2" >>> '{:<30}'.format('left aligned')'left aligned '>>> '{:>30}'.format('right aligned')' right aligned'>>> '{:^30}'.format('centered')' centered '>>> '{:*^30}'.format('centered') # use '*' as a fill char'***********centered***********' >>> '{:+f}; {:+f}'.format(3.14, -3.14) # show it always'+3.140000; -3.140000'>>> '{: f}; {: f}'.format(3.14, -3.14) # show a space for positive numbers' 3.140000; -3.140000'>>> '{:-f}; {:-f}'.format(3.14, -3.14) # show only the minus -- same as '{:f}; {:f}''3.140000; -3.140000' >>> # format also supports binary numbers>>> "int: {0:d}; hex: {0:x}; oct: {0:o}; bin: {0:b}".format(42)'int: 42; hex: 2a; oct: 52; bin: 101010'>>> # with 0x, 0o, or 0b as prefix:>>> "int: {0:d}; hex: {0:#x}; oct: {0:#o}; bin: {0:#b}".format(42)'int: 42; hex: 0x2a; oct: 0o52; bin: 0b101010' >>> points = 19.5>>> total = 22>>> 'Correct answers: {:.2%}'.format(points/total)'Correct answers: 88.64%'
Метод format является наиболее правильным, но часто можно встретить программный код с форматированием строк в форме оператора %. Форматирование строк с помощью оператора % Если для подстановки требуется только один аргумент, то значение - сам аргумент: >>> 'Hello, %s!' % 'Vasya''Hello, Vasya!'А если несколько, то значением будет являться кортеж со строками подстановки: >>> '%d %s, %d %s' % (6, 'bananas', 10, 'lemons')'6 bananas, 10 lemons'Теперь, а почему я пишу то %d, то %s? А всё зависит от того, что мы используем в качестве подстановки и что мы хотим получить в итоге.
Спецификаторы преобразования записываются в следующем порядке: 1. %. 2. Ключ (опционально), определяет, какой аргумент из значения будет подставляться. 3. Флаги преобразования. 4. Минимальная ширина поля. Если *, значение берётся из кортежа. 5. Точность, начинается с '.', затем - желаемая точность. 6. Модификатор длины (опционально). 7. Тип (см. таблицу выше). >>> print ('%(language)s has %(number)03d quote types.' % {"language": "Python", "number": 2})Python has 002 quote types.Флаги преобразования:
Списки (list) Списки в Python - упорядоченные изменяемые коллекции объектов произвольных типов (почти как массив, но типы могут отличаться). Чтобы использовать списки, их нужно создать. Создать список можно несколькими способами. Например, можно обработать любой итерируемый объект (например, строку) встроенной функцией list: >>> list('список')['с', 'п', 'и', 'с', 'о', 'к']Список можно создать и при помощи литерала: >>> s = [] # Пустой список>>> l = ['s', 'p', ['isok'], 2]>>> s[]>>> l['s', 'p', ['isok'], 2]Как видно из примера, список может содержать любое количество любых объектов (в том числе и вложенные списки), или не содержать ничего. И еще один способ создать список - это генераторы списков. Генератор списков - способ построить новый список, применяя выражение к каждому элементу последовательности. Генераторы списков очень похожи на цикл for. >>> c = [c * 3 for c in 'list']>>> c['lll', 'iii', 'sss', 'ttt']Возможна и более сложная конструкция генератора списков: >>> c = [c * 3 for c in 'list' if c != 'i']>>> c['lll', 'sss', 'ttt']>>> c = [c + d for c in 'list' if c != 'i' for d in 'spam' if d != 'a']>>> c['ls', 'lp', 'lm', 'ss', 'sp', 'sm', 'ts', 'tp', 'tm']Но в сложных случаях лучше пользоваться обычным циклом for для генерации списков.
Популярное: Почему люди поддаются рекламе?: Только не надо искать ответы в качестве или количестве рекламы... Генезис конфликтологии как науки в древней Греции: Для уяснения предыстории конфликтологии существенное значение имеет обращение к античной... Как вы ведете себя при стрессе?: Вы можете самостоятельно управлять стрессом! Каждый из нас имеет право и возможность уменьшить его воздействие на нас... Как построить свою речь (словесное оформление):
При подготовке публичного выступления перед оратором возникает вопрос, как лучше словесно оформить свою... ©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (721)
|
Почему 1285321 студент выбрали МегаОбучалку... Система поиска информации Мобильная версия сайта Удобная навигация Нет шокирующей рекламы |