简单Python程序赢得';不编译

简单Python程序赢得';不编译,python,Python,我有一个简单的程序,由于缩进错误而无法编译。我相信我已经正确地缩进了。有人能给我解释一下为什么它不能在第5行编译吗。这是因为缩进问题,但我相信我已经正确缩进了 for n in range(2, 10): for x in range(2, n): if n % x == 0: print(n, 'equals', x, '*', n//x) print("compile please")

我有一个简单的程序,由于缩进错误而无法编译。我相信我已经正确地缩进了。有人能给我解释一下为什么它不能在第5行编译吗。这是因为缩进问题,但我相信我已经正确缩进了

for n in range(2, 10):
     for x in range(2, n):
         if n % x == 0:
              print(n, 'equals', x, '*', n//x)
              print("compile please")
              break
     else:
         # loop fell through without finding a factor
         print(n, 'is a prime number')

你的问题是你的编辑器可能混合了标签和空格。你不需要这样的编辑

这是您的代码,没有选项卡,对我来说运行得非常好:

for n in range(2, 10):
     for x in range(2, n):
         if n % x == 0:
              print(n, 'equals', x, '*', n//x)
              print("compile please")
              break
     else:
         # loop fell through without finding a factor
         print(n, 'is a prime number')
如果您不想学习像Vim或Emacs这样的新的很棒的编辑器,那么您可以使用IDLE之类的工具。或者是崇高的,原子的,方括号的,或者是真正优秀的编辑


确保正确缩进代码的另一个非常好的方法是将代码键入Python REPL。

当询问Python问题时,请发布完整的回溯。报告了什么错误?缩进必须是4个空格,而不是5个空格(有些是4,有些是5)。您有缩进问题。有些行有4个空格,有些行有5个。@Micheled'Amico从编译的意义上讲,这不是必须的。。你可以有3。。