Python &引用;或;导致出现问题的条件;如果;

Python &引用;或;导致出现问题的条件;如果;,python,if-statement,Python,If Statement,我在函数中遇到或条件问题。无论选择的值是什么,if语句都将作为True进行计算。当我移除或时,如果工作正常 def chooseDim (): **choice = input ('Do you need to find radius or area? ') if choice == 'A' or 'a':** area = 0 area = int(area) areaSol () elif choice == 'R'

我在函数中遇到
条件问题。无论选择的值是什么,
if
语句都将作为
True
进行计算。当我移除
时,
如果
工作正常

def chooseDim ():
    **choice = input ('Do you need to find radius or area? ')
    if choice == 'A' or 'a':**
        area = 0
        area = int(area)
        areaSol ()

    elif choice == 'R' or 'r':

        radSol ()

    else:
        print ('Please enter either A/a or R/r.')
        chooseDim ()
def chooseDim ( ):
**choice = input ('Do you need to find radius or area? ')
if choice == 'A' or choice == 'a':**
    area = 0
    area = int(area)
    areaSol ( )

elif choice == 'R' or choice == 'r':

    radSol ( )

else:
    print ('Please enter either A/a or R/r.')
    chooseDim ( )

“a”的计算结果为True,因此需要正确构造if语句

def chooseDim ():
    **choice = input ('Do you need to find radius or area? ')
    if choice == 'A' or 'a':**
        area = 0
        area = int(area)
        areaSol ()

    elif choice == 'R' or 'r':

        radSol ()

    else:
        print ('Please enter either A/a or R/r.')
        chooseDim ()
def chooseDim ( ):
**choice = input ('Do you need to find radius or area? ')
if choice == 'A' or choice == 'a':**
    area = 0
    area = int(area)
    areaSol ( )

elif choice == 'R' or choice == 'r':

    radSol ( )

else:
    print ('Please enter either A/a or R/r.')
    chooseDim ( )

在这种情况下,只需在
操作符中使用
就更容易了:

if choice in ['A', 'a']: ...

关于
本身的答案是正确的。你实际上是在问
“a”
是否为真,事实总是如此。但还有另一种方法:

if choice in 'Aa':
再说一次,这也没什么错:

if choice.lower() == 'a':

每隔几个小时就会有人问这个问题<代码>或
连接完整条件,而不是条件中的单个选项。这不是“神奇”的方式。这实际上源于英语中的一个常见错误:“要么
choice
是'a'或者
choice
是'a'”,而不是“要么
choice
是'a'或者'a'”。移动“任一”都可以修复它,但在大多数编程语言中都不是这样@我一直和你在一起,直到你用英语说这是个错误。需要引证。@kojiro:*耸耸肩*我是一个母语为英语的人,在任何事情上都不会错。怎么样?:)@我想,LightnessRacesinOrbit比大多数StackOverflow答案都好。谢谢你的澄清。我用了一个“in”来纠正它。它现在运行良好。实际上,这是我以前从未见过使用过的方法-大多数(包括我)使用标准列表,而不是字符串。@是的,起初我本能地使用一个元组,然后我意识到我正在制造一个外部不可变的iterable来容纳两个单一元素内部不可变的iterable。这似乎不对