我正在编写一个简单的算法来检查整数的素性,我在将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
Tags:
Python中唯一的
for
循环在技术上是“for each”,因此您可以使用当然,Python可以做得更好:
也可以是等价的(假设在Java循环的末尾有一个
return true
)。事实上,后者被认为是接近它的方式。参考:
在Java for循环中,步骤(示例中的
i += 2
部分)发生在循环的末尾,就在重复之前。转换为一段时间后,for循环将相当于:在Python中是类似的:
但是,您可以使用Python的^{} 函数使其更为“Pythonic”,并且更易于阅读,该函数允许您指定一个
step
参数:直接翻译为:
相关问题 更多 >
编程相关推荐