gpt4 book ai didi

python - boolean 语句在应该为 false 时返回 true(使用 and & or)

转载 作者:行者123 更新时间:2023-12-01 07:11:46 24 4
gpt4 key购买 nike

我有一个 boolean 语句,使用 and & or 来确定它是真还是假。结果应该是 false,但它返回 true。为什么是这样?我该怎么做才能让它实际输出真正的答案。

如果我注释掉最后一部分(或 nighttime==False),它会给我正确的答案,但这是我需要包含的内容,而且这样做没有意义一个 and 因为我想要它,这样如果车头灯熄灭,只有在白天或夜间不亮时才可以开车。

      got_car=True
drunk=False
gas=2 #(gallons) - gas currently in the tank of the car
distance=100 #miles from home
mpg=35 #miles per gallon expected to be used driving home
nighttime=False
headlights_out=True

can_drive=battery_charged==True and got_car==True and drunk==False and gas*mpg>=distance==True and headlights_out==False or nighttime==False
print(can_drive)

if can_drive==True:
print("Drive home.")
else:
print("Do not drive home.")

它应该打印 False,因为没有足够的气体使其完成完整的距离回家,但它打印 true。

最佳答案

can_drive 有点冗长,您应该在条件中使用括号,因为 and 的优先级高于 or,因此您可以使用以下内容:

can_drive= battery_charged and got_car and not drunk and gas * mpg >= distance and (not headlights_out or not nighttime)

您还可以改进 can_drive 声明后面的代码:

if can_drive:
print("Drive home.")
else:
print("Do not drive home.")

请记住,将 boolean 值与 True 进行比较是多余的,因此当您想要检查 boolean 值是否为 True 或使用 not< 时,只需使用 boolean 值即可 如果您想检查这是否为 False

关于python - boolean 语句在应该为 false 时返回 true(使用 and & or),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58177566/

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