java - Python 的 Java 标准 for 循环的等价物是什么?

标签 java python loops for-loop translate

我正在编写一个简单的算法来检查整数的素数,但我在将这段 Java 代码转换为 Python 时遇到了问题:

for (int i = 3; i < Math.sqrt(n); i += 2) {
    if (n % i == 0)
        return false;
}

所以,我一直在尝试使用它,但显然我跳过了 3 的除法:

i = 3
while (i < int(math.sqrt(n))):
    i += 2  # where do I put this?
    if (n % i == 0):
        return False

最佳答案

Python 中唯一的 for 循环在技术上是“for-each”,因此您可以使用类似的东西

for i in xrange(3, int(math.sqrt(n)), 2):  # use 'range' in Python 3
    if n % i == 0:
        return False

当然,Python 可以做得更好:

all(n % i for i in xrange(3, int(math.sqrt(n)), 2))

也是等效的(假设在该 Java 循环的末尾有一个 return true)。事实上,后者将被视为处理它的 Pythonic 方式。


引用:

关于java - Python 的 Java 标准 for 循环的等价物是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17415198/

相关文章:

java - 如何使用服务器上的 -Dlog4j.configuration=file :/path/to/log4j. 属性运行我的 flink 作业

performance - 多次迭代或复杂的代码?

python - 如何在猜谜游戏中创建猜测计数器

java - 使用Byte Buddy为Spring Boot的启动添加Bean

java - 生成随机数,将它们添加到数组中,然后使用冒泡排序对它们进行排序

java - 如何从 Apache POI 获取脚注和段落?

python - 如何从 HDF5 文件中提取单个 JPEG 图像

python - 使用 python 从自定义路径验证 SSL 证书

javascript - 如何将此 Python 标点符号去除功能转换为 JavaScript?

javascript - 在 JavaScript 中使用 break 与 find() 的 for 循环