这是重复的函数(调用 get_next_value 以获取潜在值!)直到产生有效值(1-26 范围内的数字)。Get_next_value 只是一个函数。但它会创建一个无限循环,我将如何解决它?
while get_next_value(deck) < 27:
if get_next_value(deck) < 27:
result = get_next_value(deck)
return result
这是重复的函数(调用 get_next_value 以获取潜在值!)直到产生有效值(1-26 范围内的数字)。Get_next_value 只是一个函数。但它会创建一个无限循环,我将如何解决它?
while get_next_value(deck) < 27:
if get_next_value(deck) < 27:
result = get_next_value(deck)
return result
这应该是这样写的:
while True: # Loop continuously
result = get_next_value(deck) # Get the function's return value
if result < 27: # If it is less than 27...
return result # ...return the value and exit the function
不仅无限递归停止了,而且这个方法每次迭代只运行get_next_value(deck)
一次,而不是三次。
请注意,您还可以执行以下操作:
result = get_next_value(deck) # Get the function's return value
while result >= 27: # While it is not less than 27...
result = get_next_value(deck) # ...get a new one.
return result # Return the value and exit the function
这两种解决方案基本上做同样的事情,所以它们之间的选择只是风格上的一种。