if语句条件后的缩进错误

时间:2016-05-26 17:40:59

标签: python-2.7 indentation

在以下代码中,第5行有缩进错误。 我想要的是当第4行的条件为真然后中断 应该执行否则div = div + 2应该执行。

max_num=input()
for num in range(2,max_num+1):
 for div in range(3,max_num/2):
   if(num%div==0):break
   div=div+2 
 else: print num
 if(num==2): num=num+1
 else      : num=num+2

我是python的新手。请帮帮我.. :)

2 个答案:

答案 0 :(得分:0)

请使用2或4个空格进行缩进。我看到你的缩进是不一致的 - 有一次你使用1个空格而其他你使用3个。

你所做的应该按照我的意愿工作,但它只是不一致。

这是一个稍微有点组织的版本:

max_num=input()

for num in range(2,max_num+1):
    for div in range(3,max_num/2):
        if(num%div==0): break
        div=div+2 
    else:
        print num

    if(num==2):
        num=num+1
    else:
        num=num+2

您还可以优化它以便更有效地工作:

# Makes sure only ints are allowed. Else throws an exception
max_num = int(raw_input())

for num in range(2, max_num + 1):
    try:
        (div for div in range(3, max_num / 2, 2) if num % div == 0).next()
    except StopIteration:
        print num

    # This section is not used as I see
    # if(num==2):
    #     num=num+1
    # else:
    #     num=num+2

答案 1 :(得分:-1)

我建议添加此代码,但我想知道你的代码需要什么结果。

max_num=input()
for num in range(2,max_num+1):
 for div in range(3,max_num/2):
   if(num%div==0):break
   else:div=div+2 
 print num
 if(num==2): num=num+1
 else      : num=num+2