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

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

Цикл for

Кстати,

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

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

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

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

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

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

Колоды:

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

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

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

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

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

Д/З

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

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

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

  2. EJudge: HiddenText 'Скрытое послание'

    Ввести две строки и проверить, содержится ли вторая в первой, с учётом того, что символы второй строки могут находиться в первой на некотором равном расстоянии друг от друга. Вывести YES или NO.

    Input:

    q-We-Rt-Yu-Iweozzz
    WRYI
    Output:

    YES
  3. EJudge: FourSquares 'Четыре квадрата'

    Известно, что любое натуральное число можно представить в виде суммы не более чем четырех квадратов неотрицательных целых чисел (теорема Лагранжа). Ввести натуральное N⩽100000 и найти для него такие целые неотрицательные x,y,z и t, чтобы x²+y²+z²+t²=N. Вывести все такие четвёрки в следующем формате: x,y,z и t — через пробел, и упорядочены по убыванию, а сами четвёрки — лексикографически по возрастанию (без повторений).

    Input:

    100
    Output:

    5 5 5 5
    7 5 5 1
    7 7 1 1
    8 4 4 2
    8 6 0 0
    9 3 3 1
    10 0 0 0
  4. EJudge: PackedQueue 'Чудо-конвейер'

    Ввести последовательность объектов Python (только кортежей или целых чисел), и сымитировать работу Чудо-Конвейера. Если объект — кортеж, это означает, что на вход конвейеру подаются поочерёдно все объекты из этого кортежа. Если объект — натуральное число N, это означает, что с выхода конвейера надо снять поочерёдно N объектов, объединить их в кортеж и вывести. Если с конвейера нельзя снять N объектов, или в последовательности нет больше команд, Чудо-Конвейер немедленно останавливается.

    Input:

    ("QWE",1.1,234),2,(None,7),0,2,(7,7,7),2,(12,),(),3,(5,6),3,100500
    Output:

    ('QWE', 1.1)
    ()
    (234, None)
    (7, 7)
    (7, 7, 12)
  5. EJudge: HalfTranspose 'Недостранспонировали'

    Ввели N строк по N целых чисел (для удобства представлены тут цифрами). Полученную матрицу

    • 1234
      5678
      9012
      3456

    попытались «транспонировать на 45°» — получилось примерно так:

    •    1
        5 2
       9 6 3
      3 0 7 4
       4 1 8
        5 2
         6

    При этом способе поворота между числами образовались «пустые места» каждое размеров в одно число, размер матрицы увеличился до 2N-1 × 2N-1. Затем все числа «упали на свободные места под ними» — переместились до ближайшей незанятой ячейки:

    •    1
        562
       90173
      3456284

    Ввести построчно через запятую элементы исходной квадратной матрицы. Вывести построчно через запятую элементы получившейся матрицы (без учёта свободных ячеек)

    Input:

    1,2,3,4
    5,6,7,8
    9,0,1,2
    3,4,5,6
    Output:

    1
    5,6,2
    9,0,1,7,3
    3,4,5,6,2,8,4

LecturesCMC/PythonIntro2022/03_SequencesFor (last edited 2022-10-01 17:22:21 by FrBrGeorge)