Последовательности и цикл for

Операции над объектами как совокупность методов

Цикл for

Кстати,

Последовательности

Операции над последовательностями

Константные последовательности на примере кортежа

Cтрока (введение)

Списки — модифицируемые последовательности

Имеют метод .__setitem__()

Колоды:

Имитация многомерных структур данных

Соиспользование связанных объектов

Отсутствие «подковёрного» копирования

Вычислимые последовательности

Значения не хранятся, а вычисляются .__getitem__()-ом

Д/З

Напоминалка:

Собственно задание:

  1. Прочитать и прощёлкать тьюториалпро цикл for)

  2. EJudge: ShuffleString 'Перетасованная строка'

    Ввести построчно две строки длиной не более 2222 символов и проверить, есть ли такое число n, что вторая строка получается из первой, если сначала взять каждый n-й символ, затем — каждый n-й, начиная с первого и т. д. до каждого n-го, начиная с n-1-го. Вывести наименьшее возможное n, а если такого числа нет — No.

    • Предполагается простой алгоритм перебором — см. ограничение на размер
    • Возможно, потребуется конструкция "".join(последовательность строк), которая склеивает последовательность строк в одну

    • {*} (необязательно) Постарайтесь уложиться в 7 или менее строк

    qwertyuif
    qruwtieyf
    Input:

    qwertyuif
    qruwtieyf
    Output:

    3
  3. EJudge: DiagonalDigits 'Цифры по диагонали'

    Ввести целые M и N (0 ⩽ M, N ⩽ 1000), вывести последовательность 0 1 2 3 4 5 6 7 8 9 0 1 2 3 … в виде прямоугольной матрицы N×M, заполненной из верхнего левого угла по следующему правилу:

    • На каждом шаге заполняется очередная диагональ матрицы с одинаковой суммой координат
    • Диагонали заполняются поочерёдно сверху вниз и снизу вверх (таким образом формируется непрерывный «путь» из верхнего левого угла в правый нижний)
    Input:

    6, 5
    Output:

    0 2 3 9 0 9
    1 4 8 1 8 0
    5 7 2 7 1 6
    6 3 6 2 5 7
    4 5 3 4 8 9
  4. EJudge: FindRect 'Морской бой'

    Ввести несколько строк одинаковой длины, состоящих из символов «#» и «.». Ввод заканчивается пустой строкой. На получившемся поле изображены только прямоугольники, причём они не соприкасаются даже углами. Вывести количество этих прямоугольников.

    Input:

    ###.....#.
    ###.##..#.
    ....##....
    ....##..#.
    ..........
    ..........
    ####..####
    ......####
    ......####
    Output:

    6
  5. EJudge: UniInterval 'Объединение отрезков'

    Вводится кортеж пар натуральных чисел. Это координаты отрезков на прямой. Рассмотрим объединение этих отрезков и найдём длину этого объединения (т. е. совокупную длину всех «закрашенных» нашими отрезками отрезков на прямой).

    Input:

    (66, 91), (152, 230), (21, 81), (323, 342), (158, 211), (286, 332), (294, 330), (18, 58), (183, 236)
    Output:

    213
    • При подготовке последнего теста использовался графический редактор GIMP и формат XPM :)

LecturesCMC/PythonIntro2023/03_SequencesFor (последним исправлял пользователь Veniamin 2023-12-10 12:57:41)