Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Python: Общие вопросы > не понимаю работу "if" и "or" :( |
Автор: RM2010 5.2.2010, 15:21 | ||
По идее, если пользователь отвечает "Y" или "y", то stb отмечаем как True, в противном случае как False.
А в реальности: Additional 5% discount? ( Y/N )dasjhdafsjkghdfkjsg True что не введи, всё равно выдаст True. ![]() |
Автор: Daevaorn 5.2.2010, 15:27 | ||||
или
|
Автор: RM2010 5.2.2010, 15:30 |
if inp == "Y" or inp == "y": СПАСИБООО! ![]() |
Автор: kemiisto 5.2.2010, 15:44 | ||
|
Автор: kemiisto 5.2.2010, 16:24 | ||||
А всё почему? Потому, что
![]() Непустая строка - оценивается как True. А что-то or True всегда True. Идиотизм это называется. Не будь этой "фичи" мы бы получили ошибку времени исполнения (компиляции в других ЯП, использующих этот вид трансляции). А так - получаем логическую ошибку. А эти ошибки, как известно, отлавливать в разы труднее. Хорошо, когда вот так, 5-6 строчек. А в большом проекте? И вообще, глупости всё это. Пустой список - False, непустой - True. Десяток символов пожалели?
Hамеренья очевидны и не надо никаких подводных камней навроде boolean context. |
Автор: Daevaorn 5.2.2010, 21:07 |
Просто не надо допускать до больших проектов людей, не знающих базовую семантику языка. |
Автор: Karadul 6.2.2010, 09:37 | ||||
Только не input, а raw_input. А то если юзер введет 5, то программа вылетит.
Чето не вываливается. Я нихрена не понимаю!
|
Автор: Daevaorn 6.2.2010, 09:53 |
У автора топика новый питон. Учите питон. |
Автор: Karadul 6.2.2010, 11:51 | ||
Это такой универсальный ответ? |
Автор: Daevaorn 6.2.2010, 12:06 |
Для подобного рода вопросов и утверждений -- да. В этой и соседней ветке вы показываете полное незнание языка начиная от синтаксиса, но при этом пионерское стремление делать какие-то выводы. Поэтому смысла что-то объяснять не вижу. Как освоите хотя бы на начальном уровне язык то welcome -- можно будет обсудить интересующие вопросы. |
Автор: Karadul 6.2.2010, 12:09 | ||
Это уже больше похоже на хамство. Можно ссылку на соседнюю ветку? |
Автор: Karadul 6.2.2010, 13:32 |
Я? Каким образом? Все, допер. В консоли питоновской работать просто неудобно. Daevaorn, а ты всетаки хам ;( |
Автор: RM2010 7.2.2010, 12:21 |
Karadul, так ведь как Daevaorn сразу ответил ( за что ему еще раз большое спасибо ) , ошибка была в том, что питон не понимает выражение if X == "Y" or "y": , а надо ему растолковать if X == "Y" or х == "y": . ![]() |
Автор: _Viper_ 8.2.2010, 16:19 | ||
Питон понимает это выражение, просто не так как ты ![]() |