Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Materialy_2.docx
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
1.09 Mб
Скачать

Форматирование строк с помощью оператора %

Если для подстановки требуется только один аргумент, то значение - сам аргумент:

>>> 'Hello, %s!' % 'Vasya'

'Hello, Vasya!'

А если несколько, то значением будет являться кортеж со строками подстановки:

>>> '%d %s, %d %s' % (6, 'bananas', 10, 'lemons')

'6 bananas, 10 lemons'

Теперь, а почему я пишу то %d, то %s? А всё зависит от того, что мы используем в качестве подстановки и что мы хотим получить в итоге.

Формат

Что получится

'%d', '%i', '%u'

Десятичное число.

'%o'

Число в восьмеричной системе счисления.

'%x'

Число в шестнадцатеричной системе счисления (буквы в нижнем регистре).

'%X'

Число в шестнадцатеричной системе счисления (буквы в верхнем регистре).

'%e'

Число с плавающей точкой с экспонентой (экспонента в нижнем регистре).

'%E'

Число с плавающей точкой с экспонентой (экспонента в верхнем регистре).

'%f', '%F'

Число с плавающей точкой (обычный формат).

'%g'

Число с плавающей точкой. с экспонентой (экспонента в нижнем регистре), если она меньше, чем -4 или точности, иначе обычный формат.

'%G'

Число с плавающей точкой. с экспонентой (экспонента в верхнем регистре), если она меньше, чем -4 или точности, иначе обычный формат.

'%c'

Символ (строка из одного символа или число - код символа).

'%r'

Строка (литерал python).

'%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.

Флаги преобразования:

Флаг

Значение

"#"

Значение будет использовать альтернативную форму.

"0"

Свободное место будет заполнено нулями.

"-"

Свободное место будет заполнено пробелами справа.

" "

Свободное место будет заполнено пробелами справа.

"+"

Свободное место будет заполнено пробелами слева.

>>> '%.2s' % 'Hello!'

'He'

>>> '%.*s' % ( 2, 'Hello!')

'He'

>>> '%-10d' % 25

'25 '

>>> '%+10f' % 25

'+25.000000'

>>> '%+10s' % 'Hello'

' Hello'

Списки (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 для генерации списков.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]