Командный интерпретатор; простые типы данных; управление ходом выполнения

Видеолекции: 1, 2

История Python. Командная строка

Работа в командной строке

Настройка командной строки

Логические операции, операторы ветвления и цикла

Неявная динамическая типизация в Python

  1. Любые функции (методы) применимы к любым объектам
    • Если в процессе выполнения происходит обращение к несуществующему объекту (полю), активизируется исключение
  2. Проверка существования объекта (поля) происходит в момент обращения к енму
  3. (дополнительно) Все операции над объектами (типа +, [ , () и т. п.) — спецметоды объектов

Логические выражения

Множественное присваивание

Конструкции типа a,b,c=d,e,f=1,2,"". Атомарность множественного присваивания и a,b=b,a

Условный оператор и операторы цикла

Д/З

Задачи и упражнения:

  1. (domari:SecondMax) Найти второй максимум

    Ввести список и вывести второй максимум этого списка, т. е. элемент a∈S : ∃ b∈S : b>a и a⩾c ∀c∈S, c≠b. Если второго максимума нет, вывести NO.

    Input:

    3,4,5,6,7
    Output:

    6
  2. (domari:Else) Точки в круге

    В первой строке ввести координаты центра круга и его радиус (три числа через запятую). Во второй строке ввести координаты точек (чётное количество чисел через запятую). Вывести YES, если все точки принадлежат кругу и NO, если не все.

    Input:

    0,0,10
    1,2,3,4,5,6,5,4,3,2
    Output:

    YES
  3. (domari:ParallelSegments) Параллельные отрезки

    Ввести восемь чисел через запятую — целочисленные координаты 4-х попарно несовпадающих точек A1, A2, A3 и A4: X1, Y1, X2, Y2, X3, Y3, X4, Y4. Вывести YES, если прямая A1A2 параллельна прямой A3A4 (или совпадает с ней), и NO — если не параллельна.

    Input:

    1,2,7,14,8,8,18,28
    Output:

    YES
  4. (domari:SectionShuffle) Перетасовать кортеж

    Ввести последовательность A объектов Python через запятую и вывести кортеж, состоящий из элементов последовательности, стоящих на чётных местах — в обратном порядке (включая A[0]), после которых идут элементы последовательности, стоящие на нечётных местах.

    Input:

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

    (10, 8, '6', 4, 2, '0', 1, '3', 5, 7, '9', 11)
  5. (domari:Labyrinth) Обход лабиринта

    Ввести заданный построчно лабиринт размером N×N. Каждая из N строк ввода содержит N символов: «.» — проходимый участок и «#» — непроходимый. Левый верхний и правый нижний участки лабиринта проходимы. С одного проходимого участка можно попасть на соседний либо по вертикали, либо по горизонтали. Проверить, можно ли попасть из левого верхнего участка в правый нижний, и вывести YES, если можно, и NO, если нельзя.

    Input:

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

    YES


CategoryClass

Lectures/PythonIntro/2015-03-02 (последним исправлял пользователь Class1 2015-03-17 14:55:03)