看看这句话:
input_check("Do you know the rules?\n", rules(), "Ok. Starting game...")
当您这样做时,Python将调用
rules
立即运行,以便将结果传递给
input_check
你的
规则
函数打印出一堆东西,然后有完全相同的行,这将调用
rules()
一次又一次,一次又一次,一次又一次。。。它从来没有机会打电话
输入检查
.它还在处理参数。
如果要传递函数对象但不调用它,请不要使用参数:
input_check("Do you know the rules?\n", rules, "Ok. Starting game...")
请注意
输入检查
函数将继续调用传入的函数。你不需要在里面再打电话
规则
.
改善效果追踪
这和你想的不一样:
if yes_no.lower() == "n" or "no":
解析为:
if (yes_no.lower() == "n") or "no":
既然“不”是真的,那么if将永远被接受。您应该使用以下选项之一:
if yes_no.lower() in ("n" or "no"):
if yes_no.lower()[0] == "n":
接下来,你有这个:
if yes_no.lower() == "n" or "no":
function
在这里,您确实想调用函数,因此需要添加参数:
if yes_no.lower()[0] == "n":
function()