If-else 缩进

If-else indentation

我现在正在玩 python3.5。我正在编写一个简单的代码,以找到小于给定整数的素数。我错误地解决了代码,我不知道为什么。这是代码:

n=int(input('Enter a numeric value: '))

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

我似乎不明白的是,为什么如果我像上面这样写代码,它会给出正确的答案,而如果我将 else 语句多缩进一次,输出结果就不一样了。例如:

输入数值:10

3

5

5

5

7

7

7

7

7

9

用于:

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

我觉得有必要说一下我刚开始学习python所以请带我slow:D

elsefor 关联。进一步缩进它会将它与 if.

相关联
  • 如果 if 没有
  • ,则 if 之后会运行 else
  • 如果 for 没有 break
  • ,则在 for 之后运行 else

你想要后一种行为,因为你 break 如果你找到了数字的因数。