1

我正在尝试解决这个CodingBat 问题:

喜欢聚会的松鼠们聚在一起抽雪茄。只有在工作日雪茄数量在 40 到 60 支之间时,这样的聚会才被认为是成功的。然而,在周末,雪茄的数量没有上限。如果具有给定值的一方成功,则编写一个返回 True 的函数。

不幸的是,虽然我偶尔使用过 Python,但我并不擅长理解为什么我的代码在第 5 行出现语法错误而失败:

def cigar_party(cigars, is_weekend):
  if is_weekend:
    if cigars >= 40:
      return True
  else if:
    cigars >= 40 and cigars =< 60:
      return True
  else:
    return False
4

9 回答 9

5

在 Python 中,您需要使用elif而不是else if.

更多信息: http ://docs.python.org/2/tutorial/controlflow.html

还要更改以下行:

else if:
cigars >= 40 and cigars =< 60:

对此:

elif cigars >= 40 and cigars <= 60:
    return True

小于或等于符号必须是<=,并且在关键字 elif 和表达式的其余部分之间不应有冒号。

于 2012-12-18T06:03:18.897 回答
1

首先,正如 tcdowney 指出的那样,语法是 elif,而不是 else if,其次,您需要在 elif 语句中具有逻辑评估,而不是某种操作。最后,在等号之前有大于/小于号。

elif cigars >= 40 and cigars <= 60:
    return True

这应该够了吧 ;)

于 2012-12-18T06:38:04.923 回答
1
def cigar_party(cigars, is_weekend):
  a = range(61)
  if is_weekend and cigars not in a:
    return True

  elif cigars in range(40,61):
    return True

  else:
    return False
于 2019-12-25T10:34:32.573 回答
1
def cigar_party(cigars, is_weekend):
   if is_weekend and cigars>=40:
     return True
   elif not is_weekend and cigars in range(40,61):
     return True
   return False
于 2020-04-04T11:55:26.517 回答
0
def cigar_party(cigars, is_weekend):
    if is_weekend:
        return cigars >= 40
    return 40 <= cigars <= 60  // Python supports this type of Boolean evaluation

或使用三元形式:

def cigar_party(cigars, is_weekend):
    return cigars >= 40 if is_weekend else 40 <= cigars <= 60
于 2013-12-20T02:29:50.630 回答
0
def cigar_party(cigars, is_weekend):
  if is_weekend:
    if cigars>=40:
      return is_weekend
  else:
    if cigars in range(40,61):
      return True
  return False
于 2020-02-17T06:46:12.010 回答
0
def cigar_party(cigars, is_weekend):
  if is_weekend == True:
    if cigars >= 40:
      return True
    else:
      return False
  if is_weekend == False:
    if cigars >= 40 and cigars <= 60:
      return True
    else:
      return False
于 2020-06-16T22:24:46.573 回答
0
#got 9/12 not bad! 

is_weekday = True
is_weekend = True 


def cigar_party(cigars, is_weekend):
    if is_weekend and cigars >= 0: 
        return True 
    elif is_weekday and cigars >= 40: 
        return True 
    else: 
        return False

于 2020-08-30T09:38:04.793 回答
-1
def cigar_party(cigars, is_weekend):
  if is_weekend and cigars >= 40:
      return True
  elif cigars >= 40 and cigars <= 60:
      return True
  else:
    return False
于 2020-04-23T22:39:47.920 回答