Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 需要帮助理解这个while循环吗_Python - Fatal编程技术网

Python 需要帮助理解这个while循环吗

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”。此循环将继续运行的条件

在下面的代码段中,当缓冲区的长度达到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
的长度<代码>计数器的值不会影响迭代次数

这是说:“而
缓冲区的长度是
输出:

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