每次我调试包含for循环的代码时,例如
# When I debug this code
for i in range(3):
print(i)
我想修复一个变量并执行代码,例如
# I want to do this
i = 2
# for i in range(3):
print(i)
但是,上面的代码导致错误,因为出现了意外的缩进。因此,我总是必须取消for循环内的行缩进,这是重复的工作:
# But I have to do this
i = 2
# for i in range(3):
print(i)
在注释for
行时,有什么方法可以使缩进保持不变吗?
答案 0 :(得分:5)
用块语句替换for
循环,该语句无条件地执行内容:
i = 2
# for i in range(3):
if 1: # Or if you prefer, if True:
print(i)
现在可以缩进了,但是由于if 1:
/ if True:
是无条件执行的(在Python 3中,在CPython参考解释器上,它们两个都完全优化了if
;它执行无需任何测试),其行为与手动确定的版本相同。
或者,完全不添加i = 2
,您可以使for
循环遍历单个常数值:
for i in [2]: # range(3): Old code
print(i)
以获得相同的效果。 for i in (2,):
(可选的括号)也可以使用,但是一个逗号{-tuple
所需要的结尾逗号会使很多人陷入混乱,并且发生时,循环遍历list
个常量文字经过优化,无论如何都可以循环遍历tuple
个常量文字,因此不会造成性能损失。
答案 1 :(得分:1)
您可以改为使for
循环遍历单项元组:
for i in 2,:
# for i in range(3):
print(i)