3

or在函数中遇到问题。无论值是什么,该if语句都会持续评估。当我删除 时,工作正常。Truechoiceorif

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 ()
4

4 回答 4

4

'a' 的计算结果为 True,因此您需要正确构建 if 语句。

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 ( )
于 2013-01-02T01:00:51.903 回答
4

关于它自己的答案or是正确的。您实际上是在问是否"a"为真,它总是如此。但是还有另一种方法:

if choice in 'Aa':

再说一次,没有错:

if choice.lower() == 'a':
于 2013-01-02T01:07:29.280 回答
2

in在这种情况下使用运算符会更容易:

if choice in ['A', 'a']: ...
于 2013-01-02T01:06:53.410 回答
0
if choice == 'A' or choice =='a':
于 2013-01-02T00:59:44.773 回答