【问题标题】:why does this elif statement give me an error?为什么这个 elif 语句给我一个错误?
【发布时间】:2019-01-25 06:53:53
【问题描述】:

我不明白为什么我的 elif 语句出现错误。

我正在使用 eclipse 插件 pydev 和最新版本的 python。

例如,

if  sum(player_cards) = 14 and sum(computer_cards) = 10

这应该输出为True

elif sum(player_cards) > sum(computer_cards) and < 21 :

相反,它给了我这个:

“在第 42 行第 54 列遇到“

【问题讨论】:

  • sum(player_cards) > sum(computer_cards)
  • 异常中明确说明了该问题。花更多时间了解异常。
  • 那么为什么删除“and”会修复语法错误?为什么不用告诉它“和” int?

标签: python and-operator


【解决方案1】:

好吧,如果我能清楚地了解您要做什么,我将能够帮助编写代码。 但是,这里的语法似乎不对:

sum(player_cards) > sum(computer_cards) and < 21 

我会这样做:

if (condition):
    <statements here>
elif ((sum(player_cards) > sum(computer_cards)) and (sum(player_cards)< 21)):
    <statements here>
else:
    return

注意括号的使用。变量需要在 and 运算符的两侧进行测试。

【讨论】:

    【解决方案2】:

    你的意思是?

    elif sum(player_cards) > sum(computer_cards) and sum(player_cards) < 21:
    

    and 是一个布尔运算符。每边都需要两个操作数。但&lt; 21 不是表达式。

    在 Python 中,你可以更简洁地写成:

    elif 21 > sum(player_cards) > sum(computer_cards):
    

    【讨论】:

      【解决方案3】:

      使用这个:

      elif (sum(player_cards) > sum(computer_cards)) and (sum(player_cards)< 21):
      

      【讨论】:

        【解决方案4】:

        您应该从代码中删除 and:

        elif sum(player_cards) > sum(computer_cards) and < 21:
        

        应该是这样的:

        elif sum(player_cards) > sum(computer_cards) < 21
        

        【讨论】:

          【解决方案5】:

          错误是无效语法,请参阅 20 > 10 和

          elif sum(player_cards) > sum(computer_cards) 和

          elif sum(player_cards) > sum(computer_cards) and sum(computer_cards) < 21
          

          或

           elif sum(player_cards) > sum(computer_cards) and sum(player_cards) < 21
          

          取决于您的要求

          【讨论】:

            猜你喜欢
            • 2011-05-31
            • 2015-12-11
            • 1970-01-01
            • 1970-01-01
            • 2013-11-14
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2017-01-10
            相关资源
            最近更新 更多