Python函数内两个连续for循环仅第一个运行的问题求助
问题分析
你的代码逻辑本身是没问题的,两个for循环都会被执行——第一个循环遍历range(10)的0到9,每次把x减1后打印;第二个循环遍历range(10)的0到9,每次把y加1后打印。
你说“只有第一个循环会执行”,大概率是输出显示的问题:默认print()函数会在每个输出后加换行符,所以第二个循环的内容会在第一个循环的所有输出之后换行显示,你可能没注意到这部分;也有可能是运行环境的小bug,比如输出缓冲区没及时刷新、终端显示被折叠了。
修正后的代码
如果想得到空格连续分隔的目标输出,可以修改print()的end参数,让每个输出后用空格代替默认的换行:
def loop_code(): for x in range(10): x -= 1 print(x, end=' ') for y in range(10): y += 1 print(y, end=' ') # 最后加个换行,让输出结尾更规范 print() loop_code()
运行这段代码后,就能得到你想要的结果:-1 0 1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8 9 10
顺便补充个小知识点:在Python的for循环里,修改循环变量(比如x -=1或y +=1)不会影响循环的迭代次数,因为每次迭代时,循环变量都会被重新赋值为可迭代对象(这里是range(10))的下一个元素。
内容的提问来源于stack exchange,提问作者Mitch
相关产品推荐
相关产品推荐

