Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/357.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_Python_Python 3.x - Fatal编程技术网

素数-Python

素数-Python,python,python-3.x,Python,Python 3.x,我是Python编程的新手,需要反馈。我写了一个程序,把素数打印到给定的整数。但产出与预期不同。你能给我一个关于这个代码的反馈吗。我做错了什么?为什么 非常感谢。 user_integer = int(input("Please enter an integer : ")) for num in range(0, user_integer + 1): for i in range(2, num): if (num % i) == 0:

我是Python编程的新手,需要反馈。我写了一个程序,把素数打印到给定的整数。但产出与预期不同。你能给我一个关于这个代码的反馈吗。我做错了什么?为什么

非常感谢。

user_integer = int(input("Please enter an integer : "))
for num in range(0, user_integer + 1):
    for i in range(2, num):
        if (num % i) == 0:
            break
        else:
            print(num)
此代码:

user_integer = int(input("Please enter an integer : "))
for num in range(0, user_integer + 1):
    for i in range(2, num):
        if (num % i) == 0:
            break
        else:
            print(num)
将打印每个奇数,包括非素数。设num等于9,则9%2==0为False,否则执行body。您应该首先检查所有潜在的除数,然后
打印
,如果:

user_integer = int(input("Please enter an integer : "))
for num in range(2, user_integer + 1):
    for i in range(2, num):
        if (num % i) == 0:
            break
    else:
        print(num)
输出(对于输入
25
):


请注意,
else
的标识-这里它是for else not if else的一部分,因此当且仅当未发出
break
时,才会执行
打印。

您的错误是由放置else语句引起的

本质上,每次数字不能被除时,else语句都会执行。例如,数字9:

9%2不等于0,因此它将打印9,即使9不是素数

你可以这样做

user_integer = int(input("Please enter an integer : "))

for num in range(0, user_integer + 1):
    for i in range(2, num):
        if (num % i) == 0:
            break
        
    else:
        print(num)

如果您是python新手,最好开始编写优化代码。您可以使用列表理解来实现类似
[i for i in range(0,user,integer)]

欢迎:)这是一个很好的实践,可以说出输出是什么以及您期望的是什么这是否回答了您的问题?是的,谢谢你,先生:)你还应该看看更好的算法,比如有一个在
user_integer = int(input("Please enter an integer : "))

for num in range(0, user_integer + 1):
    for i in range(2, num):
        if (num % i) == 0:
            break
        
    else:
        print(num)