关于布尔函数错误

时间:2018-07-21 18:18:27

标签: python function boolean

在练习中: “帕洛阿尔托的松鼠一天中大部分时间都在玩。特别是温度在60到90(含)之间时,它们会玩。除非在夏天,否则上限是100,而不是90。 boolean 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

我怀疑它不会考虑给定的每种输入,特别是由于最后两行,但是当我尝试运行此代码时,它在第二行给出了一条错误消息。我不知道它是什么,也没有任何解决方案。

2 个答案:

答案 0 :(得分:0)

第一个有一个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

答案 1 :(得分:0)

您不必针对真或假进行测试。您可以只使用ifif 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