我有以下问题。我在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()
所以'if'语句是为了确保用户提供正确的代码.....但如果他第一次出错,我的函数稍后会返回'None'。
请问您如何更改它以获得最终正确的用户输入? 谢谢你提前。
答案 0 :(得分:2)
首先你的代码不会运行,因为它不是缩进的,其次你不能在其内部调用一个函数。
这对您的任务来说是更好的方法:
public List<vertElementerParam> getVertList = new List<vertElementerParam>();
private void button1_Click(object sender, EventArgs e)
{
GetKoord getKoord = new GetKoord(this);
List<vertElementerParam> testList = new List<vertElementerParam>();
testList = getKoord.getListvertElementer(getVertList);
MessageBox.Show(testList.Count.ToString());
}
答案 1 :(得分:1)
如果你真的想以递归方式调用该函数,请在 else 语句中调用choose_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")
print(sepa_reason_codes)
return choose_sepa_reason_code()