test_number = 10
if test_number % 2 == 0:
print("Число четное")
else:
print("Число нечетное")Число четное
В науке об алгоритмах выделяют три базовые алгоритмические конструкции, с помощью которых можно записать любую последовательность действий: следование, ветвление и цикл. Следование представляет из себя последовательность инструкций, выполняемых поочередно, одна за другой. Такой тип конструкции уже пройден. Ветвление представляет из себя несколько различных сценариев (последовательности команд), которые запускаются, если соблюдено некоторое условие. Цикл - это повторение некоторой последовательности действий либо заданное количество раз, либо пока соблюдается некоторое условие. Примеры схем этих конструкций представлена на Figure 7.1, Figure 7.2, Figure 7.3.
Синтаксис условия представлен в Listing 7.1.
if condition:
action1
action2
elif condition1:
action3
elif condition2:
action4
else:
action5Обратите внимание, что тело условия (код, который выполняется при соблюдении условия) остоит на некоторое количество отступов от самого условия!
После каждого объявления - синтаксической конструкции, заканчивающиеся двоеточием, нижележащий код должен отстоять от него на фиксированное количество отступов. Обычно это либо 1 знак табуляции, либо 4 пробела. Среды разработки, как правило, следят за этим нюансом.Этот нюанс крайне важен, так как только так интерпретатор понимает, где начинается и где заканчивается тело условия, цикла или других конструкций. Чтобы закончить условие вам нежно просто начать писать код на прежнем уровне отступа от левого края. Причем количество отступов должно быть везде одинаково. В других языках прогрммирование отступы от левого края служат всего лишь рекомендацией по форматированию кода для удобства чтения. В Python это синтаксическая необходимость.
Приведем пример программы, определяющую четность числа.
test_number = 10
if test_number % 2 == 0:
print("Число четное")
else:
print("Число нечетное")Число четное
Как можете заметить, в данном случае блок elif отсутствует, как и может отсутствовать блок else. Логическое высказывание может содержать арифметические и прочие операции, результат которых вычисляется в момент проверки условия.
С версии Python 3.10 появился альтернативный способ записи условий, который применим, когда необходимо проверить одну переменную и в зависимости от её значение выполнить определенные действия. Разберем синтаксис на конкретном примере Listing 7.2.
match value:
case "load":
load()
case "save":
save()
case _:
default()После ключевого слова match идет имя проверяемой переменной или проверяемое выражение и двоеточие. Затем на один уровень отступа перечисляются варианты (ключевое слово case и двоеточие). Затем на ещё один уровень отступа перечисляются действия. case _ - конструкция, предназначенная для записи действий, когда не выполнилось ни одно из условий. Такая конструкция является гибкой в настройке и может проверять не только на равенство, но и на подчинение некоторому паттерну. Несмотря на то, что любое выражение match-case можно записать в виде if-else, в некоторых случаях match-case может быть более читаемым. Но следует помнить, что match-case в Python появился сравнительно недавно и более старые версии интерпретатора её не поддерживают.
В науке об алгоритмах выделяют три типа циклов:
Параметрический цикл (цикл с счётчиком) - цикл выполняется строго определенное количество раз
Непараметрический цикл (цикл по условию)
Цикл с предусловием - проверка соблюдения условия выполняется перед каждым выполнением тела цикла
Цикл с постусловием - проверка соблюдения условия выполняется после каждого выполнения тела цикла
Одно выполнение тела цикла называют итерацией.
В других языках программирования счётчик - целочисленная переменная, указывающая на номер итерации. В питоне цикл с счетчиком служит для перебирания какого-либо итерируемого типа данных (т.е. типа данных, состоящего из нескольких простых типов данных, таких как числа, строки). Счетчик указывает не на номер итерации, а на текущее значение перебираемого элемента. В других языках такой цикл называется for-each (для каждого элемента). Пример показан на Listing 7.3. Допустим, у нас есть корзина с шарами разного цвета. В корзине может быть неизвестное нам заранее количество шаров и всегда переменное их количество, поэтому мы не можем просто взять и вывести их цвет написав функцию print несколько раз. Зато это может сделать цикл.
basket = ["black", "white","green", "red", "blue"]
for ball in basket:
print(ball)Синтаксис цикла - for iterator in iterable_variable:
Для генерации числовых последовательностей используйте функцию range. Она работает в трёх режимах:
range(end) - от 0 до end, не включая end, с шагом 1.
range(start, end) - от start до end, не включая end, с шагом 1.
range(start, end, step) - от start до end, не включая end, с шагом step.
Python всегда работает с полуоткрытыми интервалами, чтобы при последовательной работе с ними не возникало пересечений.
Выведем нечетные числа от 1 до 10.
for i in range(1,10,2):
print(i)1
3
5
7
9
Выведем нечетные числа от 1 до 10.
Бывают возникают ситуации, когда точное количество итераций невозможно предсказать, а цикл должен продолжаться до наступления какого-либо условия. Есть две стратегии: проверять наступление условия до начала новой итерации и после завершения итерации. Такие циклы называются с предусловием и с постусловием. Разница между ними в том, что цикл с постусловием обязательно выполниться хотя бы один раз. Такой цикл редко когда бывает нужен, поэтому в питоне есть только цикл с предусловием. Пример показан на Listing 7.4. Пока сумма чисел меньше 20, мы будем увеличивать i на 1.
sum = 0
i = 0
while sum < 20:
i += 1
sum += iОбратите внимание. что в теле цикла обязательно должна быть такая операция, которое изменяет переменные в условии завершения цикла или завершает цикл. Иначе цикл будет совершаться бесконечно и программа зависнет. Следите за тем, чтобы цикл имел условие выхода, особенно если ваше условие всегда истинно.
Бывает, что по некоторому условию надо либо прервать итерацию, либо завершить выполнение цикла. Для этого существуют два оператора
break - досрочное завершение выполнения цикла
continue - досрочное завершение выполнения итерации, т.е. цикл не завершается, а переходит к следующему значению.
Приведем пример, например мы хотим, чтобы на экран выводились только четные числа в числовой последовательности range(1,20,3). Внимание, приведенный код служит всего лишь иллюстрацией использования оператора и решение задачи записывается проще.
for i in range(1,20,3):
if i % 2 != 0:
continue
else:
print(i)4
10
16
Для решения задач запрещено использовать непройденный материал
Входные данные Программа получает на вход три натуральных числа: x, p, y (по одному числу в строке).
Выходные данные Программа должна вывести одно целое число.
Входные данные Вводится последовательность натуральных чисел, оканчивающаяся числом 0 (само число 0 в последовательность не входит, а служит как признак ее окончания).
Выходные данные Выведите ответ на задачу