Шаг 25.
Основы языка Python.
Условные операторы и циклы. Оператор ветвления if...else

    На этом шаге мы рассмотрим назначение и особенности использования этого оператора.

    Оператор ветвления if...else позволяет в зависимости от значения логического выражения выполнить отдельный участок программы или, наоборот, не выполнить его. Оператор имеет следующий формат:

if <Логическое выражение>:
    <Блок, выполняемый, если условие истинно>
[elif <Логическое выражение>:
    <Блок, выполняемый, если условие истинно>
]
[else:
    <Блок, выполняемый, если все условия ложны>
]

    Как вы уже знаете, блоки внутри составной инструкции выделяются одинаковым количеством пробелов (обычно четырьмя пробелами). Концом блока является инструкция, перед которой расположено меньшее количество пробелов. В некоторых языках программирования логическое выражение заключается в круглые скобки. В языке Python это делать необязательно, но можно, т. к. любое выражение может быть расположено внутри круглых скобок. Тем не менее, круглые скобки следует использовать только при необходимости разместить условие на нескольких строках.

    Для примера напишем программу, которая проверяет, является введенное пользователем число четным или нет.

# -*- coding: utf-8 -*-
x = int (input ("Введите число: "))
if x % 2 == 0:
    print (x, " - четное число")
else:
    print (x, " - нечетное число")
input ()
Архив с файлом можно взять здесь.

    После проверки выводится соответствующее сообщение (рисунок 1):


Рис.1. Результат работы скрипта

    Если блок состоит из одной инструкции, то эту инструкцию можно разместить на одной строке с заголовком:

# -*- coding: utf-8 -*-
x = int (input ("Введите число: "))
if x % 2 == 0: print (x, " - четное число")
else: print (x, " - нечетное число")
input ()
Архив с файлом можно взять здесь.

    В этом случае концом блока является конец строки. Это означает, что можно разместить сразу несколько инструкций на одной строке, разделяя их точкой с запятой:

# -*- coding: utf-8 -*-
x = int (input ("Введите число: ") )
if x % 2 == 0: print (x, end=" "); print (" - четное число")
else: print (x, end=" "); print (" - нечетное число")
input ()
Архив с файлом можно взять здесь.

    Согласитесь, что следующий код читается намного проще, чем предыдущий:

# -*- coding: utf-8 -*-
x = int (input ("Введите число: ") )
if x % 2 == 0:
    print (x, end=" ")
    print (" - четное число")
else:
    print (x, end=" ")
    print (" - нечетное число")
input ()
Архив с файлом можно взять здесь.

    Оператор if...else позволяет проверить сразу несколько условий. Рассмотрим это на следующем примере:

# -*- coding: utf-8 -*-
print ("""Какой операционной системой вы пользуетесь?
1 - Windows 8
2 - Windows 7
3 - Windows Vista
4 - Windows XP
5 - Другая""")
os = input("Введите число, соответствующее ответу: ")
if os == "1":
    print ("Вы выбрали: Windows 8")
elif os == "2":
    print("Вы выбрали: Windows 7")
elif os == "3":
    print("Вы выбрали: Windows Vista")
elif os == "4":
    print("Вы выбрали: Windows XP")
elif os == "5":
    print("Вы выбрали: другая")
elif not os:    
    print("Вы не ввели число")
else:
    print ("Мы не смогли определить вашу операционную систему")
input ()
Архив с файлом можно взять здесь.

    С помощью инструкции elif мы можем определить выбранное значение и вывести соответствующее сообщение. Обратите внимание на то, что логическое выражение не содержит операторов сравнения:

elif not os:     .

    Такая запись эквивалентна следующей:

elif os == "":

    Проверка на равенство выражения значению True выполняется по умолчанию. Поскольку пустая строка интерпретируется как False, мы инвертируем возвращаемое значение с помощью оператора not.

    Один условный оператор можно вложить в другой. В этом случае отступ вложенной инструкции должен быть в два раза больше:

# -*- coding: utf-8 -*-
print ("""Какой операционной системой вы пользуетесь?
1 - Windows 8
2 - Windows 7
3 - Windows Vista
4 - Windows XP
5 - Другая""")
os = input ("Введите число, соответствующее ответу: ")
if os != "":
    if os == "1":
        print ("Вы выбрали: Windows 8")
    elif os == "2":
        print("Вы выбрали: Windows 7")
    elif os == "3":
        print("Вы выбрали: Windows Vista")
    elif os == "4":
        print("Вы выбрали: Windows XP")
    elif os == "5":
        print("Вы выбрали: другая")
    else:
        print("Мы не смогли определить вашу операционную систему")
else:
    print("Вы не ввели число")
input ()
Архив с файлом можно взять здесь.

    Оператор if...else имеет еще один формат:

<Переменная> = <Если истина> if <Условие> else <Если ложь>

    Пример:

>>> print ("Yes" if 10 % 2 == 0 else "No")
Yes
>>> s = "Yes" if  10 % 2 == 0  else "No"
>>> s
'Yes'
>>> s  = "Yes" if  11  %  2  ==  0 else "No"
>>> s
'No'

    На следующем шаге мы рассмотрим цикл for.




Предыдущий шаг Содержание Следующий шаг