IndentationError:期望代码上的缩进块

时间:2018-03-16 21:21:12

标签: python python-2.7

我写了这段代码来测试日期,但我一直收到这个错误:

  

IndentationError:预期会出现缩进块。

我搜索了一个答案,但我找不到任何东西。

def dateIsBefore(y1,m1,d1,y2,m2,d2):
if y1<y2:
    return True
if y1 == y2:
    if m1< m2:
        return True
    if m1 == m2:
        return d1>d2
return False            

def georgiana(y1,m1,d1):
if y1==1582:
    if m1==10:
        if d1>=15:
            return True
        if m1>10:
            return True         
if y1>1582:
    return True 
return False

def Real(y1,m1,d1,y2,m2,d2):
if d1 <= daysOfMonths[m1-1] and d2 <= daysOfMonths[m2-1] and m1 <= 12 and m2 <= 12:
    return True
else:
    return False

def test_dates(y1,m1,d1,y2,m2,d2):
if dateIsBefore(y1,m1,d1,y2,m2,d2) and georgiana(y1,m1,d1,y2,m2,d2) and real(y1,m1,d1,y2,m2,d2) :
    return True
else:   
    return False

print test_dates(2001,8,28,2018,3,16)

1 个答案:

答案 0 :(得分:0)

属于某个函数的每一行都应将其缩进级别加1。

所以这就是你的缩进应该是什么样的:

def dateIsBefore(y1, m1, d1, y2, m2, d2):
    if y1 < y2:
        return True
    if y1 == y2:
        if m1 < m2:
            return True
        if m1 == m2:
            return d1 > d2
    return False            

def georgiana(y1, m1, d1):
    if y1 == 1582:
        if m1 == 10:
            if d1 >= 15:
                return True
            if m1 > 10:
                return True         
    if y1 > 1582:
        return True 
    return False

def Real(y1, m1, d1, y2, m2, d2):
    if d1 <= daysOfMonths[m1 - 1] and d2 <= daysOfMonths[m2 - 1] and m1 <= 12 and m2 <= 12:
        return True
    else:
        return False

def test_dates(y1, m1, d1, y2, m2, d2):
    if dateIsBefore(y1, m1, d1, y2, m2, d2) and georgiana(y1, m1, d1, y2, m2, d2) and real(y1, m1, d1, y2, m2, d2):
        return True
    else:   
        return False

print test_dates(2001, 8, 28, 2018, 3, 16)

您的代码中还存在其他一些问题:

  • 您正在使用3个参数定义georgiana()函数:georgiana(y1, m1, d1)。但是你用6个参数调用它:georgiana(y1, m1, d1, y2, m2, d2)
  • 您要定义Real(),但要调用real()