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('Совсем взрослый уже :(')

Примеры

  1. Четное нечетное.

    Выведите строку ‘четное’, если введенное число четно, и строку ‘нечетное’, если число нечетно.

    
    
    a = int(input())
    if a % 2 == 0:
        print('четное')
    else:
        print('нечетное')
    
    # Ввод
    >> 10
    # Вывод
    >> четное
    
    # Ввод
    >> 11
    # Вывод
    >> нечетное
    
    
  2. Много 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
    # Вывод
    >> Число меньше, чем шестидесяти
    
    
  3. Белая или черная.

    Пользователь вводит два числа: координаты шахматной клетки. Выведете цвет это клетки.

    Логика: если сумма координат четное число то это черная клетка, а если - нет, то белая. Не веришь? Загугли картинку доски и проверь сам ;)

    
    
    x = int(input('Введите координату x: '))
    y = int(input('Введите координату y: '))
    
    if (x + y) % 2 == 0:
        print('Черная')
    else:
        print('Белая')
    
  4. Белая или черная (случайные координаты)

    
    
    # Та же задача, но со случайными числами.
    # Координаты шахматной клетки выбираются случайным образом
    # Выведите цвет этой клетки.
    
    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('Белая')
    

Задачи

  1. Меньшее из двух

    Пользователь вводит два целых числа. Выведите меньшее из них.

    
    #Ввод
    >>> 2
    >>> 5
    
    #Вывод
    >>> 2
    
    
  2. Четырехзначное?

    Пользователь вводит целое число. Выведите YES, если это число является четырехзначным, и NO в противном случае.

    
    #Ввод
    >>> 12
    #Вывод
    >>> NO
    
    #Ввод
    >>> 1243
    #Вывод
    >>> YES
    
    
  3. Проверка на возраст.

    Узнать у пользователя год его рождения, если ему больше 18 лет вывести сообщения приветствия, если меньше то сообщения отказа в доступе. Месяц и день рождения не учитываем.

    
    #Ввод
    >>> 1990
    #Вывод
    >>> Старше 18
    
    #Ввод
    >>> 2010
    #Вывод
    >>> Младше 18
    
    
  4. Лагерь.

    В лагере есть 3 отряда для 3-6 “Заяц в лабиринте”, 7-12 “Марсианины”, 13-16 “Загадочный остров”. Пользователь вводит возраст ребенка, программа определяет в какой отряд попадет и вывод название отряда. Если ребенок старше 16 лет, то сказать об этом.

  5. Треугольник?

    Треугольник существует только тогда, когда сумма любых двух его сторон больше третьей. Дано a, b, c - стороны предполагаемого треугольника. Требуется сравнить длину каждого отрезка-стороны с суммой двух других. Если хотя бы в одном случае отрезок окажется больше суммы двух других, то треугольника с такими сторонами не существует.

    
    # Ввод:
    >> 3
    >> 4
    >> 5
    # Вывод:
    >> YES
    
    # Ввод:
    >> 3
    >> 10
    >> 5
    # Вывод:
    >> NO
    
  6. Время суток

    Пользователь вводит время в часах. Если введенное число находится между 5 и 11 часами включительно, выведите строку ‘ Утро’. Если число лежит в диапазоне от 12 до 17 часов включительно, выведите строку ‘День’. Если число находится между 18 и 22, то выведите ‘Вечер’. В случае поздней ночи (от 23 до 4 включительно) выведите ‘Ночь’. В остальных случаях выведите строку ‘Ошибка’.

    
    
    # Ввод:
    >> 3
    # Вывод:
    >> Ночь
    
    # Ввод:
    >> 6
    # Вывод:
    >> Утро
    
    # Ввод:
    >> 13
    # Вывод:
    >> День
    
    # Ввод:
    >> 2020
    # Вывод:
    >> Ошибка
    
    
  7. День недели

    Пользователь вводит номер дня недели. Выведите строку ‘Выходные’, если введенное число равно 6 или 7. В случае, если число лежит в диапазоне от 1 до 5 включительно, выведите строку ‘Будни’.

    
    
    # Ввод:
    >> 3
    # Вывод:
    >> Будни
    
    # Ввод:
    >> 6
    # Вывод:
    >> Выходные
    
  8. Описание числа

    Пользователь вводит целое число. Выведите его строку-описание вида “отрицательное четное число”, “ноль”, “ положительное нечетное число”, например, численным описанием числа 190 является строка “положительное четное число”.ш

    
    
    # Ввод:
    >> 1
    # Вывод:
    >> положительное нечетное число
    
    # Ввод:
    >> -6
    # Вывод:
    >> отрицательное четное число
    
    # Ввод:
    >> 0
    # Вывод:
    >> ноль
    
    # Ввод:
    >> 2
    # Вывод:
    >> положительное четное число
    
  9. Конь (финальный босс)

    Шахматный конь ходит буквой “Г” - на две клетки по вертикали в любом направлении и на одну клетку по горизонтали, или наоборот. Даны две различные клетки шахматной доски, определите, может ли конь попасть с первой клетки на вторую одним ходом. В случае, если хотя бы одно из введенных чисел не лежит в диапазоне от 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