如何简化if语句是的

时间:2015-12-31 13:33:30

标签: python

什么是简化此操作的最佳方法?

#!/usr/bin/python

ans=input("choose yes or no: ")

if ans == "yes" or ans == "YES" or ans == "y" or ans == "Y":
    print("ok")
else:
        print("no")

4 个答案:

答案 0 :(得分:9)

您可以使用列表进行检查:

if ans in ['yes', 'YES', 'y', 'Y']:
    print('ok')
else:
    print('no')

答案 1 :(得分:4)

我建议按如下方式简化:

if ans.lower().startswith('y'):
    print('ok')
else:
    print('no')

如果我们只对第一个字符感兴趣时减少整个事情感觉很浪费,那么你可以对第一个字符进行切片(切片不会失败IndexError就像普通的索引一样):

if ans[:1].lower() == 'y':

答案 2 :(得分:2)

制作set个可接受的答案。这也将为您提供O(1)的查找时间,一旦您有大量可接受的答案,这可能会派上用场。

acceptable_answers = {'yes', 'YES', 'y', 'Y'}
if ans in acceptable_answers:
     #do stuff
else:
     #do other stuff

答案 3 :(得分:2)

还有一种方法:

accepted = answer.lower() in ['y','yes']
print ('ok' if accepted else 'no')