Python:素数和in范围()
我正在学习python,正在研究这个问题: 以下是我的问题: 当n=2时,范围为(2,n),换句话说,范围在2和2-1=1之间Python:素数和in范围(),python,python-3.x,range,iteration,Python,Python 3.x,Range,Iteration,我正在学习python,正在研究这个问题: 以下是我的问题: 当n=2时,范围为(2,n),换句话说,范围在2和2-1=1之间 for x in range(2, n): if n % x == 0: print("{} equals {} x {}".format(n, x, n // x)) return False else: print(n, "is a prime number") return True
for x in range(2, n):
if n % x == 0:
print("{} equals {} x {}".format(n, x, n // x))
return False
else:
print(n, "is a prime number")
return True
a。是2%吗
b。如果数字是偶数,它将打印出来
A等于bxc
一旦条件为真,循环将中断还是将完成循环
c。其他人在循环之外吗?它对应的if语句是什么?(我知道如果n%x==0:,它就是),但是为什么它看起来好像在循环之外呢?
我试着运行它,并理解它,但后来我感到困惑。for。。其他混乱
您似乎被else
搞糊涂了,它是for
循环的一部分
def looptest(loops=5):
for i in range(loops):
print "i", i
if i == 3:
print "in if"
return
else:
print "in else of the loop"
你不是唯一一个
在Python中,for
循环可能在else
部分的末尾,这是在所有循环完成后执行的,除非有break
语句。是的,这不是很直观
因此,您应该阅读else
部分,作为for
循环的最后一部分
def looptest(loops=5):
for i in range(loops):
print "i", i
if i == 3:
print "in if"
return
else:
print "in else of the loop"
并尝试循环==5:
>>> looptest(5)
i 0
i 1
i 2
i 3
in if
对于循环数2,我们不希望返回,我们将运行循环的else
:
>>> looptest(2)
i 0
i 1
in else of the loop
请注意,return
必须在函数中,在控制台上尝试返回将导致错误
范围(2,2)=[]
正在Python控制台上尝试:
>>> range(2, 2)
[]
返回
return结束当前函数或在整个模块中运行。因此,在返回后
,不再执行代码相同部分中的其他代码(除了尝试
、最终
、上下文管理器等例外,但这与您的代码无关)。。。其他混乱
您似乎被else
搞糊涂了,它是for
循环的一部分
def looptest(loops=5):
for i in range(loops):
print "i", i
if i == 3:
print "in if"
return
else:
print "in else of the loop"
你不是唯一一个
在Python中,for
循环可能在else
部分的末尾,这是在所有循环完成后执行的,除非有break
语句。是的,这不是很直观
因此,您应该阅读else
部分,作为for
循环的最后一部分
def looptest(loops=5):
for i in range(loops):
print "i", i
if i == 3:
print "in if"
return
else:
print "in else of the loop"
并尝试循环==5:
>>> looptest(5)
i 0
i 1
i 2
i 3
in if
对于循环数2,我们不希望返回,我们将运行循环的else
:
>>> looptest(2)
i 0
i 1
in else of the loop
请注意,return
必须在函数中,在控制台上尝试返回将导致错误
范围(2,2)=[]
正在Python控制台上尝试:
>>> range(2, 2)
[]
返回
return结束当前函数或在整个模块中运行。因此,在返回后
,不再执行代码相同部分中的其他代码(除了尝试
、最终
、上下文管理器等例外,但这与代码无关)。a。否。范围(2,2)
在Python中是一个空集
b。一旦条件为true,包含循环的函数将返回,循环将不会完成。这是因为return
调用比if
语句低一级
c。我很确定您希望else
与for
对应。Python有一个for…else语法,如果for
循环正常终止(即没有中断
),它将执行else
子句的内容
换句话说,我想你想要这个:
for x in range(2, n):
if n % x == 0:
print("{} equals {} x {}".format(n, x, n // x))
return False
else:
print(n, "is a prime number")
return True
编辑:
当然,我可以解释整个循环。其思想是:对于2到n之间的每个数字,检查该数字是否是x的因子。如果是,那么n不是素数,我们就终止循环。然而,如果我们一直到循环的末尾,我们知道n是素数,因为它在2和n之间没有因子。else子句随后生效,并打印出该数字为素数。a。否。范围(2,2)
在Python中是一个空集
b。一旦条件为true,包含循环的函数将返回,循环将不会完成。这是因为return
调用比if
语句低一级
c。我很确定您希望else
与for
对应。Python有一个for…else语法,如果for
循环正常终止(即没有中断
),它将执行else
子句的内容
换句话说,我想你想要这个:
for x in range(2, n):
if n % x == 0:
print("{} equals {} x {}".format(n, x, n // x))
return False
else:
print(n, "is a prime number")
return True
编辑:
当然,我可以解释整个循环。其思想是:对于2到n之间的每个数字,检查该数字是否是x的因子。如果是,那么n不是素数,我们就终止循环。然而,如果我们一直到循环的末尾,我们知道n是素数,因为它在2和n之间没有因子。else子句随后生效,并打印出该数字为素数。看看这个函数:
def isPrime(n):
for i in range(2, int(n**0.5) + 1):
if n % i ==0:
return False
return True
迭代每一个可能的选项并不一定是最好的选择;请记住,范围永远不会超过数字的平方根
同样值得注意的是,您的输出将只打印第一组因子。看看这个函数:
def isPrime(n):
for i in range(2, int(n**0.5) + 1):
if n % i ==0:
return False
return True
迭代每一个可能的选项并不一定是最好的选择;请记住,范围永远不会超过数字的平方根
同样值得注意的是,您的输出将只打印第一组因子。请更正代码的格式,这一点很重要。我想,其他
应与处于同一级别。对于
,请更正代码格式,这很重要。我想,else
应该与for
的处于同一级别,范围如何?我对返回语句感到困惑。根据这个网站:[link](),“else子句属于for循环,而不是if语句”@eLg:这正是我想要描述的。你认为,我的描述有所不同,还是你只是在确认理解?确认。。。那么如果if条件为真,会发生什么呢?如果条件为false,则循环