Условный оператор IF

Условная инструкция (оператор) if-elif-else (её также называют оператором ветвления) – основной инструмент выбора в Python. Она выбирает, какое действие следует выполнить, в зависимости от значения переменных в момент проверки условия.

IF

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

if a:
   print(u'a — истина')

Мини программа “Сколько тебе лет?”. Листинг:

print("*" * 5, "Добро пожаловать!", "*" * 5)
age = int(input("Сколько тебе лет? "))
if age < 18:
    print("Извини, тебе нельзя использовать эту программу!")
    print("Когда тебе исполнится 18, будем рады тебя видеть!")
input() # пока пользователь не нажмет не выходить из программы
# int необходим т.к. пользователь вводит числовые данные

В данном примере пользователь вводит свой возраст. Далее программа сравнивает возраст (age) c 18. Если возраст меньше 18, то выводим сообщение о том, что использовать эту программу нельзя.

Операторы сравнения в Python:

  • < - Меньше
  • > - Больше
  • <= - Меньше или равно
  • >= - Больше или равно
  • == - Равно
  • != - Не равно

Условные операторы могут сравнивать не только числа, но и строки, например audi < bmw, поскольку audi находится по алфавиту раньше, чем bmw.

elif

Необязательная часть инструкции. Должна следовать за if, либо другой elif. Позволяет указать альтернативное условие, которое требуется проверить.

else

Необязательная заключительная часть инструкции. Должна следовать за if, либо elif.

Позволяет указать ветвь исполнения, которая должна быть активирована, если не подошли условия, указанные в предшествующих if и elif. Например:

if x < 0:
        print(u'Отрицательное число')
    elif x == 0:
        print(u'Нуль')
    elif x == 1:
        print(u'Единица')
    else:
        print(u'Другое положительное число')

Отредактируем нашу мини программу "Сколько тебе лет?". Если пользователю есть 18, тогда откроем ему доступ с помощью else. Листинг:

print("*" * 5, "Добро пожаловать!", "*" * 5)
age = int(input("Сколько тебе лет? "))
if age < 18:
    print("Извини, тебе нельзя использовать эту программу!")
    print("Когда тебе исполнится 18, будем рады тебя видеть!")
else:
    print("Доступ открыт!")
input()

Отступы в Python очень важный элемент. Отступ превращает код в блок. Блок - это одна или несколько идущих подряд строк с одинаковым отступом. Блок - единая конструкция.

На языке программирования php код выглядел бы так:

$age = 16;
if ($age < 18) {
    echo "Извини, тебе нельзя использовать эту программу!";
    echo "Когда тебе исполнится 18, будем рады тебя видеть!";
}
else {
    echo "Доступ открыт!";
}

В других языках программирования в скобках какие-либо отступы соблюдать не нужно, операторы разделяются точкой с запятой, а написать можно хоть в одну строчку (главное чтобы они были в фигурных скобках).

В Python нужно обязательно следить за отступами.

Общая форма оператора if выглядит так:

if условие:
  блок_который_будет_выполнен_если_условие_истинно
else:
  блок_который_будет_выполнен_если_условие_ложно

Несколько условий

Совместим все вышесказанное в одну программу:

a = int(input("Какую оценку ты получил по математике?"))

if a == 5:
   print("Молодец!")
elif a == 4:
   print("Хорошо!")
elif a == 3:
   print("Нужно лучше стараться!")
elif a <= 2:
   print("Неудачник!")
else:
   print("Такой оценки не существует!")
print("Удачи!")
input("Нажмите Enter для выхода")

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

else можно использовать, не смотря на наличие elif. Главное, чтобы else шла последней. Блок после else будет выполнен, только если не сработали другие условия и не были выполнены другие блоки кода.

Проверка истинности

  • Любое число, не равное 0, или непустой объект - истина;
  • Числа, равные 0, пустые объекты и значение None - ложь;
  • Операции сравнения применяются к структурам данных рекурсивно;
  • Операции сравнения возвращают True или False;
  • Логические операторы and и or возвращают истинный или ложный объект-операнд.

Логические операторы:

X and Y

Истина, если оба значения X и Y истинны.

X or Y

Истина, если хотя бы одно из значений X или Y истинно.

not X

Истина, если X ложно.

Программа "Тесты"

Напишем простую программу с использованием оператора IF. Листинг:

a = 0 # Оценка

# Выводим сообщение пользователю
print("""
      Сколько бит в одном байте
      1) 8
      2) 6
      3) 4
      4) 2
      """)
# Просим дать ответ
b = int(input("Ваш ответ: "))

# Если ответ равен одному, тогда к переменной a прибавить 1
if b == 1:
    a = a + 1

print("""
      Сколько байт в одном килобайте
      1) 1000
      2) 1024
      3) 1048
      4) 256
      """)
b = int(input("Ваш ответ: "))

if b == 2:
    a = a + 1

print("""
      Компания-разработчик Windows
      1) Apple
      2) Melkosoft
      3) Cybersoft
      4) Microsoft
      """)
b = int(input("Ваш ответ: "))

if b == 4:
    a = a + 1

print("""
      Компания-разработчик MacOS
      1) Apple
      2) Microsoft
      3) Fredd
      4) google
      """)
b = int(input("Ваш ответ: "))

if b == 1:
    a = a + 1

print("""
      Символом какой операционной системы является пингвин
      1) Linux
      2) FreeBSD
      3) MacOS
      4) Windows
      """)
b = int(input("Ваш ответ: "))

if b == 1:
    a = a + 1

# Вывести ответ пользователю из переменной a (максимальное значение 5)
print("Ваша оценка: ", a)

input("Нажмите Enter для выхода")

В программе отсутствует обработка исключение и поэтому если ввести не цифру, а строку, тогда будет ошибка и программа прекратит свою работу.

Вывод программы будет такой:


Условный оператор IF

В комментариях напишите улучшенный вариант данной программы.

 
Поделиться в facebook
Facebook
Поделиться в twitter
Twitter
Поделиться в vk
VK
Поделиться в google
Google+
Поделиться в email
Email

2 ответа к “Условный оператор IF”

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Группа в VK

Помощь проекту

Обнаружили опечатку?

Сообщите нам об этом, выделите текст с ошибкой и нажмите Ctrl+Enter, будем очень признательны!

Свежие статьи

Похожие статьи

Связи между моделями.

Связи между моделями.

В нашем проекте есть одна модель под названием “Объявления”. В этой статье мы создадим новый класс модели “Rubric”, которая будет представлять рубрики объявлений. Допишем в

 
Параметры полей и моделей.

Параметры полей и моделей.

Для того, чтобы наша административная панель Django выглядела более понятна для обычного пользователя необходимо указать правильные названия полей. Наша созданная модель представляется непонятной аббревиатурой “Bbs”,

 
Административный web-сайт Django.

Административный web-сайт Django.

Административный web-сайт предоставляет доступ ко всем моделям, объявленным во всех приложениях, что составляют проект. С помощью данной панели можно просматривать, добавлять, править и удалять записи,

 

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: