Python循环正在转义一个值

Python循环正在转义一个值,python,python-2.7,Python,Python 2.7,我是Python新手。我使用的是Python2.7.3,我编写了一个小函数来检查给定的数字是否为素数 守则如下: #!/usr/bin/python2.7 def isprime(n): if n == 1: print("1 is neither Prime nor Composite.") return False for x in range(2, n): if n % x == 0: print("

我是Python新手。我使用的是Python2.7.3,我编写了一个小函数来检查给定的数字是否为素数

守则如下:

#!/usr/bin/python2.7

def isprime(n):
    if n == 1:
        print("1 is neither Prime nor Composite.")
        return False
    for x in range(2, n):
        if n % x == 0:
            print("{} equals {} x {}".format(n, x, n // x))
            return False
        else:
            print("{} is a prime number".format(n))
            return True


for n in range(1, 5):
    isprime(n)
而输出是—

1 is neither Prime nor Composite.
3 is a prime number
4 equals 2 x 2
为什么是逃跑2。我也尝试过调试,但它只是绕过了2。
谢谢。

如果
n
2
,那么对于范围(2,n)中的x,在
行上:
范围(2,2)将返回一个空列表。

如果
n
2
,那么对于范围(2,n)中的x,在
行上:
范围(2,2)将返回一个空列表。

如果
n
2
,那么在
行上为范围内的x(2,n):
范围(2,2)将返回一个空列表。

如果
n
2
,那么在
行上为范围内的x(2,n):
范围内的x(2,2)将返回一个空列表。

考虑一下
n==2的情况:

def isprime(n):
    if n == 1: # nope
        ...
    for x in range(2, n): # here we go
那么实际发生了什么

>>> range(2, 2)
[]
什么都没有;您正在一个空的
范围内迭代

此外,您还有一个逻辑错误-如果
范围(2,n)
(即
2
)中的第一个值不是
n
的整数除数,则返回True
-您声称任何奇数都是素数:

>>> isprime(9)
9 is a prime number
True # what?!
如果按一个级别删除最后三行,则会修复这两个问题:

def isprime(n):
    if n == 1:
        print("1 is neither Prime nor Composite.")
        return False
    for x in range(2, n):
        if n % x == 0:
            print("{} equals {} x {}".format(n, x, n // x))
            return False
    else:
        print("{} is a prime number".format(n))
        return True
(或者,省去
else
,并将最后两行再删除一级)。这给了我:

>>> isprime(9)
9 equals 3 x 3
False
>>> isprime(2)
2 is a prime number
True

考虑以下情况,
n==2

def isprime(n):
    if n == 1: # nope
        ...
    for x in range(2, n): # here we go
那么实际发生了什么

>>> range(2, 2)
[]
什么都没有;您正在一个空的
范围内迭代

此外,您还有一个逻辑错误-如果
范围(2,n)
(即
2
)中的第一个值不是
n
的整数除数,则返回True
-您声称任何奇数都是素数:

>>> isprime(9)
9 is a prime number
True # what?!
如果按一个级别删除最后三行,则会修复这两个问题:

def isprime(n):
    if n == 1:
        print("1 is neither Prime nor Composite.")
        return False
    for x in range(2, n):
        if n % x == 0:
            print("{} equals {} x {}".format(n, x, n // x))
            return False
    else:
        print("{} is a prime number".format(n))
        return True
(或者,省去
else
,并将最后两行再删除一级)。这给了我:

>>> isprime(9)
9 equals 3 x 3
False
>>> isprime(2)
2 is a prime number
True

考虑以下情况,
n==2

def isprime(n):
    if n == 1: # nope
        ...
    for x in range(2, n): # here we go
那么实际发生了什么

>>> range(2, 2)
[]
什么都没有;您正在一个空的
范围内迭代

此外,您还有一个逻辑错误-如果
范围(2,n)
(即
2
)中的第一个值不是
n
的整数除数,则返回True
-您声称任何奇数都是素数:

>>> isprime(9)
9 is a prime number
True # what?!
如果按一个级别删除最后三行,则会修复这两个问题:

def isprime(n):
    if n == 1:
        print("1 is neither Prime nor Composite.")
        return False
    for x in range(2, n):
        if n % x == 0:
            print("{} equals {} x {}".format(n, x, n // x))
            return False
    else:
        print("{} is a prime number".format(n))
        return True
(或者,省去
else
,并将最后两行再删除一级)。这给了我:

>>> isprime(9)
9 equals 3 x 3
False
>>> isprime(2)
2 is a prime number
True

考虑以下情况,
n==2

def isprime(n):
    if n == 1: # nope
        ...
    for x in range(2, n): # here we go
那么实际发生了什么

>>> range(2, 2)
[]
什么都没有;您正在一个空的
范围内迭代

此外,您还有一个逻辑错误-如果
范围(2,n)
(即
2
)中的第一个值不是
n
的整数除数,则返回True
-您声称任何奇数都是素数:

>>> isprime(9)
9 is a prime number
True # what?!
如果按一个级别删除最后三行,则会修复这两个问题:

def isprime(n):
    if n == 1:
        print("1 is neither Prime nor Composite.")
        return False
    for x in range(2, n):
        if n % x == 0:
            print("{} equals {} x {}".format(n, x, n // x))
            return False
    else:
        print("{} is a prime number".format(n))
        return True
(或者,省去
else
,并将最后两行再删除一级)。这给了我:

>>> isprime(9)
9 equals 3 x 3
False
>>> isprime(2)
2 is a prime number
True


这不是我得到的输出-首先,
5
不包括在
范围(1,5)
中。请回顾您的问题。这不是我得到的结果-首先,
5
不包括在
范围(1,5)
中。请回顾您的问题。这不是我得到的结果-首先,
5
不包括在
范围(1,5)
中。请回顾您的问题。这不是我得到的结果-首先,
5
不包括在
范围(1,5)
中。请回顾您的问题。@AbhishekPrakash记住空格在Python中很重要!来自javascript背景,我完全忽略了它。iPrime(9)如何在原始逻辑中返回True?@user2963623因为
9%2!=0
,这会直接带您进入
其他
案例抱歉!我才意识到@AbhishekPrakash记住空格在Python中很重要!来自javascript背景,我完全忽略了它。iPrime(9)如何在原始逻辑中返回True?@user2963623因为
9%2!=0
,这会直接带您进入
其他
案例抱歉!我才意识到@AbhishekPrakash记住空格在Python中很重要!来自javascript背景,我完全忽略了它。iPrime(9)如何在原始逻辑中返回True?@user2963623因为
9%2!=0
,这会直接带您进入
其他
案例抱歉!我才意识到@AbhishekPrakash记住空格在Python中很重要!来自javascript背景,我完全忽略了它。iPrime(9)如何在原始逻辑中返回True?@user2963623因为
9%2!=0
,这会直接带您进入
其他
案例抱歉!我才意识到!