在CodingBat上解决雪茄和松鼠拼图会引发语法错误

时间:2012-12-18 06:01:09

标签: python if-statement syntax-error

我正在尝试解决this 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

9 个答案:

答案 0 :(得分: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与表达式的其余部分之间不应有冒号。

答案 1 :(得分:1)

首先,正如tcdowney指出的那样,语法是elif,否则,如果第二,你需要在elif语句中使用逻辑assessent,而不是某种操作。最后,在等号前面加上greaterthan / smallerthan符号。

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

应该这样做;)

答案 2 :(得分: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

答案 3 :(得分: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

答案 4 :(得分: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

答案 5 :(得分: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

答案 6 :(得分: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

答案 7 :(得分: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

答案 8 :(得分:-1)

create or alter TRIGGER Sales.bonus_reminder
    ON Sales.SalesPersonQuotaHistory
    WITH ENCRYPTION
    AFTER INSERT, UPDATE 
    AS RAISERROR ('Notify Compensation', 16, 10)