for循环内添加一个换行符运行的结果得到的实际差异问题
python3吧
全部回复
仅看楼主
level 2
如图,我在学习python过程中发现一个问题,在for循环内Tab两次后添加一个换行符得到的两段代码中间实际上进行了两次换行,而Tab一次后添加一个换行符则进行了四次换行。我试了多种方法,比如将代码简单化,删除列表内包含的字典,删减列表内容,得到的结果都是一样的。不止有没有大佬能够解答这个问题?
2021年06月16日 02点06分 1
level 2
这是原代码,第31行
print('\n')Tab一次得到的结果是
print('\n')Tab两次得到的结果是
2021年06月16日 03点06分 2
level 2
简化代码段:
第7行进行相同的操作,print('\n')在if条件下的结果:
2021年06月16日 03点06分 3
level 2
但是删除else,并将print('\n')删除一次Tab后
得到
这里进行了6次换行
2021年06月16日 03点06分 4
level 2
我假设是python内置架构(专业名词我不太懂,小白)的问题,因为我在4楼的简易代码基础上进行了进一步尝试。这里添加了一个换行符但进行了6次换行,而列表元素有3个,那么,它是不是有某种倍数关系进行换行?那么我删减一个元素,如图
得到结果
显然,假设成立
2021年06月16日 03点06分 5
level 2
实际上仅保留了一个元素后得到的结果也符合猜想,两段代码间空了两行。而我们知道python对代码行的运行是不受行数的影响的,只要不进行换行指令那么两段代码分了多少行(没有尝试过回车二十次以上)得到的结果也不受影响
2021年06月16日 03点06分 6
我的结论时,在for循环内添加换行符将以倍数运行
2021年06月16日 03点06分
level 2
我的猜想对吗,有没有大佬来评论一下?[哈哈]
2021年06月16日 03点06分 7
level 1
我要笑了,print输出结尾默认是带换行的,print(“\n”)就是换行两次了,print(end=""),这样写可以让print结尾取消换行
2021年06月16日 15点06分 8
谢谢,我试试,按照电脑逻辑似乎确实是这样
2021年06月17日 01点06分
回复 他我和我 :Python的print就是这样的啊,不然你下一次print的内容怎么会在下一行
2021年06月17日 01点06分
@超级超级超级懒 [哈哈]也对,不过这种细节问题有的时候很难想得通
2021年06月17日 01点06分
1