给定一周中的一天,将其编码为0 = Sun,1 = Mon,2 = Tue,... 6 = Sat和一个布尔值(表示我们是否正在休假),返回格式为“ 7:00”的字符串”表示闹钟何时应响。在工作日中,警报应为“ 7:00”,在周末应为“ 10:00”。除非我们休假-否则在工作日应为“ 10:00”,在周末应为“休息”。
我的代码:
def alarm_clock(day,vacation):
if(vacation):
if(day == 0 | day == 6):
return "off"
return "10:00"
else:
if(day == 0 | day == 6):
return "10:00"
return "7:00"
使用输入:
print(alarm_clock(0,True))
我的代码应该为“ off”时返回“ 10:00”
使用输入:
print(alarm_clock(0,False))
我的代码返回“ 7:00”,应该是“ 10:00”
我的代码中的错误在哪里?
答案 0 :(得分:1)
像这样更改它:
def alarm_clock(day,vacation):
if(vacation):
if(day == 0 or day == 6):
return "off"
return "10:00"
else:
if(day == 0 or day == 6):
return "10:00"
return "7:00"
print(alarm_clock(0,True))
结果:
off
管道没有达到您的期望:Pipe character in Python实际上是按位运算符。 :)
答案 1 :(得分:0)
在official documentation中可以看到,Python中的logical "or" operator
是or
,而不是|
,它是bitwise operator
答案 2 :(得分:0)
您使用按位或“ |”。您需要使用逻辑或“或”
def alarm_clock(day,vacation):
if(vacation):
if(day == 0 or day == 6):
return "off"
return "10:00"
else:
if(day == 0 or day == 6):
return "10:00"
return "7:00"