Изучаем Python -> Условия

Привет-привет, DTF! В этом лонге, я продолжаю цикл статей, которые помогут Вам в изучении Python. Всё с примерами и наглядно. Читай, узнавай, подписывайся!

План статей:

  1. print() /input()
  2. Типы данных
  3. Переменные
  4. Условия
  5. Массив
  6. Циклы
  7. Импорт библиотек
  8. Функции
  9. Классы
  10. Закрепляем материал

Обязательно пробуй повторить изложенный в этой статье материал, отмечай плюсиком, каждый успешно пройденный этап, чтобы отслеживать свой прогресс.

Весь код я предлагаю писать в Google Colab, для этого нам понадобиться там зарегистрироваться (подойдет учетка Google) и создать новый блокнот (Файл -> Создать блокнот).

Также, если у Вас возникли трудности, можете просмотреть мой блокнот, в нём изложен весь сегодняшний материал.

Что такое условие? Зачем оно нужно?

Условие - это способ описать событие, при выполнении которого, произойдёт определенный сценарий действий.

Для начала, разберемся, а какие в принципе, бывают условия

  • < Меньше — условие верно, если левое значение меньше правого

  • > Больше — условие верно, если левое значение больше правого

  • >= Больше или равно — условие верно, если левое значение меньше или равно правому

  • <= Меньше или равно — условие верно, если левое значение больше или равно правому
  • == Равенство. Условие верно, если два значения равны

  • != Неравенство. Условие верно, если два значения неравны.

В программировании условие записывается следующем образом:

Мы пишем ключевое слово, говорящее Python, что сейчас начнётся запись условия. Лайфхак, если Вы слышите предложение, которое начинается со слова «если» — то перед Вами ставят условие. В английском языке если переводится как if и именно с него начинается всякое условие.

Далее следует само условие. Сравниваем что-то с чем-то, способы сравнить описаны выше. В конце условия ставится двоеточие, которое готовится описывать события, последующие после выполнения условия. Его еще можно сравнить со словом «тогда».

После этого, следует отступ, который отделяют ту часть кода, которая обязательно к выполнению, от той, которая будет выполняться, только в случае, если стоящее перед ним условие соответствовало действительности. Синонимом слова отступ в программировании можно считать слово «табуляция», происходит оно от наименования клавиши Tab. Нажатие на эту клавишу позволяет ставить одновременно четыре пробела, .

Получаем, вот такую конструкцию:

если условие верно тогда:

____описание последующих действий

Детальный разбор примеров

Теперь, поговорим про каждое из них более подробно.

< Меньше — условие верно, если левое значение меньше правого.

if 5<10: print('Пять меньше Десяти')
Условие выполнено =&gt; действие вписанное в него — тоже.
Условие выполнено => действие вписанное в него — тоже.

Здесь стоит проверить, что было бы, если бы условие не выполнилось?

Давайте, рассмотрим это на примере следующего типа условий:

> Больше — условие верно, если левое значение больше правого

Ничего не произошло
Ничего не произошло

Зеленая галочка слева от if, указывает нам на то, что программа отработала, однако вывода не последовало. Почему? Потому что условие неверно и действие лежащее внутри этого условия никогда не будет выполнено.

Давайте, приведем условие в порядок и сделаем так, чтобы оно выполнилось.

if 10>5: print('Десять больше пяти')
И получим ожидаемый результат
И получим ожидаемый результат

На очереди новый тип условий.

>= Больше или равно — условие верно, если левое значение меньше или равно правому

Условие работает, аналогично прошлому, с той лишь оговоркой, что в случае равенства между собой чисел — условие всё равно будет выполнено. Лучше всего, это будет видно на примере двух рядом стоящих условий.

if 10>=5: print('Десять больше или равно пяти') if 5>=5: print('Пять больше или равно пяти')
Изучаем Python -> Условия

<= Меньше или равно — условие верно, если левое значение больше или равно правому

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

if 5<=10: print('Пять меньше или равно Десяти') if 5<=5: print('Пять меньше или равно пяти')
Изучаем Python -> Условия

== Равенство. Условие верно, если два значения равны

Действие находящиеся под таким условием, будет выполняться, в случае равенства двух значений.

Первое условие верно — действие будет выполнено, второе неверно — ничего не произойдёт. 
Первое условие верно — действие будет выполнено, второе неверно — ничего не произойдёт. 

С точностью до наоборот, работает условие неравенства

!= Неравенство. Условие верно, если два значения неравны.

