II. Логический тип, сравнения, если иначе.




 

Часто ваш алгоритм должен учитывать различные данные и в зависимости от них действовать по-разному.

Простой пример: вы задаёте вопрос, считываете ответ пользователя, а затем соответствующе реагируете.

Вывод:

В примере выше реализовано ветвление. Был использован условный оператор if и else.

В итоге данный алгоритм можно расписать как:

1 – вывод строки «Вы любите кошек?»

2 – считывание ответа пользователя

3 – если ответ пользователя равен строке «да», то:

4 – вывод строки «Я тоже!»

5 – иначе:

6 – вывод строки «А я люблю!»

 

Ключевые моменты следующие. После ключевого слова if обязательно должно идти какое-либо условие. После условия обязательно необходимо поставить двоеточие. В следующей строке необходимо писать с отступом в 4 пробела. Весь код, написанный с отступом будет выполняться если условие истинно. Если условие ложно, то перейдём к 5 строке кода. После ключевого слова else условие писать не нужно, в этот участок кода выполнение программы перейдёт во всех остальных случаях. Далее необходимо опять поставить двоеточие и со следующей строки начинать писать с отступом.

Далее ещё несколько примеров:

Вывод:

Обратите внимание, кол-во команд, которые вы напишите после условия ничем не ограничено. Вы строки с 4 по 6 включительно выполнились. Так же обратите внимание на последнюю строку программы. Она написана без отступа. И вы можете видеть, что сообщение «Конец программы.» так же вывелось в консоль. 9 строка уже не является частью условия, она написана без отступов, поэтому будет выполняться в любом случае.

Но что делать, если мы хотим учесть не два варианта, а большее количество?

Вывод:

Таким образом можно создавать конструкции любой глубины, с неограниченным количеством вариантов.

Правда так код будет всё дальше уезжать вправо и в какой-то момент его станет неудобно читать. Так что был придуман более удобный способ записи подобных условий:

elif буквально расшифровывается как else if (иначе если).

Эта конструкция является единым ветвлением, все ветки которого проверяются по порядку от начала до конца. Если какое-либо из условий срабатывает, то выполняется код под ним и на этом из ветвления мы выходим.

Теперь поговорим подробнее об условиях. Что это такое, какими они могут быть, как их правильно записывать?

Условие в python это такое выражение, которое вычисляется, прямо как изученные нами на прошлом уроке арифметические операции, и приводится к логическому типу данных.

Логический тип – boolean, сокр. bool.

У данного типа объектов всего два значения – True и False. (обязательно с большой буквы). Переводится как Истина и Ложь.

Так же для данных выражений используются операторы сравнения. Их всего шесть и они так же вам знакомы из математики:

== – равно

!= – неравно

> – больше

< – меньше

>= – больше или равно

<= – меньше или равно

Так следующее выражение:

15 >= 10 – это выражение истинное, python вычислит его и вернет вам значение True.

Условный оператор как раз использует логический тип данных для определения нужной ветки.

Если условие истинно, то код выполняется, если условие ложно, то мы проверяем следующее условие. Если условие истинно… и т.д.
И в самом конце мы можем как указать else (все остальные случаи), так и не указывать блок else вообще.

Вывод:

Так же есть возможность прописывать более сложные условия.

Сначала небольшое отступление, которое поможет немного разнообразить наши задачи.

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

Например, если пользователь введёт число 15, мы получим строку «15».
Если бы у нас стояла задача считать введённое пользователем число и вывести произведение этого числа и тройки, то мы сейчас не смогли бы решить подобную задачу.
На помощь нам придёт команда int() – это функция, которая в качестве аргумента может принять строку и затем попытается преобразовать её в целое число. Если в качестве аргумента будет передана строка, которая в число не преобразуется, то программа вылетит с ошибкой.

Теперь мы можем решить подобную задачу.

Так же можно вызывать функцию int вместе с функцией input.

Или даже короче:

Теперь вернёмся к сложным условиям.

Допустим, что перед нами стоит следующая задача: считать число, которое ввёл пользователь, и если это число является четным, а также превышает 100, то это число нам подходит и мы выводим «Верно.». Если же это число меньше, или равно 100, мы выводим «Слишком маленькое число.», если это число нечётное, то выводим «Нечётное число нам не подходит.», если же число не прошло по обоим параметрам, то выводим «Полный провал.».

 

 

Задача может быть решена несколькими способами, на примере выше только один из них.

Обратите внимание на 2 и 4 строки. Тут указан оператор and, переводится как «и». Только в том случае, когда и первое и второе условие истинны, ветка выполняется.

Всего таких операторов три: and, or, not. И, или, не.

Распишем подробнее как они работают.

True and True = True

True and False = False

False and True = False

False and False = False

Оператор and возвращает истину, только когда объединяет две истины, в остальных случаях возвращается ложь.

True or True = True

True or False = True

False or True = True

False or False = False

Оператор or возвращает истину, когда объединяется хотя бы одна истина. Ложь возвращается только тогда, когда ни одной истины нет.

not True = False

not False = True

Оператор not превращает логическое значение в противоположное.

 

 

Можно подробно разобрать пример выше.

Так же стоит учитывать такую вещь, как приоритет операций. Вы с понятием знакомы, опять же, из курса математики. Например, операции умножения и деления имеют приоритет выше, чем сложение и вычитание. Подобные зависимости есть и в Python. Полную информацию приводить здесь я не буду, её легко можно найти в сети.

Последняя на сегодня команда – in. Переводится как «в».

С её помощью можно проверить, является ли строка подстрокой другой строки. Если сказать простыми словами, то она показывает является ли строка частью другой строки.

Например:

Если строка «привет» является частью введённой пользователем строки, то мы здороваемся в ответ, иначе не делаем ничего.

Отсюда видно, что данная команда возвращает True, если найдёт искомую строку и False, если не найдёт.

 

Домашнее задание:

 

1) Пользователь вводит одну цифру.
Ваша программа должна её считать, а затем
вывести её название кириллицей.

Пример:
Ввод:
6
Вывод:
шесть

Ввод:
9
Вывод:
девять

2) Пользователь вводит две строки.
Напишите программу, которая сможет определить
одинаковые эти строки, или нет.

Пример:
Ввод:
умножить
умножить

Вывод:
одинаковые

Ввод:
карл
клара

Вывод:
разные

 

3) Пользователь вводит два целых числа.
Поздравьте его, если он ввел числа, произведение которых является четным,
но только в том случае, если оба исходных числа так же были четными.

Пример:
Ввод:
4
6
Вывод:
Поздравляю!

Ввод:
3
7
Вывод:

 

 

4*) Напишите текстовый квест, минимум с четырьмя развилками, в каждой развилке должно быть ещё по две развилки. Можно больше.


Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2022-11-13 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: