Различия
Показаны различия между двумя версиями страницы.
data:strings [2021/01/18 11:43] 127.0.0.1 внешнее изменение |
data:strings [2023/02/02 22:22] (текущий) root |
||
---|---|---|---|
Строка 150: | Строка 150: | ||
</ | </ | ||
- | <div slide> | ||
- | |||
- | ===== Формирование строк в стиле printf ===== | ||
- | |||
- | У типа '' | ||
- | |||
- | <sxh python> | ||
- | t = " | ||
- | s = t % (" | ||
- | # s == ' | ||
- | </ | ||
- | |||
- | </ | ||
- | <div slide> | ||
- | |||
- | ==== Популярные форматы ==== | ||
- | |||
- | ^ Формат ^ Аргумент ^ Эффект ^ | ||
- | | '' | ||
- | | '' | ||
- | | '' | ||
- | | '' | ||
- | | '' | ||
- | |||
- | ==== Популярные модификаторы ==== | ||
- | |||
- | <sxh python> | ||
- | " | ||
- | " | ||
- | " | ||
- | " | ||
- | " | ||
- | " | ||
- | </ | ||
- | |||
- | </ | ||
- | <div slide> | ||
- | |||
- | ===== Формирование строк в стиле format ===== | ||
- | |||
- | У типа '' | ||
- | |||
- | <sxh python> | ||
- | s = ' | ||
- | w = s.format(' | ||
- | #w == ' | ||
- | </ | ||
- | |||
- | Преимущества: | ||
- | * Автоматическое приведение типов | ||
- | * Возможность передачи параметров по имени и по номеру (в том числе повторение) | ||
- | |||
- | Форматы аналогичны '' | ||
- | |||
- | <sxh python> | ||
- | s = 'Power {power:.2f} State {state}' | ||
- | w = s.format(state = " | ||
- | #w == 'Power 3.14 State Ready' | ||
- | </ | ||
- | |||
- | </ | ||
- | <div slide> | ||
- | |||
- | ===== Разбор строк ===== | ||
- | |||
- | Базовые разбор строк часто можно выполнить комбинацией методов ' | ||
- | |||
- | ==== scanf ==== | ||
- | |||
- | Пакет '' | ||
- | |||
- | <sxh python> | ||
- | from scanf import scanf | ||
- | |||
- | template = ' | ||
- | text = ' | ||
- | s = scanf(template, | ||
- | #s == (0.0, ' | ||
- | </ | ||
- | |||
- | Поддерживаемые модификаторы: | ||
- | |||
- | Дополнительно имеется тип '' | ||
- | |||
- | Подробное описание форматов [[https:// | ||
- | |||
- | </ | ||
- | <div slide> | ||
- | |||
- | ==== Регулярные выражения ==== | ||
- | |||
- | Регулярные выражения — специальный язык программирования. В стандартной библиотеке Python есть модуль для работы с ними — '' | ||
- | |||
- | Основные применения: | ||
- | |||
- | * Проверка формальной корректности строки | ||
- | * Поиск/ | ||
- | * Разделение строки по правилам | ||
- | |||
- | Проверить свои регулярные выражения можно, например, | ||
- | |||
- | Использование длинных и сложных регулярных выражений считается плохим стилем. Для разбора сложного синтаксиса следует использовать другие инструменты. | ||
- | |||
- | </ | ||
- | <div slide> | ||
- | |||
- | === Некоторые популярные регулярные выражения === | ||
- | |||
- | ^ Выражение ^ Смысл ^ | ||
- | | '' | ||
- | | '' | ||
- | | '' | ||
- | | '' | ||
- | | '' | ||
- | | '' | ||
- | | '' | ||
- | | '' | ||
- | | '' | ||
- | | '' | ||
- | |||
- | Чтобы избежать проблем с экранированием регулярные выражения записываются, | ||
- | |||
- | </ | ||
- | <div slide> | ||
- | |||
- | ==== Некоторые методы ==== | ||
- | |||
- | === match === | ||
- | |||
- | Проверка на соответствие строки — шаблону. | ||
- | |||
- | <sxh python> | ||
- | import re | ||
- | |||
- | r = re.compile(r" | ||
- | r.match(" | ||
- | r.match(" | ||
- | r.match(" | ||
- | |||
- | r = re.compile(r" | ||
- | r.match(" | ||
- | r.match(" | ||
- | |||
- | r = re.compile(r" | ||
- | wd = r.match(" | ||
- | wd.group(0) # ' | ||
- | wd.group(1) # ' | ||
- | wd.group(2) # ' | ||
- | </ | ||
- | |||
- | </ | ||
- | <div slide> | ||
- | |||
- | === search / findall === | ||
- | |||
- | Поиск в строке подстрок(-и) удовлетворяющей выражению. | ||
- | |||
- | <sxh python> | ||
- | import re | ||
- | |||
- | r = re.compile(r" | ||
- | wd = r.search(" | ||
- | s = wd.group(0) # s == ' | ||
- | |||
- | t = r.findall(" | ||
- | #t == [' | ||
- | </ | ||
- | |||
- | </ | ||
- | <div slide> | ||
- | |||
- | === sub === | ||
- | |||
- | Замена подстрок(-и) удовлетворяющей выражению. | ||
- | |||
- | <sxh python> | ||
- | import re | ||
- | |||
- | r = re.compile(r" | ||
- | s = r.sub(" | ||
- | # s == ' | ||
- | </ | ||
- | |||
- | </ | ||
- | <div slide> | ||
- | |||
- | === split === | ||
- | |||
- | Разбиение строки по разделителю в виде регулярного выражения. | ||
- | |||
- | <sxh python> | ||
- | import re | ||
- | |||
- | r = re.compile(r" | ||
- | s = r.split(" | ||
- | # s == [' | ||
- | </ | ||
- | |||
- | </ | ||
- |