Условия и циклы в Python
В данном уроке мы познакомимся с условными операторами и циклами языка Python. Но сначала мы рассмотрим сравнительные и логические операции:
Сравнения
Как мы узнали в одном из предыдущих уроков, знак равенства используется в Python для присваивания. Для сравнения (проверки двух чисел на равенство) используется ==. Для проверки на неравенство используется != (читается как "не равно"). Также в Python существуют и другие сравнительные операции: > (больше), < (меньше), >= (больше или равно), <= (меньше или равно). Сравнительные операции вычисляются в булевы значения:
5 == 5 # True 5 != 5 # False 5 > 0 # True 5 < 6 # True 5 >= 5 # True 5 <= 4 # False
Логические операции
Логические операции используются для построения сложных логических высказываний. Всего существует три логические операции И, ИЛИ, НЕ. Примеры:
Солнце встаёт на востоке # истина Солнце встаёт НЕ на востоке # ложь Трава зелёная И небо синее # истина - оба высказывания правдивы Трава фиолетовая И небо синее # ложь - только одно из этих высказываний правдиво Трава фиолетовая ИЛИ небо синее # правда - одно из высказываний правдиво
НЕ меняет "правдивость" высказывания на противоположное.
ИЛИ является правдой, когда одна из частей этого высказывания является правдой.
И является правдой только когда оба высказывания являются правдой.
В Python логические операции представлены ключевыми словами not (не), and (и), or (или):
1 # True not 1 # False 0 # False not 0 # True (1 == 1) and (1 < 0) # False 0 or 1 # True
Условия (conditions) в Python
Условный оператор if (если) позволяет выполнить один вариант кода из нескольких, в зависимости от условия. Простейший случай оператора if:
if условие: # "код1" (здесь может быть несколько строк) # "продолжение"
В данном случае вариант "код1" будет выполнен только тогда, когда условие возвращает True. В этом случае сначала выполнится "код1", а потом интерпретатор начнёт выполнять "продолжение". Если же условие равно False, то будет выполнено сразу "продолжение". Т.е. данный вариант условного оператора if имеет только одну ветвь. Такой вариант используется, например, когда нужно сравнить два числа:
a = 3 b = 4 if a == b: # здесь расположен код, # который выполняется когда a и b равны
Более общий вариант if выглядит так:
if условие1: # ветвь1 elif условие2: # ветвь2 elif условие3: # ветвь3 else: # ветвь4
Обратите внимание, как в операторе if ставятся двоеточия - после каждого условия.
Блок elif (от else if - в противном случае, если) позволяет указать дополнительное условие ветвления if. Если условие1 равно False, Python проверяет условие2. Если условие2 равно False, проверяется следующее условие и т.д. Блоков elif может быть сколько угодно.
Блок else (в противном случае) выполняется, когда все предыдущие условия оказались ложными. Важно понимать, что из всех ветвей обязательно будет выполнена только одна. Если одно из условий окажется истинным, Python выполнит соответствующую ветвь, в противном случае будет выполнена ветвь относящаяся к else. Блоки elif и else являются необязательным, они могут отсутствовать.
Если два условия правдивы, то будет выполнена ветвь, которая находится выше.
Условные операторы могут иметь несколько уровней:
if условие1: if условие2: # ветвь1 else # ветвь2
Заметьте, что в данном случае блок else относится к if с условием2. В отличие от других языков программирования, в Python отступы имеют значение. Здесь мы по отступам наглядно видим, к какому if относится else.
Циклы в Python
В Python можно использовать два вида циклов: while (пока, до тех пор) и for (для). Цикл while более общий, а for - более специализированный.
Циклы предназначены для выполнения определённого участка кода много раз.
Цикл while
Цикл while выполняется до тех пор, пока его условие остаётся истинным:
while условие: # тело цикла # код после цикла
Если условие равно True, while будет выполнять тело цикла, пока условие не станет равным False. Вот пример бесконечного цикла:
i = 0 while True: i = i + 1
Условие этого цикла всегда True. В каждую итерацию переменная i увеличивается на единицу. В данном примере i будет расти "бесконечно". Давайте поставим условие: пусть цикл работает, пока i меньше 100:
i = 0 while i < 100: i = i + 1 print( i ) # выводим i после цикла
В данном случае цикл будет выполнен 100 раз. В последней итерации i примет значение 100 и при следующей проверке условие станет равным False.
При работе с циклом while нужно правильно написать условие продолжения цикла, чтобы цикл не стал бесконечным, хотя, в некоторых случаях бывает полезно иметь бесконечный цикл.
Цикл for
Цикл for позволяет пройти по всем элементам упорядоченных коллекций. for очень часто используется со списками, кортежами, словарями, а также со строками. В общем виде цикл for выглядит так:
for элемент in коллекция: # тело цикла
Цикл for последовательно берёт каждый элемент коллекции и присваивает его временной переменной. Эта переменная используется в теле цикла. Давайте посмотрим на пример:
a = [1,2,3] for x in a: print(x);
Цикл for выполнится три раза - для каждого элемента a. На экране мы увидим:
1 2 3
Заключение
Если вы знаете какой-нибудь другой язык программирования, то вам может показаться, что в Python циклы и ветвления примитивны. Но на самом деле это не так. Позже мы увидим, что for и while обладают иногда гораздо большими возможностями, чем циклы в других языках программирования.
Материал со страницы:
http://ru.about-prog.com/articles/python/loops_conditions
|