python - 在 Python 中,当循环运行到结束时,如何创建一个 for 循环,其中变量的值等于范围的停止值?

标签 python

我在将它从 C 移植到 Python 时遇到概念性问题:

int p;
for (p = 32; p < 64; p += 2) {
    if (some condition)
        break;
    do some stuff
}
return p;

将循环转换为 for p in range(32,64,2) 不起作用。这是因为在循环结束后,p 等于 62 而不是 64。

我可以用 while 循环很容易地做到这一点:

p = 32
while p < 64:
    if (some condition):
        break
    do some stuff
    p += 2
return p

但我正在寻找一种Pythonic 方式

最佳答案

如果不满足条件,您可以使用 else 进行 for 循环,以像 C 循环那样添加 2:

for p in range(32, 64, 2):
   if some_condition:
       break
else:
    # only executed if for loop iterates to the end
    p += 2

关于python - 在 Python 中,当循环运行到结束时,如何创建一个 for 循环,其中变量的值等于范围的停止值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45129146/

相关文章:

python - 如何从动态键获取Python中的字典值

python - 如何将输出写入文件python

python - 使用 argparse 传递以减号 (-) 开头的参数值

python - 解析 pandas 数据帧的有效方法

python - 定义简单抽象属性的最优雅方式

python - 使用 Python 的 Beautiful Soup 提取图像

python - 为什么 "None"与 "np.newaxis"具有相同的效果?

python - 将条件格式应用于 openpyxl 中的非连续选择

python - 在不知道数据大小的情况下从文件中读取 float 作为 numpy 数组

python - 使用代码存储库时如何引用资源的相对路径