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

标签 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 行时保持缩进不变?

最佳答案

用无条件执行内容的 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)

同样的效果。 for i in (2,):(parens optional)也可以,但是 one-tuple 需要的尾随逗号让很多人感到困惑,因为它发生这种情况,对常量文字的 list 的循环进行了优化,以循环对常量文字的 tuple 进行循环,因此不会造成性能损失。

关于Python如何在不缩进的情况下注释掉for语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52751225/

相关文章:

python - 根据 pandas 中的列值导出到 csv

python - 从另一个对象的变量设置一个对象的变量时奇怪的 Python 行为

java - 如何在 Android 上以编程方式创建断点

debugging - 实现功能与错误修复

debugging - 如何评估QR码的质量/正确性? (如何获得定量和定性的QR码特征)

Python:改进的集合表示法?

python - 如何使用 Pandas 删除数字中 2 个小数点中的 1 个

python - 使用 QMediaPlayer.duration() 时总是得到 0

python - 如何在 Tkinter 中刷新 GUI 窗口

python - 套接字卡在循环中