编写一个将测试函数的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)→Falsedef 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”给出错误,但据我所知,这是正确的语法......我需要额外的眼睛......有什么建议吗?
答案 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)
就像一个注释(与手头的问题无关),一些建议:
True
时,您可以这样做
做一个if condition
而不是if condition == True
。同样如此
检查是否错误。你可以在任何地方做if not condition
想做一个if condition == False
。bool(True)
或。{
bool(False)
。只需直接使用True
或False
。