目前我有这个功能:
x = 0
limit = 10
y = 7
def basic(x):
global y
while x <= limit:
if x == 0 or 1:
y += 1
basic(x+1)
return x
else:
y += 2
basic(x+1)
return x
basic(x)
print(y)
Run Code Online (Sandbox Code Playgroud)
当我打印y时它返回18,这意味着它被卡在if语句中并且不会转到else语句但x确实停止在极限,因此y = 18.我在网上查找了各种来源,但我无法得到一个确切的清楚可视化我的问题.
小智 5
你的问题可能是
if x == 0 or 1:
Run Code Online (Sandbox Code Playgroud)
实际上,这将首先测试x == 0,如果x!= 0将测试1是否为True.由于1始终为True,因此该分支将始终执行.
你可能想要做
if x == 0 or x == 1:
Run Code Online (Sandbox Code Playgroud)