在练习中: “帕洛阿尔托的松鼠一天中的大部分时间都在玩耍。特别是,如果温度在 60 到 90(含)之间,它们就会玩耍。除非是夏天,否则上限是 100,而不是 90。给定一个 int 温度和布尔值 is_summer,如果松鼠玩耍则返回 True,否则返回 False。”
def squirrel_play(temp, is_summer):
for temp in range(61,101) and is_summer = True:
return True
elif is_summer = False and temp > 90:
return False
else:
return True
或者这个:
def squirrel_play(temp, is_summer):
if is_summer = True and temp is in range(61,101): #Changed
return True
elif is_summer = False and temp > 90:
return False
else:
return True
我怀疑它不会考虑给定的每种输入,特别是因为最后两行,但是当我尝试运行此代码时,它在第二行给了我一条错误消息。我不知道这是什么,也没有看到任何解决方案。
您不必测试 True 或 False。您可以使用
if
或 if not
进行检查
def squirrel_play(temp, is_summer):
low_temp = 60
hi_temp = 91
if is_summer: # implicit check for True
hi_temp = 101
if temp in range(low_temp, hi_temp):
return True
return False
第一个有一个 for 语句,所以它肯定是错误的。 第二个也是错误的,因为如果
is_summer
为 False 并且温度低于 60,那么它将求助于 else 块并给出 True
,这是错误的
def squirrel_play(temp, is_summer):
if is_summer == True and temp in range(60,101):
return True
elif is_summer == False and temp in range(60, 91):
return True
else:
return False
def squirrel_play(temp, is_summer):
if is_summer:
return 60 <= temp <= 100
elif not is_summer:
return 60 <= temp <= 90
return False
更简洁的版本:
def squirrel_play(temp, is_summer):
return temp in range(60, 101 if is_summer else 91)
def squirrel_play(temp, is_summer):
if is_summer:
return temp in range(60,101)
else:
return temp in range(60,91)
def squirrel_play(temp, is_summer):
返回(温度>=60且温度<=90) or (temp>=90且温度<=100 and is_summer)