此代码不打印输出:
x = 1500000
y = 0
while (x>0):
x=(x * 1.1) - 20000
y = y+1
else:
print (y)
如何解决这个问题?
答案 0 :(得分:1)
查看这个可爱的debug博客以获取帮助。最重要的是,学会使用print
来追踪问题,或者用桌面检查程序(用纸和铅笔模拟)。
看看你的第一次迭代:
x = 1500000
y = 0
while (x>0):
x=(x * 1.1) - 20000
评估此行:
x = (1500000 * 1.1) - 20000
x = 1650000 - 20000
x = 1630000
x现在比以前更大。它会继续无限制地升级。您永远无法达到while
退出条件,因此您永远无法获得print
声明。
答案 1 :(得分:0)
您的情况x>0
它永远不会是假的,因为您的x
总是会增加。
例: *开始代码: x = 1500000 y = 0
第一次迭代: x = 1630000 y = 1
第二次迭代: x = 1773000 y = 2
第3次迭代: x = 1930300 y = 3
因此,您的代码永远不会进入else
。