当我输入超出范围的数字时,为什么会输入 returns none?
Why it returns none type when i entered number out of range?
当我输入 number program expect 时,一切 运行 都很顺利,但是如果我输入超出范围的数字然后输入 number program expect,它 returns None。任何人都可以向我解释一下吗?
谢谢
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")
zadani_x()
xx=[]
yy=[x for x in range(20)]
这里的问题是对函数的递归调用,你没有return你从中得到的值
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 的所有元素时,如果你调用这个函数,你将陷入无限循环...
当我输入 number program expect 时,一切 运行 都很顺利,但是如果我输入超出范围的数字然后输入 number program expect,它 returns None。任何人都可以向我解释一下吗? 谢谢
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")
zadani_x()
xx=[]
yy=[x for x in range(20)]
这里的问题是对函数的递归调用,你没有return你从中得到的值
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 的所有元素时,如果你调用这个函数,你将陷入无限循环...