缩进错误:应为缩进块,python(if/else)

缩进错误:应为缩进块,python(if/else),python,Python,我找不到错误 def free_car(lane_a,lane_b,lane_c): cars_a = len(lane_a) cars_b = len(lane_b) cars_c = len(lane_c) if cars_c >= 7: #free_1_c if cars_a >= cars_b: #free_1_a #free_1_b else:

我找不到错误

def free_car(lane_a,lane_b,lane_c):
    cars_a = len(lane_a)
    cars_b = len(lane_b)
    cars_c = len(lane_c)

    if cars_c >= 7:
        #free_1_c
        if cars_a >= cars_b:
            #free_1_a
            #free_1_b
        else:
            #free_1_b
            #free_1_a
    elif cars_a >= cars_b:
        #free_1_a
        if cars_b > cars_c:
            #free_1_b
            #free_1_c
        else:
            #free_1_c
            #free_1_b
    elif cars_b > cars_a and cars_b > cars_c:
        #free_1_b
        if cars_a > cars_c:
            #free_1_a
            #free_1_c
        else:
            #free_1_c
            #free_1_a
    else:
        #we
错误从第11行开始(在cars\u c>=7之后的else上)。我知道这是一个愚蠢的错误,但我不明白为什么错误会出现在这样的块中:

if cars_a >= cars_b:
    #free_1_a
    #free_1_b
else:
    #free_1_b
    #free_1_a
由于
free_1_a
free_1_b
都被注释掉了,因此它们对python来说实际上是空的。这是违法的

您可以通过添加
pass

if cars_c >= 7:
    #free_1_c
    if cars_a >= cars_b:
        pass
        #free_1_a
        #free_1_b
    else:
        pass
        #free_1_b
        #free_1_a
elif cars_a >= cars_b:
    #free_1_a
    if cars_b > cars_c:
        pass
        #free_1_b
        #free_1_c
    else:
        pass
        #free_1_c
        #free_1_b
elif cars_b > cars_a and cars_b > cars_c:
    #free_1_b
    if cars_a > cars_c:
        pass
        #free_1_a
        #free_1_c
    else:
        pass
        #free_1_c
        #free_1_a
else:
    pass
    #we
i、 e


pass
基本上表示“无操作”

Python要求在每个子句后面都有一条语句。如果您不想让它做任何事情,只需编写单词
pass

if cars_c >= 7:
    #free_1_c
    if cars_a >= cars_b:
        pass
        #free_1_a
        #free_1_b
    else:
        pass
        #free_1_b
        #free_1_a
elif cars_a >= cars_b:
    #free_1_a
    if cars_b > cars_c:
        pass
        #free_1_b
        #free_1_c
    else:
        pass
        #free_1_c
        #free_1_b
elif cars_b > cars_a and cars_b > cars_c:
    #free_1_b
    if cars_a > cars_c:
        pass
        #free_1_a
        #free_1_c
    else:
        pass
        #free_1_c
        #free_1_a
else:
    pass
    #we

在这些if和else块中只有注释。这在语法上是无效的;您需要某种类型的可执行语句。如果没有更好的方法,您可以使用
pass
,尽管在实际代码中,通常最好进行重构,以便不需要空块。

您没有在
free\u car()
中缩进代码。抱歉,页面会按顺序移动选项卡,但它会识别所有内容