有人可以向我解释这段代码吗?
下面是代码:有人可以向我解释这段代码吗?
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每下一个迭代但是这里遍历整个长度,所以我无法得到它背后的逻辑。我请求任何人都可以逐行解释我在这段代码中实际发生的事情。谢谢!
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))
这相当于'count = 5 * len(“hello,world”)'...... – 2013-05-05 13:15:16
@Ashwini Chaudhary感谢您的详细解释! – user1938918 2013-05-05 13:25:13
@Thijs Van谢谢! – user1938918 2013-05-05 13:25:43
你对+=
的直觉是正确的; +=
运营商意味着原地添加和不可变价值类型,如int
是正好与count = count + len(phrase)
相同的东西。
外部for
循环运行5次;所以count
最终设置为phrase
长度的5倍。
您可以完全删除while True:
循环。它开始一个循环,迭代一次;在第一次迭代期间,break
结束循环。
此代码中没有任何内容是遍历整个phrase
值的任何东西。只有它的长度(12)被查询,并加入到count
,因此最终值是5次12等于60
谢谢你的解释! – user1938918 2013-05-05 13:26:19
的'而TRUE'和'break'只是混淆。结果是相同的,如果他们被删除。 – unutbu 2013-05-05 13:06:43
@unutbu谢谢! – user1938918 2013-05-05 13:22:44