Скачано с Boominfo.ORG | Проблемы со входом? Заходи через Boominfo.co
Условные операторы и тип Boolif
(англ. «если») задаёт определённое поведение программы в зависимости от
заданных разработчиком условий: «если условие истинно — выполни код,
следующий за условием».if
rating = 4.9
# Если переменная rating строго больше 4.7 - напечатать реплику "Фильм крут"
# В иной ситуации блок кода под условием будет пропущен:
# программа сразу перейдёт к строке print('Проверка окончена')
if rating > 4.7:
print('Фильм крут')
# Этот код не вложен в блок if,
# так что выполнится в любом случае
print('Проверка окончена')
Скачано с Boominfo.ORG | Проблемы со входом? Заходи через Boominfo.co
if
и условие;if
) оценка фильма выше 4.7 — выводить реплику «Фильм крут»;else
) выводить строку «Так себе киношечка»;if
, не выполняется. Для этого в конструкции условного оператора предусмотрено ключевое слово else
(англ. «иначе»). Код, записанный после этого ключевого слова, сработает в том случае, если условие в if
ложно.else
пишется на том же уровне, что и if
, а код, выполняемый после else
, пишется с четырьмя отступами от else
:Скопировать кодPYTHONrating = 4.9
if rating > 4.7:
print('Фильм крут')
else:
# Код выполнится, если rating <= 4.7
# Отступы важны!
print('Так себе киношечка')
print('Проверка окончена')
else
не указывают никаких условий: код из этого блока будет выполнен в любой ситуации, когда условие после if
не выполнено.Скачано с Boominfo.ORG | Проблемы со входом? Заходи через Boominfo.co
if...else
можно записать коротко:Скопировать кодPYTHONrating = 4.9
# Так вы умеете:
if rating > 4.7:
print('Фильм крут')
else:
print('Так себе киношечка')
# А так будет короче:
result = 'Фильм крут' if rating > 4.7 else 'Так себе киношечка'
# В отличие от обычной конструкции if...else
# тернарный оператор не просто выполняет блок кода,
# а возвращает значение
print(result)
print('Проверка окончена')
'Фильм крут' если rating > 4.7, иначе 'Так себе киношечка'
rating
больше 4.7 — оператор вернёт значение 'Фильм крут'
;'Так себе киношечка'
.if
)оценка фильма выше 4.7 — выводить реплику «Фильм крут»;elif
) оценка выше 3.5, но не выше 4.7 — напечатать строку «Смотреть можно»;else
) выводить строку «Так себе киношечка»;Скопировать кодPYTHONrating = 4.9
if rating > 4.7:
print('Фильм крут')
else:
# Вложенное ветвление
if rating > 3.5:
print('Смотреть можно')
else:
print('Так себе киношечка')
print('Проверка окончена')
if
есть специальный блок, в котором можно не просто обработать «все прочие варианты, противоречащие условию в if
», но и задать дополнительное условие. elif
(от англ. «иначе-если»): «если условие в if
не выполняется — проверим на другое условие». Блок elif
— это «синтаксический сахар» для конструкции else
с вложенным if
; elif
делает то же самое, но код становится «плоским», без вложенностей, и за счёт этого — более читаемым и структурированным.Flat is better than nested Плоское лучше, чем вложенное. ©The Zen of Python
elif
записывается условие,if
;elif
выполнится;elif
отбивается четырьмя отступами.Скопировать кодPYTHONrating = 3.0
if rating > 4.7:
print('Фильм крут')
elif rating > 3.5:
print('Смотреть можно')
else:
print('Так себе киношечка')
print('Проверка окончена')
if...elif...else
может быть включено сколько угодно блоков elif
— при ветвлении это позволит учесть все возможные варианты.elif
и else
) не будет даже заглядывать. if rating > 3.5
, то программа никогда не дойдёт до условия elif rating > 4.7
Скопировать кодPYTHONrating = 5
if rating > 3.5:
print('Смотреть можно')
elif rating > 4.7:
print('Фильм крут')
else:
print('Так себе киношечка')
print('Проверка окончена')
# Вывод в терминал: Смотреть можно
# хотя, по логике, должно быть 'Фильм крут'
if
можно вкладывать одну в другую. Расширим код условием if rating:
— такая проверка позволит убедиться, что rating
не равен 0
или None
.Скопировать кодPYTHONrating = 4.9
if rating:
if rating > 4.7:
print('Фильм крут')
else:
if rating > 3.5:
print('Смотреть можно')
else:
print('Так себе киношечка')
else:
print('У фильма нет оценки')
print('Проверка окончена')
Скачано с Boominfo.ORG | Проблемы со входом? Заходи через Boominfo.co
if
— Python проверяет описанное условие, например rating > 4.7
. Операторов сравнения не так уж и много:<=
.bool
. Это логический тип данных, который имеет лишь два значения: True
(истина) и False
(ложь) . bool
— это подкласс типа int
, и значения True
и False
можно конвертировать в целые числа:int(True)
приведёт значение к числу 1int(False)
приведёт значение к числу 0True
:Скопировать кодPYTHONrating = 1.1
if rating: # Переменная rating равна 1.1, значит условие вернет True
print('Оценка поставлена')
else:
print('У фильма нет оценки')
# Вывод в терминал: 'Оценка поставлена'
None
конвертируются в False
Скопировать кодPYTHONrating = 0
if rating: # Переменная rating равна 0, значит условие вернет False.
print('Оценка поставлена')
else:
print('У фильма нет оценки')
# Вывод в терминал: 'У фильма нет оценки'
None
выполняется по ключевому слову is
: оператор ==
не сработает.Скопировать кодPYTHONrating = None
if rating is None:
print('У фильма нет оценки')
else:
print('Оценка поставлена')
print(5 > 4)
?print()
напечатает True
. Результатом логического выражения всегда будет значение типа Bool
.Bool
.print()
напечатает True
.False
, и без вложенных условий if
обработать такую проверку, вроде бы, невозможно:Скопировать кодPYTHONrating = 0
if rating:
if rating > 4.7:
print('Фильм оценили и очень высоко!')
else:
print('У фильма нет оценки')
print('Проверка окончена')
if
, а этого лучше избегать. Было бы лучше записать два логических выражения в одном условии — это будет короче и нагляднее. and
и or
. С их помощью можно связать логические выражения в общую систему. Скопировать кодPYTHONif оценка фильма получена [и, одновременно] оценка больше 4.7:
print('Отличный фильм, бегом за билетами!')
and
(И) возвращает True
, если оба логических выражения вернут True
; если хоть одно из выражений вернёт False
— то оператор and
вернёт False
.Скопировать кодPYTHONrating = 4.9
if rating and rating > 4.7:
# При rating = 4.9 это условие вернёт True
print('Отличный фильм, бегом за билетами!')
else:
# Если оценки нет или она меньше 4.7
print('У фильма нет оценки')
print('Проверка окончена')
False
, если мост сведён — True
.Скопировать кодPYTHONif мост №1 сведён AND мост №2 сведён:
# Если выражение в if вернёт True
Программист доберётся до дома
else
Программист ночует в офисе
True
».or
(англ. «или»): возвращает True
, если хотя бы одно из логических выражений возвращает True
.True
— всё будет True
.Скопировать кодPYTHONif мост №1 сведён OR мост №2 сведён:
# Если выражение в if вернёт True
Программист доберётся до дома
else
Программист ночует в офисе
Скопировать кодPYTHONbridge_1 = 'сведён'
bridge_2 = 'разведён'
if bridge_1 == 'сведён' or bridge_2 == 'сведён':
print('Программист доберётся до дома')
else
print('Программист ночует в офисе')
not
инвертирует булевы значения: not True
вернёт False
; not False
вернёт True
.Start-Stop
в автомобиле. Нажатие на кнопку должно включить двигатель или выключить
его, в зависимости от того, работает сейчас двигатель или нет.status = False
;status = True
Скопировать кодPYTHONstatus = True
# При каждом нажатии на кнопку запускается этот код:
if status:
# Если status равен True - присваиваем ему значение False
status = False
else
# Если status равен False - присваиваем ему значение True
status = True
print(status)
not
:Скопировать кодPYTHONstatus = True
# При каждом нажатии на кнопку запускается этот код:
# Каким бы ни было значение переменной - заменяем его на противоположное
status = not status
print(status)
x
и y
,
координаты точки на плоскости. Программа должна определить, в какой
четверти на координатной плоскости находится точка с переданными
координатами.x = 0
y = 5
if x > 0 and y > 0:
print('Первая четверть')
elif x < 0 and y > 0:
print('Четвертая четверть')
elif x > 0 and y < 0:
print('Третья четверть')
else:
print('Вторая четверть')
Здравствуйте, Александр!
Уточните, пожалуйста, вы пытаетесь совершить первую оплату?
Александр, первую оплату вы совершаете самостоятельно. После оплаты первого платёжа привязывается карта, с которой автоматически спишутся следующие, раз в 30 дней. Мы сможем помочь списать только следующие оплаты, если будут возникать трудности.
Если нужна помощь, пишите — во всём разберёмся вместе :)
Александр, выбранный вами курс стартует 16 августа, вероятнее всего, срок оплаты будет продлён до 15 августа :)
Дайте знать, если можем ещё чем-либо помочь:)
Александр, вероятнее всего, срок оплаты будет продлём до 15 августа, если до этого времени не будет набран поток :)
Не переживайте, если вы оплатите на следующей неделе, вы будете зачислены в поток :)
Александр, если вы оплатите курс на следующей неделе, ты вы попадете в ближайший поток :)
Так и есть, но место для вас найдётся :) Остались ли у вас ещё какие-то вопросы ?
Добрый день, Александр!
Для оплаты обучения, перейдите в свой профиль: https://praktikum.yandex.ru, выберите профессию, которую планируете изучать, далее нажмите на кнопку вверху «Купить полную программу», выберите подходящий вам способ оплаты и следуйте инструкциям системы.
Если возникнут вопросы — обязательно пишите :)
Подскажите, вы оплачиваете курс картой банка РФ или иностранного банка?
Уточните,
пожалуйста, почту из вашего аккаунта в Практикум, выбранный курс и
способ оплаты (ежемесячными платежами или полностью) — пришлём ссылку
для оплаты и запишем в группу.
При оплате ежемесячными платежами мы будем формировать новую ссылку каждый месяц и присылать также в письме.
Если вы не против, уточните, пожалуйста, страну вашего проживания — стараемся расширять географию оплаты на сайте и хотим понимать, куда двигаться :)
Александр, отправили вам ссылку в отдельном письме. После оплаты придёт кассовый чек, это значит, что всё прошло успешно и мы получили деньги. После оплаты мы включим вас в 5 поток, который стартует 16 августа.
Cумма ежемесячного платежа составит 12 825руб с учетом скидки 5% за подписку Яндекс.Плюс, мы будем присылать вам ссылку на оплату ежемесячно, всего их будет 14, как и месяцев в курсе Python-разработчик Плюс. Оплата по ссылке проводится в российских рублях.
В день старта потока вам придет важное письмо на почту и куратор примет вас на борт.
Удачи в учебе! А если будут вопросы - пишите, мы рядом.
Сейчас мы пришлем вам новую ссылку с учетом промокода SECOND :)
Александр, первую ссылку мы деактивировали, стоимость обучения для вас составит 11475руб в месяц вместо 13500руб с учетом скидки 15% (5% за Плюс + 10% по промокоду SECOND). Всего будет, как писали ранее, 14 ссылок, и итоговая стоимость курса для вас составит 160 650руб вместо обычных 189 000руб :)
Здравствуйте, Александр!
Наш специалист напишет вам утром и вы во всём разберётесь, хорошо ?:)
Грустить осталось недолго :)
Александр, наши коллеги работают по будням с 10 до 19 :)
Ожидайте, пожалуйста 🌿
Александр, добрый день,
Оплата по ссылке прошла успешно. В течение дня статус оплаты в личном кабинете поменяется:)
Мы записали вас в 5 поток, который стартует 16 августа. В личном кабинете у вас не должно быть ошибки об оплате, проверьте, пожалуйста:)
Обязательно пишите, если у вас появятся вопросы до старта:)
Здравствуйте, Александр!
Пришлите, пожалуйста, ссылку на ваш код, записанный на сайте https://pastebin.com/ и ссылку на саму задачу — посмотрим, в чём там дело :)
Подождём :) Что-то не так ?
Такое бывает :) Если понадобится наша помощь — напишите, мы тут как тут.
Давайте обратимся к теории задания :) Вот код, который можно там найти
return render(request, 'homepage/homepage.html', context)
Нашли свою ошибку ?
С синтаксисом нужно быть осторожным; то, что вы написали, по факту не совсем правильно :) В прекоде есть такая строчка
Как вернуть из view-функции функцию render? Вот так: `return render(аргументы-аргументы-аргументы)
А вы записали
аргументы-аргументы-аргументы=аргументы
Остались ли у вас ещё какие-то вопросы ?
Рады были помочь :)
Здравствуйте, Александр! Обновите, пожалуйста, сейчас страницу курса. Всё должно встать на свои места.
А
так, уже заканчиваем последние приготовления. В течение дня по
московскому времени откроется доступ к платной части, сперва мы
познакомимся, а в Slack куратор подробнее расскажет про то, что будет
дальше. Приглашение в Slack направим на почту — иногда оно попадает в
папки Спам или Рассылки, советуем поглядывать и туда.
Уточните, пожалуйста, вы указывали новую почту для приглашения в slack или ту же, что используете на другом курсе?
Там сейчас у вас только каналы для профессии Python-разработчик , а других каналов, которые были нет, правильно понимаем?
Хорошо, спасибо! Уточним вопрос у коллег и вернёмся к вам с ответом :)
С вами свяжется куратор и добавит в нужные каналы.
Дайте знать, если ещё чем-то можем вам помочь :)
Сейчас куратор напишет в новом аккаунте :)
Здравствуйте!
Также, просим проверить, что в личном кабинете Яндекс Паспорта https://passport.yandex.ru/ привязана карта, с которой необходимо совершить оплату.
Если карта не привязана, просим привязать её и сообщить нам 4 последние цифры карты.
Отправили запрос на списание, если всё пройдёт успешно, то в течение 10-15 минут денежные средства спишутся, вам на почту придёт чек о списании и статус в профиле изменится. Дайте знать, если этого не произойдёт.
Здравствуйте!
Александр, уточните, пожалуйста, ваш логин в Практикуме — alexander.borovtsoff@yandex.by? Не могли бы также уточнить, когда вы в последний раз оплачивали курс Аналитик данных?
Александр, уточните, пожалуйста, последние 4 цифры вашей карточки, привязана ли она к вашему аккаунту? Также, пожалуйста, убедитесь, что у вас на карте достаточно средств для проведения платежа — оплатить необходимо 13000 рублей.
Александр, провели платёж — уточните, пожалуйста, списались ли средства теперь? :)