关于python:if-else缩进

If-else indentation

本问题已经有最佳答案,请猛点这里访问。

我现在在玩Python3.5。我正在研究一个简单的代码,找出小于给定整数的素数。我错误地解决了更多的代码,我不知道为什么。这是代码:

1
2
3
4
5
6
7
8
9
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

为:

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

我觉得有必要说我刚开始学Python,所以请慢一点:d


elsefor有关。缩进后,它会进一步与if相关联。

  • 如果if不运行,则在if运行后的else运行。
  • 如果for不运行break,则for运行后的else

你需要后一种行为,因为如果你找到了数字的一个因子,你就可以得到第11个(9)。