Глава 1. Введение в программирование Python
Python является регистрозависимым и строкозависимым языком. Для объединения команд не используются фигурные скобки или какие-либо ключевые слова – в Python зависимость команд определяется фиксированными отступами от начала строки.
Рассмотрим пример кода, реализующего поиск простых чисел (чисел, которые делятся только на единицу и на самих себя):
В этом алгоритме используются два цикла while : первый включает в себя строки с 4 по 12, второй, вложенный в первый, содержит строки с 7 по 11. Отступы (по умолчанию 4 пробела) позволяют точно идентифицировать блоки команд и, одновременно, красиво оформить текст программы.
Блок операторов внутри конструкции if (строки 8-10) также определён с помощью отступов. Для второго условия if , содержащего всего одну команду, можно обойтись без отступов (строка 12). Но двоеточие, разграничивающее условие и выполняемое действие является обязательным (строки 4, 7, 8, 12).
Точка с запятой после команд не нужна, но может использоваться в качестве разделителя команд, если они написаны на одной строке.
Python является языком с достаточно строгой динамической типизацией. В частности, числа в Python представлены классами int (длинные целые), float (вещественные) и complex (комплексные). Явное объявление типа переменной отсутствует. При выполнении программы переменная может получить или изменить тип в зависимости от присвоенного значения. Значения логического типа True и False соответствуют целочисленным значениям 1 и 0.
Перепишите код, земенив 8-ю строку на конструкцию if not(i%j):
Можно избавиться и от переменной prime: следующий пример выглядит гораздо короче, но работать будет аналогично предыдущему:
Внешний цикл реализован с помощью конструкции for.
В языке Python цикл for всегда реализует перебор элементов некоторого набора, указанного после ключевого слова in. Например, это может быть список. В данном случае такую структуру создаёт функция range - в качестве аргументов функции заданы начало и конец целочисленной последовательности (шаг по умолчанию равен единице).
Конструкция else в строке 6 относится не к оператору if (для оператора if в данном контексте она не нужна), а к оператору while и означает выполнение действия только в случае, если цикл был завершён «корректно», т.е. без использования break.
И, наконец, пример короткой, самой быстрой из предложенных и специфичной именно для Python реализации алгоритма поиска простых чисел:
Здесь нам потребовалось импортировать модуль математических функций (строка 1) import math, из которой понадобился корень квадратный для более корректного ограничения перебираемых делителей. Поскольку, кроме числа 2, других чётных чисел среди простых нет, функция range выдаст нам только нечётные числа (третий аргумент – шаг). Конструкция if all проверяет каждый элемент последовательности на выполнение указанного условия, а сама последовательность значений формируется с помощью генератора списка for в строке 3.
Если вы заметили неточность, ошибку или хотите поделиться своими мыслями по поводу статьи - мы рады обратной связи. Давайте вместе сделаем ресурс лучше!