Проблемы с python, если условие
вопрос1: Условие if не работает. Каждый раз, когда она завершает работу
question2: (для г в диапазоне (1, в отставке [0] +1): NameError: имя 'RET' не определен)
Проблемы с python, если условие
вопрос1: Условие if не работает. Каждый раз, когда она завершает работу
question2: (для г в диапазоне (1, в отставке [0] +1): NameError: имя 'RET' не определен)
Вот упрощенная версия того, что у вас есть:
action = ""
if action == "stat": # Not true, action == ""
# stuff
elif action == "list": # Not true, action == ""
# stuff
elif action == "retr": # Not true, action == ""
# stuff
else: # Looks like this is where we will end up
exit()
Это не удивительно, вы бросить курить каждый раз, так как вы жёстко условие, чтобы сделать его бросить каждый раз.
Вы говорите, что если вы удалите action = ""
вы получите NameError
говоря action
не определен ... это потому, что вы никогда не установить его на что-нибудь ... Я не уверен, что вы ожидали, если блок поступать так, как написано , Вам нужно что-то вроде этого:
action = a_function_that_gets_info_from_user_and_returns_a_string()
Это установит action
к чему-то, что может пройти ваш if
блок.
В качестве примечания стороны, вы должны делать скриншоты для своих вопросов. Вместо этого скопируйте/вставьте; это вежливая вещь. Теперь мне нужно ввести свой код, чтобы проиллюстрировать, что неправильно, вместо того, чтобы самому копировать его.
Прошу прощения. Я попытался скопировать/вставить, но он сказал, что я должен добавить контекст, чтобы объяснить раздел кода .... Я добавил контекст для моего кода, но он не смог. Так что мне пришлось загрузить картинку ... Мне так жаль об этом – user3063988
Ваш отступа, кажется, далеко. Это должно быть одинаковое количество кода. PEP 8 предлагает четыре пробела для отступов.
Возможно, вы получили IndentationError
.
Возможно, вы упоминали, что "Every time it quits"
. Это ожидается. Ваш код, pp.quit()
выйдет из программы, если action
не равно 'stat'
, 'list'
, или 'retr'
, что и происходит.
Я не согласен ... отступы выглядят хорошо для меня, кроме как в блоке 'else', но я не думаю, что это вызвало бы ошибку. – SethMMorton
@SethMMorton Бит 'else' - это то, о чем я говорю. Код будет туда, потому что 'action! =' Любой из этих параметров, следовательно, ошибка – TerryA
. Я хочу сказать, что поскольку 'pp.quit()' согласован внутри собственного блока ('else'), это законный питон, просто плохой стиль. Он не вызывает «IndentationError». Попробуй. – SethMMorton
Пожалуйста, покажите нам свой код, где находится условное обозначение, и какая ошибка вы получаете – TerryA
удалите инициализацию action 'action =" "' –
, если я удалю действие, ошибка будет "действие не определено" – user3063988