Условный оператор
IF условие
Условный оператор выполняет то или иное действие в зависимости какой будет ответ. Если ответ ДА то выполняется действие1 или ответ НЕТ действие2. Главное при написание не забывать делать отступ в 4 пробела или TAB.
# Обратите внимание на отступ в четыре (4!) пробела
# или одну табуляцию (кнопка TAB)
if True: # Обязательное двоеточие перед блоком кода
print('Условие истинно, поэтому я напечатаюсь')
# Вывод
>> Условие истинно, поэтому я напечатаюсь
Если условие ложно, то код, находящийся под оператором if не выполнится.
# Обратите внимание на отступ в четыре (4!) пробела
# или одну табуляцию (кнопочка TAB)
if False: # Обязательное двоеточие перед блоком кода
print('Условие ложно, поэтому я не напечатаюсь')
# Вывод
>>
Однако мы можем прописать действие и ложное высказывание.
# Попробуйте поменять условия чтобы посмотреть, когда какие действия выполняются.
if 5>7:
print('Условие верно') # Действие если ДА
else:
print('Условие неверное')# Действие если НЕТ
# Вывод
>> Условие неверное
ELIF
Бывает такое, что двух вариантов недостаточно и нужно проверить больше условий. Для этого используется elif.
Если на условие в if age < 10 отвечаем нет, то переходим к следующему условию elif age < 18 и тут в зависимости от ответа вывод надпись.
age = int(input())
if age < 10:
print('Ваш возраст - это одна цифра :)')
elif age < 18:
print('Еще маленький')
else:
print('Совсем взрослый уже :(')
Примеры
-
Четное нечетное.
Выведите строку ‘четное’, если введенное число четно, и строку ‘нечетное’, если число нечетно.
a = int(input()) if a % 2 == 0: print('четное') else: print('нечетное') # Ввод >> 10 # Вывод >> четное # Ввод >> 11 # Вывод >> нечетное
-
Много ELIF’ов
Если в вашем коде много elif значит что-то не так и стоит придумать новый алгоритм. Это не значит, что так не будет работать или так делать нельзя, просто для этой задачи скорее всего есть другое решение.
a = int(input('Введите число от одного до 1 до 100')) if a < 10: print('Ваше число меньше 10') elif a < 20: print('Ваше число меньше двадцатки') elif a < 30: print('30 - это потолок') elif a < 40: print('Ваше число меньше 40') elif a < 50: print('Много, но не больше полтинника') elif a < 60: print('Число меньше, чем шестьдесят') elif a < 70: print('Ваше число расположено в восьмом десятке') elif a < 80: print('Ваше число меньше 80') elif a < 90: print('Ваше число находится в 9 десятке') elif a < 100: print('Сотня больше вашего числа') else: print('Хитро, но меня не обманешь, число слишком большое') # Ввод >> 11 # Вывод >> Ваше число меньше двадцатки # Ввод >> 91 # Вывод >> Сотня больше вашего числа # Ввод >> 58 # Вывод >> Число меньше, чем шестидесяти
-
Белая или черная.
Пользователь вводит два числа: координаты шахматной клетки. Выведете цвет это клетки.
Логика: если сумма координат четное число то это черная клетка, а если - нет, то белая. Не веришь? Загугли картинку доски и проверь сам ;)
x = int(input('Введите координату x: ')) y = int(input('Введите координату y: ')) if (x + y) % 2 == 0: print('Черная') else: print('Белая')
-
Белая или черная (случайные координаты)
# Та же задача, но со случайными числами. # Координаты шахматной клетки выбираются случайным образом # Выведите цвет этой клетки. from random import randint # импортирование функции randint x = randint(1,8) # функция randint вернет случайное число от 1 до 8 y = randint(1,8) print(x, y) # вывод пары случайных чисел if (x + y) % 2 == 0: print('Черная') else: print('Белая')
Задачи
-
Меньшее из двух
Пользователь вводит два целых числа. Выведите меньшее из них.
#Ввод >>> 2 >>> 5 #Вывод >>> 2
-
Четырехзначное?
Пользователь вводит целое число. Выведите YES, если это число является четырехзначным, и NO в противном случае.
#Ввод >>> 12 #Вывод >>> NO #Ввод >>> 1243 #Вывод >>> YES
-
Проверка на возраст.
Узнать у пользователя год его рождения, если ему больше 18 лет вывести сообщения приветствия, если меньше то сообщения отказа в доступе. Месяц и день рождения не учитываем.
#Ввод >>> 1990 #Вывод >>> Старше 18 #Ввод >>> 2010 #Вывод >>> Младше 18
-
Лагерь.
В лагере есть 3 отряда для 3-6 “Заяц в лабиринте”, 7-12 “Марсианины”, 13-16 “Загадочный остров”. Пользователь вводит возраст ребенка, программа определяет в какой отряд попадет и вывод название отряда. Если ребенок старше 16 лет, то сказать об этом.
-
Треугольник?
Треугольник существует только тогда, когда сумма любых двух его сторон больше третьей. Дано a, b, c - стороны предполагаемого треугольника. Требуется сравнить длину каждого отрезка-стороны с суммой двух других. Если хотя бы в одном случае отрезок окажется больше суммы двух других, то треугольника с такими сторонами не существует.
# Ввод: >> 3 >> 4 >> 5 # Вывод: >> YES # Ввод: >> 3 >> 10 >> 5 # Вывод: >> NO
-
Время суток
Пользователь вводит время в часах. Если введенное число находится между 5 и 11 часами включительно, выведите строку ‘ Утро’. Если число лежит в диапазоне от 12 до 17 часов включительно, выведите строку ‘День’. Если число находится между 18 и 22, то выведите ‘Вечер’. В случае поздней ночи (от 23 до 4 включительно) выведите ‘Ночь’. В остальных случаях выведите строку ‘Ошибка’.
# Ввод: >> 3 # Вывод: >> Ночь # Ввод: >> 6 # Вывод: >> Утро # Ввод: >> 13 # Вывод: >> День # Ввод: >> 2020 # Вывод: >> Ошибка
-
День недели
Пользователь вводит номер дня недели. Выведите строку ‘Выходные’, если введенное число равно 6 или 7. В случае, если число лежит в диапазоне от 1 до 5 включительно, выведите строку ‘Будни’.
# Ввод: >> 3 # Вывод: >> Будни # Ввод: >> 6 # Вывод: >> Выходные
-
Описание числа
Пользователь вводит целое число. Выведите его строку-описание вида “отрицательное четное число”, “ноль”, “ положительное нечетное число”, например, численным описанием числа 190 является строка “положительное четное число”.ш
# Ввод: >> 1 # Вывод: >> положительное нечетное число # Ввод: >> -6 # Вывод: >> отрицательное четное число # Ввод: >> 0 # Вывод: >> ноль # Ввод: >> 2 # Вывод: >> положительное четное число
-
Конь (финальный босс)
Шахматный конь ходит буквой “Г” - на две клетки по вертикали в любом направлении и на одну клетку по горизонтали, или наоборот. Даны две различные клетки шахматной доски, определите, может ли конь попасть с первой клетки на вторую одним ходом. В случае, если хотя бы одно из введенных чисел не лежит в диапазоне от 1 до 8, выведите строку “ Ошибка!”.
Пример решения
x1 = int(input('Ведите координату X1 - ')) y1 = int(input('Ведите координату Y1 - ')) x2 = int(input('Ведите координату X1 - ')) y2 = int(input('Ведите координату Y1 - ')) # Проверяем подходят ли координаты под if (x1 <= 8 and y1 <= 8 and x2 <= 8 and y2 <= 8) and (x1 >= 1 and y1 >= 1 and x2 >= 1 and y2 >= 1): if y2 == y1 + 2 or y2 == y1 - 2: # Если конь пошел вперед или назад по координате Y на 2 клетки # То по горизонтали (X) он может на одну клетку if x2 == x1 + 1 or x2 == x1 - 1: print('Yes') elif x2 == x1 + 2 or x2 == x1 - 2: # Если конь не пошел вперед или назад (Y), # Значит пошел влево или вправо по X на 2 клетки # То по вертикале (Y) он может на одну клетку if y2 == y1 + 1 or y2 == y1 - 1: print('Yes') else: # Если ни одно условие не выполнилось, # Значит конь попасть туда не может print('No') else: # Если координаты лежат не в диапазон от 1 до 8 print('Error')
# Ввод: >> 1 # координата x1 >> 1 # координата y1 >> 2 # координата x2 >> 2 # координата y2 # Вывод: >> NO # Ввод: >> 1 # координата x1 >> 1 # координата y1 >> 3 # координата x2 >> 2 # координата y2 # Вывод: >> YES # Ввод: >> 3 # координата x1 >> 8 # координата y1 >> 2 # координата x2 >> 6 # координата y2 # Вывод: >> YES # Ввод: >> 3 # координата x1 >> 4 # координата y1 >> 5 # координата x2 >> 6 # координата y2 # Вывод: >> NO