gpt4 book ai didi

python - while not __ 和 while __ == false 之间的区别? (Python)

转载 作者:太空宇宙 更新时间:2023-11-04 09:49:48 28 4
gpt4 key购买 nike

我试图区分 while 循环的不同编写方式。

我专门为一个扑克游戏写这篇文章,我在其中区分不同的手牌类型。在编写我的 is_pair 函数时,我首先说 pair = False。我发现继续循环的唯一方法是如果我说 while pair == False: ...。对于我的 is_flush 函数,我可以设置 flush = True 并且 while 循环在 while flush 上运行并继续直到 flush 的循环不再为真。

我已经尝试过 while not pair: 但那没有用。我希望它在 pairFalse 时继续,因此当它找到一对时它将返回为 True

我认为 flush 的语句看起来更简洁,我想知道是否有另一种方法可以将该样式合并到我的 pair 函数中。

最佳答案

由于您的 while not pair: 循环不起作用,您发现了一个重要的区别:pair == False 仅在 pair 时测试为真> 设置为 0False(唯一测试为等于 False 的两个值),而 while not pair 测试 any truth value (反转该值)。

您似乎已经为 pair 分配了一些 other 值,这两个值都不是导致行为改变的值(一个真值提前爆发,或者一个使循环比预期更长的假值)。

正是这种差异Python style guide 的原因之一。建议您始终使用 if true_expressionif not false_expression 而不是使用 == True== False:

  • Don't compare boolean values to True or False using ==.

    Yes: if greeting:
    No: if greeting == True:
    Worse: if greeting is True:

最后但同样重要的是,对于一个 while ...: 循环,它只针对单个 bool 标志(while flag:while not pair: ),请考虑使用 while True:break。所以与其这样做:

flag = True
while flag:
# ...
if condition:
flag = False

改为这样做:

while True:
# ...
if condition:
break

关于python - while not __ 和 while __ == false 之间的区别? (Python),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48282888/

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