Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python:素数和in范围()_Python_Python 3.x_Range_Iteration - Fatal编程技术网

Python:素数和in范围()

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

我正在学习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
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,则循环