Оператор условия и выбора
Разумеется, одними только последовательными действиями в программировании не обойтись, поэтому при написании алгоритмов используется еще и ветвление:
>if a > b:
> c = a
>else:
> c = b
Этот кусок кода на Python интуитивно понятен каждому, кто помнит, что >if
по–английски значит «если», а >else
— «иначе». Оператор ветвления имеет в данном случае две части, операторы каждой из которых записываются с отступом вправо относительно оператора ветвления. Более общий случай — оператор выбора — можно записать с помощью следующего синтаксиса (пример вычисления знака числа):
>if a < 0:
> s = -1
>elif a == 0:
> s = 0
>else:
> s = 1
Стоит заметить, что >elif
— это сокращенный >else if
. Без сокращения пришлось бы применять вложенный оператор ветвления:
>if a < 0:
> s = -1
>else:
> if a == 0:
> s = 0
> else:
> s = 1
В отличие от оператора >print
, оператор >if–else
— составной оператор.
Третьей необходимой алгоритмической конструкцией является цикл. С помощью цикла можно описать повторяющиеся действия. В Python имеются два вида циклов: цикл ПОКА (выполняется некоторое действие) и цикл ДЛЯ (всех значений последовательности). Следующий пример иллюстрирует цикл ПОКА на Python:
>s = "abcdefghijklmnop"
>while s != "":
> print s
> s = s[1: -1]
Оператор while говорит интерпретатору Python: «пока верно условие цикла, выполнять тело цикла». В языке Python тело цикла выделяется отступом. Каждое исполнение тела цикла будет называться итерацией. В приведенном примере убирается первый и последний символ строки до тех пор, пока не останется пустая строка.
Для большей гибкости при организации циклов применяются операторы >break
(прервать) и >continue
(продолжить). Первый позволяет прервать цикл, а второй — продолжить цикл, перейдя к следующей итерации (если, конечно, выполняется условие цикла).
Следующий пример читает строки из файла и выводит те, у которых длина больше 5:
>f = open("file.txt", "r")
>while 1:
> l = f.readline()
> if not l:
> break
> if len(l) > 5:
> print l,
> f.close()
В этом примере организован бесконечный цикл, который прерывается только при получении из файла пустой строки (>l
), что обозначает конец файла.
В языке Python логическое значение несет каждый объект: нули, пустые строки и последовательности, специальный объект >None
и логический литерал>False
имеют значение «ложь», а прочие объекты значение «истина». Для обозначения истины обычно используется