Я не пришел в школу



Создадим переменную я_был_в_школе и присвоим ей ложь

python
я_был_в_школе = False

print(я_был_в_школе)
# выведет False


Значения True и False - это логические значения правды и лжи в пайтоне.

Операторы сравнения



Чтобы сравнивать числа, строки и другие типы данных, нужно знать основные операторы сравнения. Например на вопрос "10 больше 3?" мы ответим ДА. Также и в пайтоне:

python
print(10 > 3)
# выведет True


Давайте соберем все операторы в одну таблицу:

ОператорЧто значитПримерВывод
>A больше B10 > 3True
<A меньше B10 < 3False
==A равно B10 == 3False
>=A больше или равно B10 >= 3True
<=A меньше или равно B10 <= 3False


Эльз, иф, эльф



В пайтоне, как и в жизни, есть сравнение через логические "если ..., то ..." и другие.

Ключевые слова: if (если...), else (иначе...), elif (еще одно условие...)


Давайте проще:

python
if булат == мальчик:
    print("Булат мальчик")
elif булат == девочка:
    print("Булат девочка")
else:
    print("Булат ни мальчик, ни девочка")


Грубо говоря: if это одно условие. else срабатывает, когда if не выполнилось: то есть, булат == мальчик - это Fasle. elif это еще одно условие, которое выполнится, если первое if - это Fasle. Если elif - это тоже ложь, то сработает else.

if - самое первое сравнение
elif - дополнительные сравнения
else - работает, если всё остальное не сработало


Пазлы любишь? Люби и саночки носить



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

python
я_пошел_в_школу = False
возраст_булата = 16
сообщение_классной_руководительнице = "Булат заболел, не придёт"

if возраст_булата >= 18:
    print("Булат совершеннолетний")
else: 
    print("Булат еще малыш")
# выведет "Булат еще малыш"

if я_пошел_в_школу == True:
    print("Булат пошел в школу, это правда")
elif я_пошел_в_школу == False:
    print(сообщение_классной_руководительнице)
else:
    print("Булат проспал первые 6-7 уроков")
# выведет "Булат заболел, не придёт"


Объяснение:

Сравнение первое: возраст булата НЕ равен 18 И НЕ больше 18, поэтому утверждение возраст_булата >= 18 - это ложь, значит False. Не верно. Тогда срабатывает следующее ключевое слово: elif/else, но elif нету, поэтому сразу else. В else мы выводим, что булат малыш.


Сравнение второе: переменная я_пошел_в_школу это ложь. Ложь равна Правде? Нет. Поэтому первое if не работает. Дальше срабатывает elif по списку и тут сравнивается Ложь равна Лжи? Да. Это верно, поэтому выводим переменную сообщение_классной_руководительнице. А что если бы я_пошел_в_школу - это ни правда (True), ни ложь (False)? Допустим, переменная станет такой:

я_пошел_в_школу = None

None - это что то вроде "пустота", "ничего". Тогда "Пустота == Правда" - неправда, "Пустота == Лжи" - тоже неверно, тогда срабатывает else:

Выводит "Булат проспал первые 6-7 уроков"


Важно



Пару важных моментов

Про форматирование и стиль


В следующих уроках я буду использовать вот такую запись:

txt
>> ввод
<< вывод


Две угловые скобки влево - это вывод программы, то есть, то, что печатает программа. Две скобки вправо - это ввод пользователя:

txt
>> - ввожу что нибудь
<< - пайтон что то выводит в ответ


Про пайтон функции



Иногда в ОГЭ встречается, что надо вывести что-то вроде "Результат: 69". Но результат у нас хранится в переменной, поэтому делаем вот так:

python
# ... какой-то код ...
результат = 69
print("Результат:",результат)


Вывод:

txt
<< Результат: 69


Чтобы передать строку с переменной, надо объединить через ","


Чтобы точно понять, вот как это работает на другом примере:

python
# объявляем строку
имя = "Булат"
print(имя,"- его имя:",имя)


Вывод:

txt
<< Булат - его имя: Булат


Сложение чисел



Например объявим переменную "возраст" и добавим к ней 1:

python
возраст = 16

print(возраст)

# чтобы прибавить один год:
возраст += 1

print(возраст)

# еще раз:
возраст += 1

print(возраст)


Вывод:

txt
<< 16    <- самое первое значение
<< 17    <- прибавили первый год
<< 18    <- прибавили второй год


По такому же принципу вычитание:

python
возраст = 16
print(возраст)

возраст -= 1
print(возраст)

возраст -= 1
print(возраст)


Вывод:
txt
<< 16    <- самое первое значение
<< 15    <- вычли первый год
<< 14    <- вычли второй год


Если забыли, как вычитать, то можно просто сделать так:

python
возраст = 16

# припишем старость
возраст = возраст + 50
print(возраст)


Вывод:

txt
<< 66


То есть, мы присваиваем значению "возраст" текущее значение "возраст" и еще 50 лет. Грубо говоря, компьютер видит что-то типа такого:

python
возраст = 16
возраст = 16 + 50


Про форматирование Пайтона



Возможно, вы не заметили, но количество пробелов в Пайтоне очень критично, например:

python
произвольная_переменная = 123

if произвольная_переменная > 10:
    <- вот этот отступ 
    print("больше")
else:
    print("меньше")


Код выше запуститься без проблем, а вот этот код не запустится:

python
произвольная_переменная = 123

if произвольная_переменная > 10:
  print("больше")
    # print СЪЕХАЛ!
else:
    print("меньше")


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

python
# ПЛОХО!
произвольная_переменная = 123

if произвольная_переменная > 10:
...print("больше")
else:
....print("меньше")

# РАБОТАЕТ!
if произвольная_переменная > 10:
...print("больше")
else:
...print("меньше")