У меня есть следующая проблема. Моя функция в Python выглядит следующим образом:Возвращаемое значение из функции, когда сама функция вызвана внутри PYTHON
def choose_sepa_reason_code():
# This method is for providing proper sepa reason code
sepa_reason_code = input("\nPlease provide SEPA reason code to reject the payment: ")
if sepa_reason_code in sepa_reason_codes:
return sepa_reason_code
else:
print("Your reason codes doesnt match the list:\n")
pprint(sepa_reason_codes)
choose_sepa_reason_code()
provided_sepa_reason_code = choose_sepa_reason_code()
Так «если» заявление, чтобы убедиться, что пользователь обеспечит правильный код ..... но если он не прав в в первый раз моя функция позже возвращает «Нет».
Не могли бы вы посоветовать, как изменить его, чтобы получить окончательный правильный ввод пользователя? Спасибо в продвинутом режиме.
первый вы ничего не возвращаете из своей ветви 'else', во-вторых, вы не должны вызывать вашу функцию рекурсивно. Реорганизация подпрограммы с циклом решила бы это. –
См. [Запрос пользователя для ввода до тех пор, пока он не даст действительный ответ] (http://stackoverflow.com/questions/23294658/asking-the-user-for-input-until-they-give-a-valid-response) – roganjosh
использовать цикл while – Yousaf