Python 3.x 当我输入超出范围的数字时,为什么它不返回任何类型?
当我输入number-program-expect时,一切都会顺利运行,但如果我输入number-out-of-range,然后输入number-program-expect,它将返回None。有人能给我解释一下吗? 谢谢Python 3.x 当我输入超出范围的数字时,为什么它不返回任何类型?,python-3.x,nonetype,Python 3.x,Nonetype,当我输入number-program-expect时,一切都会顺利运行,但如果我输入number-out-of-range,然后输入number-program-expect,它将返回None。有人能给我解释一下吗? 谢谢 这里的问题是对函数的递归调用,您不会返回从中获得的值 def zadani_x(): x=int(input("Turn for \"x\"(0-19): ")) if x not in xx and x in yy: xx.append(x)
这里的问题是对函数的递归调用,您不会返回从中获得的值
def zadani_x():
x=int(input("Turn for \"x\"(0-19): "))
if x not in xx and x in yy:
xx.append(x)
return x
else:
print ("Try again")
return zadani_x() #here was the problem
在这种特殊情况下,如果您想反复执行相同的代码,最好在while循环中编写此代码,因为调用函数比调用循环花费更多,使用循环更明确您的意图:
def zadani_x():
while True:
x=int(input("Turn for \"x\"(0-19): "))
if x not in xx and x in yy:
xx.append(x)
return x
else:
print ("Try again")
我不知道你对这个函数的意图是什么,但是在任何版本中,当xx拥有yy的所有元素时,如果你调用这个函数,你将陷入一个无限循环…谢谢你的解释,所以每次使用递归都不是个好主意。循环只是为了一个只有5圈的简单游戏。
def zadani_x():
while True:
x=int(input("Turn for \"x\"(0-19): "))
if x not in xx and x in yy:
xx.append(x)
return x
else:
print ("Try again")