python与语句

python与语句,python,Python,除和语句外,此程序工作正常。有人知道原因吗?原因是或包括和。使用=它给出了异或,也就是xor import random def main(): number = random.randint(0,100) print(number) guess = int(input("Enter your guess: ")) if guess == number : print("You win $10,000!") elif guess //

语句外,此程序工作正常。有人知道原因吗?

原因是
包括
。使用
=它给出了异或,也就是xor

import random

def main():
    number = random.randint(0,100)
    print(number)
    guess = int(input("Enter your guess: "))

    if guess == number :
        print("You win $10,000!")

    elif guess // 10 == number // 10 or guess % 10 == number % 10 :
        print("You win 1,000$!")

    elif guess // 10 == number // 10 and guess % 10 == number % 10 :
        print("You win $3,000!")

    else :
        print("You win $0.")

main()

因为要做到这一点,数字必须等于猜测。。。如果你需要先检查最严格的声明,那么
中就包括了这一点。如果你不要求最后一个
elif
,就不可能告诉你你做错了什么。一个人怎么能赢3000美元呢?这不是一个和声明,而是游戏逻辑。如果数字是36,我猜是36,我赢10000美元是因为36=36,我也赢1000美元是因为(3==3或6==6),我赢3000美元是因为(3==3和6==6)。或者不是排他性的,并且对于小于100的自然数,你的第三个条件与第一个条件相同。用户2093578,为什么你不用简单的英语解释一下每个奖品的条件是什么?对于小于100的自然数,条件三仍然与条件一相同。很好!测试时,我读到“输入你的猜测”,甚至没有意识到这是一个条件。@Hyperboreus:但是
number
可以是100,不小于100…我怀疑这实际上是OP代码中的一个错误。(这就是为什么
randint
的文档会说“您可能想要
randrange
”)但如果不是,您需要对条件3进行稍微复杂一点的讨论。(但您所说的直观想法非常明显。)@Hyperboreus:事实上,稍等片刻……对于所有数字,条件3与条件1相同,句号。(我们可以避免计算机浮点问题,因为我们在这里显式处理
int
)我同意所有整数都是这样。我把问题理解为关于
的问题,在这种情况下,他的代码不允许这样做,因为它包含在inclusive or中。我认为我们正在击败一匹死马,但这应该迁移到数学中;)
import random
def main():
    number = random.randint(0,100)
    print(number)
    guess = int(input("Enter your guess: "))

    if guess == number :
        print("You win $10,000!")

    elif (guess // 10 == number // 10) != (guess % 10 == number % 10) :
        print("You win 1,000$!")

    elif guess // 10 == number // 10 and guess % 10 == number % 10 :
        print("You win $3,000!")

    else :
        print("You win $0.")




main()