Python如何在不缩进的情况下注释掉for语句

时间:2018-10-11 02:20:41

标签: python python-3.x debugging indentation

每次我调试包含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行时,有什么方法可以使缩进保持不变吗?

2 个答案:

答案 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)