Здесь - напротив, первое условие - неверно, действие следующее за ним не произойдет, второе - верно, действие выполнится. 
Здесь - напротив, первое условие - неверно, действие следующее за ним не произойдет, второе - верно, действие выполнится. 

Что такое else?

Все условия проверены и работают ровно так, как мы от них ожидаем. Но на этом моменте, внимательный ученик заметит, что я сравнивал только числа. Но будут ли эти условия работать со строкой? Будут.

Создадим переменную name и добавим пользователю возможность записать в неё свое имя. Затем напишем условие, что если содержимое переменной равняется строке, то выведется надпись - «Я знаю, как тебя зовут».

name = input('Введите своё имя: ') if name == 'Pavel': print('Я знаю, как тебя зовут')
Если ввести подходящее имя — условие выполнится 
Если ввести подходящее имя — условие выполнится 

Но что делать, если пользователь введёт имя, которое моя программа не знает? Ничего не произойдёт. А как сделать так, чтобы происходило? Что делать, если я хочу, чтобы обрабатывался сценарий, где пользователь ввёл имя, которого нет в программе? Например, добавить его в общую базу данных имён, чтобы при следующем вводе подобного имени, компьютер уже знал его.

Тут нам поможет else или в переводе с английского — иначе. Как и if, данное слово в Python является специальным, оно указывает нам на то, что если ни одно из вышестоящих условий не сработало, то будет выполнено действие, стоящее после else.

Напишем такое условие, при котором, если пользователь ввёл 'Pavel' — программа ответит, что знает, как нас зовут, во всех иных случаях — что не знает.

name = input('Введите своё имя: ') if name == 'Pavel': print('Вас зовут Павел') else: print('Вас зовут не Павел')
Ввели имя Kate, подходящего условия для него не нашлось, выполнилось действие стоящее после else
Ввели имя Kate, подходящего условия для него не нашлось, выполнилось действие стоящее после else

Как объединять несколько условий в одно?

А что делать, если в данной программе, мы хотим учитывать регистр? Ну, например, кому-то будет лень писать своё имя с большой буквы, он напишет просто «pavel», как быть тогда?

Тут нам на помощь придут логические операторы OR (или) и AND (и). Они позволяют объединять несколько условий в одно.

OR —выполнит последующие действия, если достигнуто выполнение хотя бы одного условия.

Попробуем объединить условие с равенством переменной «Pavel» или «pavel» для вывода необходимого текста.

name = input('Введите своё имя: ') if name == 'Pavel' or name == 'pavel': print('Вас зовут Павел') else: print('Вас зовут не Павел')
Изучаем Python -> Условия
Изучаем Python -> Условия

В данном примере, мы видим, что при достижении одного из условий — действие будет выполняться.

AND —работает по принципу, что последующие действия будут выполнены, в случае, если все перечисленные условия верны.

Например, мы хотим полностью идентифицировать нашего пользователя и проверить его на соответствие и имени, и фамилии.

first_name = input('Как Вас зовут?') last_name = input('Какая у Вас фамилия?') if first_name == 'Pavel' and last_name == 'Akimov': print('Вас зовут Павел, а Ваша фамилия - Акимов') else: print('Вас зовут не Павел или Вы не Акимов')
Изучаем Python -> Условия

Заполняем переменные first_name и last_name и если они соответствуют тому, с чем их сравнивают, мы увидим результат, подобный тому, что на скриншоте выше.

Вложенные условия

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

Важно понимать, первое и второе условия не являются равнозначными, если первое условие не будет верным — проверка второго даже не начнётся.

Давайте, рассмотрим на конкретном примере. Допустим, мы хотим написать программу, которая проверяет — может ли человек быть донором или нет.

Спроецируем, это на реальную жизнь. Когда мы приходим в донорский центр, первое, что у нас спрашивают — наш возраст. Если мы подходим, то нам положен медицинский осмотр и опрос, который даст нам ответ — здоровы ли мы и можем сдавать кровь. Важный момент тут в том, что к осмотру мы будем приступать только после того, как убедимся, что человеку есть 18. Нет смысла спрашивать человека об этом в процессе осмотра, это действие должно быть первостепенным.

Теперь, можно спроецировать этот пример в виде кода.

age = int(input('Сколько Вам лет?')) if age >= 18: print('...Вы проходите медицинский осмотр...') health = input('Вы здоровый человек?') if health == 'Да': print('Вы можете быть донором крови') else: print('Вы не можете быть донором крови') else: print('Вы не можете быть донором крови')
Оба условия выполнились — программа выполнила все действия
Оба условия выполнились — программа выполнила все действия

