Python 需要帮助理解这个while循环吗
在下面的代码段中,当缓冲区的长度达到31时,while循环停止。但是对于每一次迭代,我们都要添加100,所以这个循环应该只运行一次Python 需要帮助理解这个while循环吗,python,Python,在下面的代码段中,当缓冲区的长度达到31时,while循环停止。但是对于每一次迭代,我们都要添加100,所以这个循环应该只运行一次 buffer=["A"] counter=100 while len(buffer) <= 30: buffer.append("A"*counter) counter=counter+200 buffer=[“A”] 计数器=100 当len(buffer)每次添加“AAAAAAAA…”时,不是100个单独的“A”。此循环将继续运行的条件
buffer=["A"]
counter=100
while len(buffer) <= 30:
buffer.append("A"*counter)
counter=counter+200
buffer=[“A”]
计数器=100
当len(buffer)每次添加“AAAAAAAA…”时,不是100个单独的“A”。此循环将继续运行的条件不是基于计数器,而是基于列表buffer
的长度<代码>计数器的值不会影响迭代次数
这是说:“而缓冲区的长度是
输出:
hellohello
以下几点应该可以回答您的问题
- 缓冲区是一个列表
- 在循环的每次迭代中,您都要向循环中添加一个元素
名单
- 每次迭代,您添加到列表中的元素只是一个
更长的绳子
- len(buffer)将返回列表中的项目数量
- 因为您只将一个元素(无论其长度)添加到
列表每次迭代,只要列表已经有多个正确答案,它就会运行,但是我觉得对于初学者来说,它们不能使关键的区别足够清楚
buffer
一开始是[“A”]
。您似乎有一种误解,认为[“A”].append([“AAAAA”])
会导致[“aaaaaaa”]
,而事实上它会导致[“A”,“aaaaaaa”]
。len(buffer)的后续评估
将产生2
,而不是6
此循环使用重复的A
将29个字符串添加到缓冲区中,长度从100到5900(每个字符串的长度都比以前的长+200)>>A'*10
'aaaaaaaa'
-如果发生意外情况,请尝试在shell中进行试验。
"hello"*2
hellohello