以下是代码:
count = 0
phrase = "hello, world"
for iteration in range(5):
while True:
count += len(phrase)
break
print("Iteration " + str(iteration) + "; count is: " + str(count))
我对count += len(phrase)
我觉得有点+= len(phrase)
=> count = count + len(phrase)
当计数+= 1
时,可以理解的是,它在每次下一次迭代时递增1,但是在这里迭代整个长度,所以我无法得到它背后的逻辑。我请求是否有人可以逐行解释这个代码中实际发生的事情。谢谢!
答案 0 :(得分:3)
你对+=
的直觉是正确的; +=
运算符表示就地添加,而不可变值类型(例如int
与count = count + len(phrase)
完全相同。
外部for
循环运行5次;所以count
最终设置为phrase
长度的5倍。
您可以完全删除while True:
循环。它启动一个循环,只迭代一次; break
结束在第一次迭代期间循环 。
此代码中没有任何内容迭代phrase
值的整个长度。只查询它的长度(12)并将其添加到count
,因此结束值是12乘以等于60的5倍。
答案 1 :(得分:3)
count = 0
phrase = "hello, world"
for iteration in range(5): #iterate 5 times
while True:
#count = count + len(phrase)
count += len(phrase) # add the length of phrase to current value of count.
break # break out of while loop, while loop
# runs only once for each iteration
#print the value of current count
print("Iteration " + str(iteration) + "; count is: " + str(count))
因此,简而言之,该计划将phrase
的长度添加到count
5次。
<强>输出:强>
Iteration 0; count is: 12 # 0+12
Iteration 1; count is: 24 # 12+12
Iteration 2; count is: 36 # 24+12
Iteration 3; count is: 48 # 36+12
Iteration 4; count is: 60 # 48+12
上述程序大致相当于:
count = 0
phrase = "hello, world"
for iteration in range(5):
count = count + len(phrase)
print("Iteration " + str(iteration) + "; count is: " + str(count))