Обратите внимание, что для каждого if, нужно писать свой отдельный else.

1 условие выполнилось, 2 — нет, отработал else для второго условия. 
1 условие выполнилось, 2 — нет, отработал else для второго условия. 
1 условие не выполнилось, отработал else для первого условия
1 условие не выполнилось, отработал else для первого условия

Новый тип данных — bool

В питоне существует также тип данных bool, в нём храниться всего два значения — True (Истина) и False (Ложь).

Этот тип данных активно используется, в условиях. Для выполнения условия, нам достаточно проверить, что оно истинно. Если оно истинно — последующее за ним действия будут выполняться.

Попробуем, вывести на экран наши сравнения без if.

print(5==5)
Выводит значение True, тип данных bool
Выводит значение True, тип данных bool
print(5!=5)
Выводит значение False, тип данных bool
Выводит значение False, тип данных bool

На основе этого, можно сделать вывод, что если условие True — последующие действия будут выполняться и напротив, если False — не будут.

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

game = True if game: print('Игра идёт')
Изучаем Python -> Условия

При этом обратите внимание, нам не нужно сравнивать game с True, т.к. game, и есть True, то для истинности условия требуется лишь записать в нём эту переменную.

Что такое elif?

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

elif — помогает нам с этим, этот оператор говорит нам о том, что при достижении текущего условия, все остальные проверять не обязательно.

В качестве примера, напишем программу, которая проверяет наличие активных хоккейных или футбольных матчей. При этом отметим, что спорт мы любим любой, но приоритет отдаём футболу и если идёт футбольный матч одновременно с хоккейным, смотреть мы будем именного футбол.

soccer_game = True hockey_game = True if soccer_game: print('Сейчас идёт футбольный матч') elif hockey_game: print('Сейчас идёт хоккейный матч') else: print('Матч сейчас не идут')
Идут оба матча, но вывелась информация только о футбольном
Идут оба матча, но вывелась информация только о футбольном
soccer_game = False hockey_game = True if soccer_game: print('Сейчас идёт футбольный матч') elif hockey_game: print('Сейчас идёт хоккейный матч') else: print('Матч сейчас не идут')
Если футбольный матч False, а хоккейный True — выведется информация о хоккее. 
Если футбольный матч False, а хоккейный True — выведется информация о хоккее. 
soccer_game = False hockey_game = False if soccer_game: print('Сейчас идёт футбольный матч') elif hockey_game: print('Сейчас идёт хоккейный матч') else: print('Матч сейчас не идут')
Наконец, если оба события False, то только в этой ситуации отработает else
Наконец, если оба события False, то только в этой ситуации отработает else

Закрепляем материал

Мы переварили достаточной большой кусок интересной и важной информации. Давайте, закрепим его, написав программу с применением полученных знаний. В этот раз, я предложу Вам написать программу входа в админ-панель. Он будет в очень упрощенном виде.

Вам необходимо создать две переменные admin_login и admin_password и записать в них секретную информацию. Затем, предложим пользователю ввести логин и пароль от админ панели и запишем эту информацию в переменные user_login и user_password.

В случае, если логин и пароль будут совпадать — вывести сообщение об успешном входе.

Если не верен логин, вывести сообщение об этом.

Если не верен пароль, вывести сообщение об этом.

Если Вам что-то непонятно — можете писать вопросы в комментарии, я отвечу на каждый. Буду признателен подписке (особенно на YouTube канал), до встречи в новых постах!

2222
14 комментариев

Блин, какой смысл все вокруг делают туторы для новичков? Их миллионы в сети. Вот бы больше налегали на более продвинутые вещи в языках и платформах.

1

Да пусть пишут. Объяснение другим - это хороший способ прояснить всё для себя.

1

По факту, туторы и курсы по основам - это пустая трата времени и иногда денег. Книжки надо читать и ручками ковыряться, знание через боль короче) Сколько я курсов пересмотрел - потом тупо не можешь свойство написать, потому что нифига не запоминается

Я тут немного не вшариваю. Как при сборке определяются строки в условиях/циклах?
сборщик/компилятор/интерпритатор(нужное подчеркнуть) по табуляции догадывается? Как питонисты вобще без {} живут?
Я про for(i = 0; i <= maxValue; i++) {
строка кода
вторая строка
третяя
}

ну да, по табам определяет

теги проставлй