Elif错误,没有输出

时间:2014-04-10 04:20:04

标签: python

编写一个将测试函数的Python函数。

当老男士俱乐部成员聚在一起参加派对时,他们喜欢抽雪茄。如果雪茄的数量在40到60之间(含),那么Gents Party就会成功。除非它是一个周末,在这种情况下,雪茄的数量没有上限。如果具有给定值的一方成功则返回True,否则返回False。

派对(30,假)→假 派对(50,假)→真 Party(70,True)→True

您的程序应该以这些方式测试函数并生成正确的输出:

派对(30,假)→假 派对(50,假)→真 Party(70,True)→True Party(30,True)→False Party(50,True)→True 派对(60,假)→真 派对(61,假)→假 派对(40,假)→真 派对(39,假)→假 Party(40,True)→True Party(39,True)→False

def Party(Cigars, IsWeekend):
    us = bool(True)
    if IsWeekend == False:
        if Cigars < 40:
            us = bool(False)
            elif IsWeekend == True:
                if Cigars < 60:
                    us = bool(False)
                if Cigars > 60:
                    us = bool(False)
                    print(us)
Party(30, False)      
Party(50, False)      
Party(70, True)        
Party(30, True)       
Party(50, True)       
Party(60, False)       
Party(61, False)        
Party(40, False)        
Party(39, False)        
Party(40, True)        
Party(39, True)

“elif”给出错误,但据我所知,这是正确的语法......我需要额外的眼睛......有什么建议吗?

1 个答案:

答案 0 :(得分:1)

您的elif应该匹配if,而代码中不是这种情况。

例如:

if something:
    # <do_something>
elif something else:
    # <do_something_else>

在上面的示例中,elif具有匹配的if。

在您的代码中

elif IsWeekend == True:

没有匹配的if阻止。

您可能打算这样做:

def Party(Cigars, IsWeekend):
    us = bool(True)
    if IsWeekend == False:
        if Cigars < 40:
            us = bool(False)
    elif IsWeekend == True:
        if Cigars < 60:
            us = bool(False)
        if Cigars > 60:
            us = bool(False)
    print(us)

就像一个注释(与手头的问题无关),一些建议:

  • 在python中,当您将某些内容比作True时,您可以这样做 做一个if condition而不是if condition == True。同样如此 检查是否错误。你可以在任何地方做if not condition 想做一个if condition == False
  • 同样@Henry Kieter指出,你不需要做bool(True)或。{ bool(False)。只需直接使用TrueFalse