为什么我的 for 循环没有迭代所有值

Why my for loop is not iterating all the values

当我 运行 这段代码并将输入作为 25 时,它应该 return 我 它不是素数 , 但是当我调试代码时,范围值不会迭代到 if 条件中,只有范围的第一个值被传递,如果它不是 == 0,它会移动到 else 部分。

def find(x):
    if x > 1:
        for i in range(2,x):
            if x % i == 0:
                return "its not a prime num"
            else:
                return "Its a prime num"


user = int(input("Enter your no: "))
print(find(user))

请帮助我为什么这样工作,我是编程新手。 TIA

如评论中所述,这是一个简单的修复方法。只需将 else 语句的 return 移动到循环之外。

def find(x):
    if x > 1:
        for i in range(2,x):
            if x % i == 0:
                return "its not a prime num"
        return "Its a prime num"


user = int(input("Enter your no: "))
print(find(user))

在循环内使用 return 会中断循环并退出函数,即使迭代仍未完成。请改用 print