Python如何注释掉for语句而不取消注释
每次我调试包含for循环的代码时,例如Python如何注释掉for语句而不取消注释,python,python-3.x,debugging,indentation,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
# 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
行时,是否有任何方法保持缩进不变?用无条件执行内容的block语句替换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)
为了得到同样的效果<代码>对于(2)中的i:(parens可选)也会起作用,但是一个元组所需的尾随逗号会把很多人搞得一团糟,而且当它发生时,
list
s常量文本的循环被优化为tuple
s常量文本的循环,因此不会导致性能损失。用无条件执行内容的block语句替换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)
为了得到同样的效果<代码>对于(2)中的i:(parens可选)也会起作用,但是一个元组所需的尾随逗号会把很多人搞得一团糟,而且当它发生时,
list
s常量文本的循环被优化为tuple
s常量文本的循环,因此不会导致性能损失。您可以让for
循环迭代单个项元组:
for i in 2,:
# for i in range(3):
print(i)
您可以让
for
循环迭代单个项元组:
for i in 2,:
# for i in range(3):
print(i)
我通常将其替换为
,如果为True:
。在类似但不同的场景中,pass
会很有帮助(例如,您已将块的唯一一行填空,并且需要缩进),请尝试将行i=2
缩进到与print(i)
相同的级别。如果为True,我通常将其替换为。在类似但不同的场景中,pass
会很有帮助(例如,您已经划出了块的唯一一行,并且需要缩进),请尝试将该行缩进i=2
到与print(i)
相同的级别!我应该早点问的!非常感谢。太神了我应该早点问的!非常感谢。