gpt4 book ai didi

python - 'and' 和 'or' 的操作顺序是什么?

转载 作者:太空宇宙 更新时间:2023-11-04 08:01:50 25 4
gpt4 key购买 nike

在 Python 中是这样的:

def blackjack_check(hand): # hand is a tuple
winning_cards = [10,'Jack','Queen','King']
if hand[0] in winning_cards and hand[1] == 'Ace':
return True
elif hand[0] == 'Ace' and hand[1] in winning_cards:
return True
else:
return False

和这个一样吗?

def blackjack_check(hand): # hand is a tuple
winning_cards = [10,'Jack','Queen','King']
if (hand[0] in winning_cards and hand[1]=='Ace' or
hand[0] == 'Ace' and hand[1] in winning_cards):
return True
else:
return False

我可以使用第二个代码块而不是第一个吗?它会消除额外的 elif 语句,而且看起来更干净。我关心的是“和”和“或”运算符的工作方式。两个“和”比较是分开的,“或”比较它们吗? 'and' 和 'or' 有运算顺序吗?我运行了代码,它可以双向工作,但我想确保我准确理解运算符的工作原理。

最佳答案

是的,第二个代码块等同于第一个。根据the documentation , or 的优先级低于 and。这意味着 if 语句被评估为

if ((hand[0] in winning_cards and hand[1] == 'Ace') or 
(hand[0] == 'Ace' and hand[1] in winning_cards)):

这就是你想要的。

您可以返回该 bool 表达式的结果以缩短代码:

def blackjack_check(hand):
winning_cards = [10, 'Jack', 'Queen', 'King']
return (hand[0] in winning_cards and hand[1] == 'Ace' or
hand[0] == 'Ace' and hand[1] in winning_cards)

关于python - 'and' 和 'or' 的操作顺序是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38733885/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com