代码如下
x = 5
for i in range(1,3):
while x > 0:
x = x - i
print(1,x)
print(2,x)
运行的结果如下:
runfile('C:/Users/tony chou/untitled99.py', wdir='C:/Users/tony chou')
1 4
1 3
1 2
1 1
1 0
2 0
2 0
可见while只循环了一次,里面的i值一直是1。造成最终输出的x都是0
求大拿解答,谢谢!
x = 5
for i in range(1,3):
while x > 0:
x = x - i
print(1,x)
print(2,x)
runfile('C:/Users/tony chou/untitled99.py', wdir='C:/Users/tony chou')
1 4
1 3
1 2
1 1
1 0
2 0
2 0
求大拿解答,谢谢!
3 回答3.1k 阅读✓ 已解决
2 回答1.9k 阅读✓ 已解决
2 回答1.3k 阅读✓ 已解决
2 回答1.8k 阅读✓ 已解决
4 回答1.8k 阅读
3 回答1.7k 阅读
1 回答1.4k 阅读✓ 已解决
while 循环体当然只会执行一次,因为你 while 的条件是(x > 0),x <= 0之后 while 的代码块就不再执行了。
for 循环的第一个周期里,x 通过 while 语句循环递减,最后变成了0,导致第二次以及以后的 for 循环周期里 x > 0始终为 False ,因此不会进入 while 循环体,如果你希望每个 for 循环周期都执行while循环,那么你应当在 for 循环周期的尾部将 x 的值重置为 5,或者将 while 语句也改为 for in。
我是前端,只熟悉 JS 语法,没有写过 Python ,但我猜测正确的写法应该如下: