NSU Programming Программирование на C++ и Python

Строки

Строки в python работают с Unicode символами. По умолчанию используется кодировка UTF-8. Это значит, что в python поддерживается кириллица и любые другие символы стандарта Unicode. Строки в python — неизменяемые, поэтому любое преобразование строки возвращает новый объект, а не модифицирует существующий.

В предыдущем разделе основные приемы работы со строками уже обсуждались. В этом разделе будут рассмотрены форматированные строки (f-строки) и упомянуты r-строки.

f-строки

Вывести объект в стандартный поток вывода можно с помощью функции print:

print(3)
print(3.1415)

l = [1, 2, 3]
print(l)

Функция print принимает произвольное количество аргументов. По умолчанию все переданные объекты будут выведены через пробел, а в конце будет выполнен перевод строки. Изменить это поведение можно с помощью именованных аргументов sep (разделитель) и end (завершающий символ).

Гораздо более гибкого управления выводом можно добиться, если передавать в функцию print f-строки (formated). Рассмотрим различные примеры.

a = 34
print(f'{a}')      # 34
print(f'a = {a}')  # a = 34

В фигурных скобках можно передавать объекты любого типа. При необходимости вывести символы фигурных скобок следует использовать двойные скобки:

a = 34
print(f'{{a}} = {a}')  # {a} = 34

Примеры вывода целых чисел:

a, b = 12, 123
print(f'{a} {b}')
# '12 123'
print(f'{a:d} {b:d}')          # указываем тип
# '12 123'
print(f'{a:6d} {b:6d}')        # указываем ширину
# '    12    123'
print(f'{a:<6d} {b:<6d}')      # указываем выравнивание слева
# '12     123   '
print(f'{a:^6d} {b:^6d}')      # указываем выравнивание по центу
# '  12    123  '
print(f'{a:>+6d}\n{-b:>+6d}')  # просим выводить знак `+` для положительных чисел
# '   +12'
# '  -123'
print(f'{a:>06d}\n{b:>06d}')   # заполняем пробелы нулями
# '000012'
# '000123'
print(f'{a:o} {b:x} {a*b:b}')  # различные системы счисления
# 14 7b 10111000100'

В последнем примере мы вывели результат умножения чисел. В f-строках можно вычислять любые выражения, результат выполнения выражения будет выведен. Управление выравниванием действует универсально для любых типов данных. Примеры вывода чисел с плавающей точкой:

x = 3.141592653589793
y = 2.718281828459045
print(f'{x:f}\n{y:f}')      # указали тип
# '3.141593'
# '2.718282'
print(f'{x:.3f}\n{y:.3f}')  # количество знаков после запятой
# '3.142'
# '2.718'
print(f'{x:+8.3f}\n{y:+8.3f}')
# '  +3.142'
# '  +2.718'

Для строк используется ключ s:

line = 'Hello'
print(f'{line:=^16s}')
# `=====Hello======`

r-строки

Обратный слеш '\' в строках обрабатывается, как специальный символ. С его помощью вставляются символы пробела '\t', переноса строки '\t', маскируются символы кавычек внутри строк '\''. r-строки позволяют отключить такое поведение. Этот прием полезен, например, в подписях к осям графиков, в которых используются tex-символы:

print('$\nu$')
# '$'
# 'u$'
print(r'$\nu$')
# '$\nu$'

Резюме

f-строки позволяют легко управлять строковым представлением различных объектов. Приемы форматирования f-строк позволяют выводить в поток вывода информацию в удобном для восприятия виде.

Источники