Строки и байтовые строки

Долг за позапрошлую лекцию

Строки

Строковые методы

Базовая статья

split() и join()

Форматные строки

Базовая статья

Спецсимволы и необработанные строки

Байтовые строки и «массивы»

Д/З

  1. Прочитать и прощёлкать про строки в учебнике, в документации, а также про форматирование строк в учебнике и в документации.

  2. EJudge: TrimImage 'Обрезать картинку'

    Вводятся строки, содержащие четыре целых числа и символ, разделённые пробелами. Код символа 32 < c < 128. Это абсцисса, ордината (ось ординат направлена вниз) некоторых точек, а также длина и ширина построенных на них прямоугольников, «нарисованных» с помощью указанных символов. Последняя строка начинается на четыре нуля (никаких трюков с -0 на этот раз ☺). Вывести наименьшую область, содержащюю все раскрашенные точки, нарисованные в порядке ввода прямоугольников. Область также прямоугольна и изначально заполнена символами '.'. Координаты и размеры могут быть отрицательны (в этом случае прямогуольник откладывается от исходной точки в противоположную сторону, а сама точка в него не попадает) или равны нулю.

    Input:

    1 2 10 10 *
    -2 -1 10 10 #
    3 4 -10 10 @
    5 6 10 -10 %
    0 0 0 0 0
    Output:

    ............%%%%%%%%%%
    ............%%%%%%%%%%
    ............%%%%%%%%%%
    .....#######%%%%%%%%%%
    .....#######%%%%%%%%%%
    .....#######%%%%%%%%%%
    .....#######%%%%%%%%%%
    .....#######%%%%%%%%%%
    @@@@@@@@@@##%%%%%%%%%%
    @@@@@@@@@@##%%%%%%%%%%
    @@@@@@@@@@#####***....
    @@@@@@@@@@#####***....
    @@@@@@@@@@#####***....
    @@@@@@@@@@********....
    @@@@@@@@@@********....
    @@@@@@@@@@********....
    @@@@@@@@@@............
    @@@@@@@@@@............
  3. EJudge: MultTable 'Таблица умножения'

    Ввести два натуральных числа через запятую: N и M. Вывести таблицу умножения от 1 до N включительно в формате, представленном ниже. Количество столбцов в выводе должно быть наибольшим, но общая ширина строки не должна превышать M (предполагается, что M достаточно велико, чтобы вместить один столбец). Ширина колонок под сомножители и произведения должна соответствовать максимальной ширине соответствующего значения (даже если в данной колонке данного столбца эта ширина не достигается, см. пример). Таким образом все столбцы должны быть одинаковой ширины, без учёта пробелов в конце строк, которых быть не должно. Разделители вида "===…===" должны быть ширины M.

    Input:

    11, 62
    Output:

    ==============================================================
     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
    ==============================================================
  4. EJudge: PatternFind 'Простой шаблон'

    Ввести строку, содержащую произвольные символы (кроме символа «@»). Затем ввести строку-шаблон, которая может содержать символы '@'. Проверить, содержится ли в исходной строке подстрока, совпадающая со строкой-шаблоном везде, кроме символов '@'; на месте '@' в исходной строке должен стоять ровно один произвольный символ. Вывести наименьшую позицию в строке, с которой начинается эта подстрока, или '-1', если её там нет. Использовать регулярные выражения нельзя! ☺

    Input:

    lorem ipsum, quia dolor sit, amet, consectetur
    dolor @it,@@met
    Output:

    18

LecturesCMC/PythonIntro2019/06_StringsAndBytes (last edited 2019-10-25 10:38:23 by FrBrGeorge)