Найти тему
programmer's notes (python and more)

Дополнение 2 к базовому курсу по языку программирования Python (строки)

Оглавление

Доброго времени суток, читатели, зрители моего канала programmer's notes.

programmer's notes

Базовый курс по языку программирования Python закончен. Осталось сделать несколько дополнений. Сегодня второе такое дополнение (см. первое). Оно будет текстовым. Сегодня поговорим о строках, но не о строках, как объектах, а о их содержимом, с точки зрения вывода на консоль. Я, конечно, об этом говорил, но как-то вскользь. Ну теперь подробнее.

Строки и их вывод на консоль в Python

Экранирование символов в строке

Строки в python могут содержать специальные последовательности, которые интерпретируются определенным образом при выводе на консоль. Это последовательности начинаются с символа "обратный слеш" - '\'. Это символ называют обычно символом "экранирования". Это как-бы намек на то, что символы за ним могут значить не совсем то, чем нам они кажутся.

1. Управляющие символы

  • \n - символ перевода строки;
  • \a - гудок встроенного динамика, устаревший символ;
  • \b - backspace, стирание символа слева;
  • \f - разрыв страницы, срабатывает как перевод строки и сдвиг на длину предыдущей строки;
  • \r - возврат к началу той же строки;
  • \t - горизонтальная табуляция;
  • \v - вертикальная табуляция (срабатывает как \f).

print('qwerty\nqwerty\vqwerty')

Результат выполнения print('qwerty\nqwerty\vqwerty')
Результат выполнения print('qwerty\nqwerty\vqwerty')

Также

2. Экранирование

  • \\ - один слеш;
  • \' - одинарная кавычка (можно и внутри одинарных кавычек);
  • \" - двойная кавычка (можно внутри двойных кавычек);
  • \0 - пустой символ;
  • \ - если после обратного слеш идет символ, который не включен в символы для экранирования, то все выводится так. как есть;

print('\'Привет мир!\'')
print("\"Привет\\\nмир!\"")

Результат выполнения

Результат выполнения
Результат выполнения
  • \xhh - однобайтовый шестнадцатеричный код символа;

print('\x41\x42\x43')

Результат выполнения
ABC

\ooo - восьмеричный однобайтовый код символа;

print('\101\102\103')

Результат выполнения
ABC

  • \N{id} - вывод символа юникод по его названию, например '\N{Flushed Face}' и т.п.;
  • \uhhhh - шестнадцатеричный 16-битный код символа;

print('\u8751\u8752\u8753')

Результат выполнения
蝑蝒蝓

  • Uhhhhhhhh шестнадцатеричный 32-битный код символа.

r-строки в python

Как мы видели выше, строка может содержать специальные символы, которые интерпретируются Python в частности при выводе на консоль. Если перед кавычками, заключающими последовательность символов поставить символ 'r', то строка будет выводить так, как есть.

s = r'qwerty\nqwerty\vqwerty'
print(s)

Результат выполнения
qwerty\nqwerty\vqwerty

Т.е. есть хороший механизм избежать интерпретации экранированных символов.

f-строки в python

Если перед кавычками, заключающими строку, стоит символ 'f', то это признак, так называемых f-строк. Появляется дополнительный механизм форматирования строки. Суть в том, что теперь в фигурных скобках можно указывать целые выражения, которые будут автоматически интерпретироваться перед выводом на консоль. Особо отметим, что механизм экранирования будет по-прежнему работать.

Приведем несколько примеров.

Пример 1.

n = 12
m = 'марта'
y = 2023
print(f"Сегодня {12} {m} {y}-его года")

Результат выполнения

Сегодня 12 марта 2023-его года

Пример 2.

Текст программы primer82.py ниже
Текст программы primer82.py ниже
primer82.py

Результат выполнения программы

119025 = 119025

Т.е. интерпретируются и действия и результат выполнения вызванной функции.

Пример 3.

print(f"{'с добрым утром, дорогие товарищи!'.upper()}")

Результат выполнения

С ДОБРЫМ УТРОМ, ДОРОГИЕ ТОВАРИЩИ!

Всего наилучшего. Последнее дополнение к базовому курсу в виде видео-урока будет в ближайшее время. Оставляйте свои комментарии, не забывайте про лайки и подписывайтесь на мой канал programmer's notes.

Плохие языки программирования? Нет не слышал.
Плохие языки программирования? Нет не слышал.