Python 为什么我有一个无限的While循环?
我试图写一个基本循环,但我不明白为什么它会打印一个无限循环而不是-1到-24Python 为什么我有一个无限的While循环?,python,Python,我试图写一个基本循环,但我不明白为什么它会打印一个无限循环而不是-1到-24 net_distance = 0 def go_back(distance_backwards1): while net_distance != net_distance - distance_backwards1: net_distance = net_distance - 1 print(net_distance) go_back(24) 看起来您减少了错误的变量。此外
net_distance = 0
def go_back(distance_backwards1):
while net_distance != net_distance - distance_backwards1:
net_distance = net_distance - 1
print(net_distance)
go_back(24)
看起来您减少了错误的变量。此外,您还需要在减少之前进行打印。您的while循环正在减少净距离,并且它一直处于负值,永远不会达到您传递的值。相反,您需要减小发送的值,使其达到净距离 对代码进行微小的调整,它会向后打印
net_distance = 0 #looks like you want to get here
def go_back(distance_backwards1):
while net_distance != distance_backwards1: #check if you got to 0
print(distance_backwards1) #print the number first
distance_backwards1 = distance_backwards1 - 1 #decrement by 1
go_back(24)
输出将是:
24
23
22
21
20
19
18
17
16
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
while
循环中的条件
net_distance != net_distance - distance_backwards1
从两侧减去公共项净距离后,与
0 != -distance_backwards1:
0 != distance_backwards1:
i、 e.同
0 != -distance_backwards1:
0 != distance_backwards1:
这意味着如果函数的参数distance\u backwards1
不为零,则条件仍然为True
,因此while
循环将是无限的。
def go_back(distance_backwards1):
while distance_backwards1 > 1:
distance_backwards1 = distance_backwards1 - 1
print(-distance_backwards1)
go_back(24)
并不是说您不需要变量net\u distance
您只需减少参数并在循环中打印其相反值(即其“减”值),仅由条件
净距离>1
控制。您知道范围是什么吗?因为24!=0看起来您在减去错误的变量。我想您需要减去距离1,同时打印相同的变量。请提供预期值。显示中间结果与预期结果的偏差。我们应该能够将单个代码块粘贴到文件中,运行它,并重现您的问题。这也让我们可以在您的上下文中测试任何建议。最重要的是,请准确地解释当您跟踪此代码时,从您得到的输出中您不理解的内容。在你的MRE中包括那个痕迹。