首页 > 解决方案 > 蟒蛇 3.6.5。为什么 OR 不能按我的预期工作?

问题描述

为什么如果我使用 OR 在 !!! 部分,即使我在猜测输入中输入数字 1 - 9,它是否也会中断。为什么我不需要同时输入'q'和'quit',因为这就是我假设AND的意思......'q'和'quit'......

import random

    while True:
        print("\nGuess a number between 1 and 9.")
        guess = input("I guess: ")

        if guess == 'q' !!!or!!! 'quit':
            break

        number = random.randrange(1, 10)
        try:
            if int(guess) < number:
                print(f"You guess was too low. The number was {number}")
            elif int(guess) > number:
                print(f"Your guess was too high. The number was {number}")
            elif int(guess) == number:
                print(f"Your guess was exactly right! The number was {number}")
        except ValueError:
            print("Please only guess numbers!")

因此,使用 OR 不起作用,而使用 AND 则起作用。这对我来说毫无意义。为什么是这样?

标签: pythonpython-3.6

解决方案


if guess == 'q' or 'quit':

此语句不起作用,因为您试图将字符串用作布尔值。OR 并不假设您希望像之前一样发生完全相同的事情,您必须再次填写条件。

if guess == 'q' or guess == 'quit':

这将起作用,因为您现在从右侧获取布尔值,而不仅仅是尝试使用字符串。


推荐阅读