Строки и байтовые строки
Долг за позапрошлую лекцию
max() и sorted() по ключу
Строки
- 4 способа задания строк
- строки как последовательности
- Особенности (повторение):
a[5] === a[5:6] (так ли это? )
- asd" in "qwasdgfh"
Строковые методы
endswith(), startswith(),
find(), index(), count(),
isalnum(), isalpha(), isdecimal(), isdigit(), isidentifier(), islower(), isnumeric(), isprintable(), isspace(), istitle(), isupper(),
center(), rjust(), ljust(),
lower(), upper(), swapcase(), title(), capitalize(), casefold(),
replace(),
strip(), expandtabs(),
zfill(),
rfind(), rindex(), rpartition(), rsplit(), rstrip(), lstrip(),
split() и join()
split(), splitlines(), join()
Форматные строки
(3.6+) f"строка"
- примеры
(3.8+) f"{выражение=}"
Метод .format()
Спецсимволы и необработанные строки
- Специмволы
r"..."
Байтовые строки и «массивы»
- bytes
- .encode()/.decode()
- bytearray
- бНОПНЯ!
Д/З
Прочитать и прощёлкать про строки в учебнике, в документации, а также про форматирование строк в учебнике и в документации.
Прочитать про bytes и bytearray в докумпентации
EJudge: TrimImage 'Обрезать картинку'
Вводятся строки, содержащие четыре целых числа и символ, разделённые пробелами. Код символа 32 < c < 128. Это абсцисса, ордината (ось ординат направлена вниз) некоторых точек, а также длина и ширина построенных на них прямоугольников, «нарисованных» с помощью указанных символов. Последняя строка начинается на четыре нуля (никаких трюков с -0 на этот раз ☺). Вывести наименьшую область, содержащюю все раскрашенные точки, нарисованные в порядке ввода прямоугольников. Область также прямоугольна и изначально заполнена символами '.'. Координаты и размеры могут быть отрицательны (в этом случае прямогуольник откладывается от исходной точки в противоположную сторону, а сама точка в него не попадает) или равны нулю.
1 2 10 10 * -2 -1 10 10 # 3 4 -10 10 @ 5 6 10 -10 % 0 0 0 0 0
............%%%%%%%%%% ............%%%%%%%%%% ............%%%%%%%%%% .....#######%%%%%%%%%% .....#######%%%%%%%%%% .....#######%%%%%%%%%% .....#######%%%%%%%%%% .....#######%%%%%%%%%% @@@@@@@@@@##%%%%%%%%%% @@@@@@@@@@##%%%%%%%%%% @@@@@@@@@@#####***.... @@@@@@@@@@#####***.... @@@@@@@@@@#####***.... @@@@@@@@@@********.... @@@@@@@@@@********.... @@@@@@@@@@********.... @@@@@@@@@@............ @@@@@@@@@@............
EJudge: MultTable 'Таблица умножения'
Ввести два натуральных числа через запятую: N и M. Вывести таблицу умножения от 1 до N включительно в формате, представленном ниже. Количество столбцов в выводе должно быть наибольшим, но общая ширина строки не должна превышать M (предполагается, что M достаточно велико, чтобы вместить один столбец). Ширина колонок под сомножители и произведения должна соответствовать максимальной ширине соответствующего значения (даже если в данной колонке данного столбца эта ширина не достигается, см. пример). Таким образом все столбцы должны быть одинаковой ширины, без учёта пробелов в конце строк, которых быть не должно. Разделители вида "===…===" должны быть ширины M.
11, 62
============================================================== 1 * 1 = 1 | 2 * 1 = 2 | 3 * 1 = 3 | 4 * 1 = 4 1 * 2 = 2 | 2 * 2 = 4 | 3 * 2 = 6 | 4 * 2 = 8 1 * 3 = 3 | 2 * 3 = 6 | 3 * 3 = 9 | 4 * 3 = 12 1 * 4 = 4 | 2 * 4 = 8 | 3 * 4 = 12 | 4 * 4 = 16 1 * 5 = 5 | 2 * 5 = 10 | 3 * 5 = 15 | 4 * 5 = 20 1 * 6 = 6 | 2 * 6 = 12 | 3 * 6 = 18 | 4 * 6 = 24 1 * 7 = 7 | 2 * 7 = 14 | 3 * 7 = 21 | 4 * 7 = 28 1 * 8 = 8 | 2 * 8 = 16 | 3 * 8 = 24 | 4 * 8 = 32 1 * 9 = 9 | 2 * 9 = 18 | 3 * 9 = 27 | 4 * 9 = 36 1 * 10 = 10 | 2 * 10 = 20 | 3 * 10 = 30 | 4 * 10 = 40 1 * 11 = 11 | 2 * 11 = 22 | 3 * 11 = 33 | 4 * 11 = 44 ============================================================== 5 * 1 = 5 | 6 * 1 = 6 | 7 * 1 = 7 | 8 * 1 = 8 5 * 2 = 10 | 6 * 2 = 12 | 7 * 2 = 14 | 8 * 2 = 16 5 * 3 = 15 | 6 * 3 = 18 | 7 * 3 = 21 | 8 * 3 = 24 5 * 4 = 20 | 6 * 4 = 24 | 7 * 4 = 28 | 8 * 4 = 32 5 * 5 = 25 | 6 * 5 = 30 | 7 * 5 = 35 | 8 * 5 = 40 5 * 6 = 30 | 6 * 6 = 36 | 7 * 6 = 42 | 8 * 6 = 48 5 * 7 = 35 | 6 * 7 = 42 | 7 * 7 = 49 | 8 * 7 = 56 5 * 8 = 40 | 6 * 8 = 48 | 7 * 8 = 56 | 8 * 8 = 64 5 * 9 = 45 | 6 * 9 = 54 | 7 * 9 = 63 | 8 * 9 = 72 5 * 10 = 50 | 6 * 10 = 60 | 7 * 10 = 70 | 8 * 10 = 80 5 * 11 = 55 | 6 * 11 = 66 | 7 * 11 = 77 | 8 * 11 = 88 ============================================================== 9 * 1 = 9 | 10 * 1 = 10 | 11 * 1 = 11 9 * 2 = 18 | 10 * 2 = 20 | 11 * 2 = 22 9 * 3 = 27 | 10 * 3 = 30 | 11 * 3 = 33 9 * 4 = 36 | 10 * 4 = 40 | 11 * 4 = 44 9 * 5 = 45 | 10 * 5 = 50 | 11 * 5 = 55 9 * 6 = 54 | 10 * 6 = 60 | 11 * 6 = 66 9 * 7 = 63 | 10 * 7 = 70 | 11 * 7 = 77 9 * 8 = 72 | 10 * 8 = 80 | 11 * 8 = 88 9 * 9 = 81 | 10 * 9 = 90 | 11 * 9 = 99 9 * 10 = 90 | 10 * 10 = 100 | 11 * 10 = 110 9 * 11 = 99 | 10 * 11 = 110 | 11 * 11 = 121 ==============================================================
EJudge: PatternFind 'Простой шаблон'
Ввести строку, содержащую произвольные символы (кроме символа «@»). Затем ввести строку-шаблон, которая может содержать символы '@'. Проверить, содержится ли в исходной строке подстрока, совпадающая со строкой-шаблоном везде, кроме символов '@'; на месте '@' в исходной строке должен стоять ровно один произвольный символ. Вывести наименьшую позицию в строке, с которой начинается эта подстрока, или '-1', если её там нет. Использовать регулярные выражения нельзя! ☺
lorem ipsum, quia dolor sit, amet, consectetur dolor @it,@@met
18