您的位置:首页 > 编程语言 > Python开发

在pycharm中编辑Python程序 循环、IF语句报错的原因(格式问题)

2017-10-11 11:00 501 查看
      在pycharm中编辑程序时候,往往代码正确,但不知道哪里报错,这里以下面一个例子来说明代码格式的规范性在pycharm中的重要性。

      题目:编写函数,接受一个正偶数为参数,输出2个素数,且这2个素数之和等于原正偶数,存在多组符合的素数,则全部输出。

     

import math
def IsPrime(n):
m=int (math.sqrt(n))+1
for i in  range(2,m):
if n%i==0:
return  False
return True

def judge(n):
if isinstance(n,int) and n>0 and n%2==0:
for i in range(3, int(n/2)+1):
if i%2==1 and IsPrime(i) and IsPrime(n-i):
print(i,'+',n-i,'=',n)

judge(80)


         结果报错如下所示;

  D:\learn\python\python.exe D:/learn/code/MyFirstPython.py

     File "D:/learn/code/MyFirstPython.py", line 11

       for i in range(3, int(n/2)+1):

                                 ^

    IndentationError: unindent does not match any outer indentation level

        Process finished with exit code 1

           修改后将judge函数中for语句移到上面if语句后面即可。这是由于for语句是承接if语句进行处理的,注意if语句后面的“:”!

   如下图所示:

    

import math
def IsPrime(n):
m=int (math.sqrt(n))+1
for i in  range(2,m):
if n%i==0:
return  False
return True

def judge(n):
if isinstance(n,int) and n>0 and n%2==0:
for i in range(3, int(n/2)+1):
if i%2==1 and IsPrime(i) and IsPrime(n-i):
print(i,'+',n-i,'=',n)

judge(80)


 D:\learn\python\python.exe D:/learn/code/MyFirstPython.py

5 + 75 = 80

7 + 73 = 80

9 + 71 = 80

11 + 69 = 80

13 + 67 = 80

15 + 65 = 80

17 + 63 = 80

19 + 61 = 80

21 + 59 = 80

23 + 57 = 80

25 + 55 = 80

27 + 53 = 80

29 + 51 = 80

31 + 49 = 80

33 + 47 = 80

35 + 45 = 80

37 + 43 = 80

39 + 41 = 80

Process finished with exit code 0

    

       这就提示我们,以后用pycharm要注意编写格式问题。细节决定成败!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Python pycharm 格式
相关文章推荐