Язык 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-строк позволяют выводить в поток вывода информацию в удобном для восприятия виде.