繁体   English   中英

为什么这个 elif 语句给我一个错误?

[英]why does this elif statement give me an error?

我不明白为什么我的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 列遇到“<”。正在等待以下之一:“(” ...“{” ...“[” ...“.” ...“+” ...“-” ... "~" ... "not" ... "async" ... "await" ... "False" ... "True" ... "None" ... ... .. . ... ... ... ... ... "\\'" ... "\\"" ... "\\'\\'\\'" ... "\\"\\"\\"" 。 .. "\\'" ... "\\"" ... "\\'\\'\\'" ... "\\"\\"\\"" ... "\\'" ... "\\"" 。 .. "\\'\\'\\'" ... "\\"\\"\\"" ... "\\'" ... "\\"" ... "\\'\\'\\'" ... " \\"\\"\\"" ...

你的意思是?

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

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

在 Python 中,您可以更简洁地将其编写为:

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

用这个:

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

您应该从代码中删除and

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

它应该是这样的:

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

错误是无效语法,请参阅 20 > 10 和 < 21,您将 21 与什么进行比较? 你也必须指定。

elif sum(player_cards) > sum(computer_cards) and < 21 应该是

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

或者

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

取决于您的要求

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

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运算符的任一侧进行测试。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM