Ну что ж, друзья, если вы добрались до третьего урока, я горжусь вами. В прошлом уроке мы разобрали, как работать с условиями в Python. Готовы усложнить задачу? Отлично! Сегодня вас ждут условные операторы языка Python. А точнее сказать, сложные условия.
Условные операторы языка Python — сложные условия
Например, нам нужно проверить: есть ли какое-то слово (а может, даже словосочетание) в строке. В этой непростой, на первый взгляд, задаче нам поможет ключевое слово in. Это так называемый оператор вхождения. Оператор возвращает значение true, если проверяемое слово входит в состав другого элемента и false, если не входит. Опробуем на примере? Допустим, есть список гостей: Миша, Даша, Петя, Соня. Программа спрашивает: «Как Вас зовут?» Если вы введёте имя, которое входит в этот список, программа поприветствует вас, как гостя. В противном случае, «не пропустит». Посмотрите на код:
1 2 3 4 5 6 |
guest = 'Миша, Даша, Петя, Соня' x = input ('Здравствуйте! Как Вас зовут?') if x in guest: print ('Добро пожаловать!') else: print ('Извините, но Вас нет в списках') |
Освоив то, как работают условные операторы языка Python, можно написать целую игру. Такие появились в 1975 году и остались популярными даже с появлением графических видеоигр. Речь идёт о текстовых квестах, и вы уже можете создать свой собственный! Попробуйте набрать (именно набрать, а не скопировать!) этот код в своей среде разработки и запустить. А потом попробовать изменить сценарий.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
print ('Вы очнулись на космическом корабле. Вы не понимаете, что происходит. Ваши действия?') x = input ('Введите 1, чтобы связаться с Землёй, 2 - чтобы осмотреть корабль...') if x == '1': print ('Земля не отвечает, в эфире помехи и непонятные обрывки слов...') y = input ('Введите 1, чтобы подать сигналы SOS, 2 чтобы нажать большую красную кнопку') if y == '1': print ('После долгого ожидания Ваш сигнал был услышан, и за Вами отправилась команда спасения') else: print ('Нажав кнопку, вы отправили в сторону родной планеты чудовищную ракету. Земля уничтожена.') else: print ('Все каюты на корабле пусты. Вы один-одинёшенек, не умея управлять кораблём.') y = input ('Введите 1, чтобы попробовать включить автопилот, 2, чтобы подать сигнал SOS') if y == '1': print ('После включения автопилота Вы отправились в неизвестном направлении. Но вскоре поняли, что гибель от голода неминуема.') else: print ('После долгого ожидания, ваш сигнал будет услышан, и за Вами отправилась команда спасения') |
Условные операторы языка Python — усложняем задачу
Что ж, команду or мы уже разобрали на прошлом уроке. А что, если нам нужно проверить обратное условие? То есть, «если НЕ». А если потребуется использовать несколько условий прямо в одном операторе? Хорошие новости: для этого не потребуется никаких «костылей». Для этого есть команды not и and. Давайте я продемонстрирую их работу на примере: программа спрашивает студента, какую оценку он получил на экзамене. После — пытается понять, сдал ли студент экзамен, или нет.
1 2 3 4 5 6 7 8 |
x = int(input('Ну что, какую оценку получил на экзамене?')) if not (x < 6): print ('Скорее всего, ты что-то путаешь!') else: if (x > 2) and (x <= 5): print ('Молодец! Ты справился!') else: print ('Что ж, повезёт при пересдаче!') |
Домашнее задание
Познакомившись с условными операторами языка Python, вы уже способны написать ещё одну программу. Ваше домашнее задание — программа-тест. Пускай программа задаст несколько несложных вопросов: например, простейшая арифметика (2+2). Каждый раз, когда пользователь отвечает правильно, ко счётчику добавляется единица. А в конце программа сообщает количество правильных ответов. Проверить вы себя сможете как раз на втором уроке — начнём мы именно с разбора домашнего задания. Удачи в новых начинаниях, до встречи на уроках по Python!
А есть ещё одна задачка. Помню, мне самому её задавали, когда я изучал Pascal. Тем не менее, её легко решить на Python. А суть её проста: «посчитать» ворон. Программа спрашивает пользователя, сколько было ворон. А затем выбирает нужную словоформу и повторяет за ним. 2 вороны, 15 ворон… Кажется, что просто. Но только на первый взгляд. Ответ я спрятал в спойлере. Кстати, он уже содержит элементы следующего урока — списки в Python.
Показать решение
1 2 3 4 5 6 7 8 9 |
vor = int(input('Сколько было ворон? ')) b = [2, 3, 4] c = vor % 10 if (c == 1) and (vor != 11): print ('Я поняла,',vor,' ворона') elif c in b: print ('Я поняла,',vor,' вороны') else: print ('Я поняла,',vor,'ворон') |
Люди, которые пишут условный оператор elif python вместо else if… куда вам столько свободного времени??!!