Size: a a a

Сообщество Python Программистов

2021 May 19

F

F in Сообщество Python Программистов
Я сейчас не за пк, но условно говоря, пользователь вводит текст и проверяем на совпадение

if var == "15":
   ... # дальнейший код
elif var == "20”:
   .... # дальнейший код
elif .... # и так далее


Так вот мне надо чтобы вывело ошибку в if elif, если у юзера переменная будет False, а если True, то выполнилось успешно. Но если текст не совпадает с условием if elif, то просто пройти мимо, без вывода чего либо

Я бы вставил под каждый elif проверку и вывод ошибки, но их много, и быть модет есть вариант проще?
источник

F

F in Сообщество Python Программистов
источник

VD

Vlad Dimmer in Сообщество Python Программистов
Ну, хорошо бы обойтись вложением: сперва проверить на истинность булеву переменную, если тру-перебирать значения, иначе-кидать ошибку.

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

a

abc in Сообщество Python Программистов
assert?
источник

<Юрий> 👨‍🔬 Чеб... in Сообщество Python Программистов
assert не подходит для логики кода. Это или для тестов или для повышения читаемости кода вместо того, чтобы написать
# тут i уже всегда больше нуля, поэтому проверку можно не делать
Пишешь
assert i > 0, "wtf, this function doesn't work with i <= 0"
источник

a

abc in Сообщество Python Программистов
+
источник

K

KarmaBot in Сообщество Python Программистов
Вы увеличили карму Юрий Чебышев до 4363.67 (+16.06)
источник

<Юрий> 👨‍🔬 Чеб... in Сообщество Python Программистов
У тебя там принципиально разный код на разные значения var?
источник

F

F in Сообщество Python Программистов
Да
источник

<Юрий> 👨‍🔬 Чеб... in Сообщество Python Программистов
Ну и выноси его в отдельные функции. Тут у тебя останется только функция свитчер, а весь твой разный код будет в приципиально разных функциях, которые к тому же получат имя, а значит будет понятно зачем они нужны
источник

<Юрий> 👨‍🔬 Чеб... in Сообщество Python Программистов
А ещё вместо if else if можно сделать словарь, при условии, что все значения единичные, типа как ты указал 15, 20 итд. И нет неравенств, интервалов итд
d = {15: foo, 20: bar, ...}
d[var]()
источник

М

Манкурт Кобейн... in Сообщество Python Программистов
Можно кучей способов это реализовать. Всё зависит от того, что пишешь, и что было написано до тебя.

То, как ты всё описал, наталкивает на использование переменной-флага, который будет меняться при тех или иных условиях и который ты будешь чекать
источник

$

$name$ in Сообщество Python Программистов
Слушай
источник

$

$name$ in Сообщество Python Программистов
Тут такое дело
источник

$

$name$ in Сообщество Python Программистов
источник

VA

Vadim Apenko in Сообщество Python Программистов
Лунулх в телевизоре
источник

<Юрий> 👨‍🔬 Чеб... in Сообщество Python Программистов
лучше, в учебнике
источник

$

$name$ in Сообщество Python Программистов
Рял
источник

<Юрий> 👨‍🔬 Чеб... in Сообщество Python Программистов
а ты возьми формулы для силы архимеда и силы притяжения к земле и посмотри что зависит от массы
источник

<Юрий> 👨‍🔬 Чеб... in Сообщество Python Программистов
и поищи таки чат по физике
источник