什么是简化此操作的最佳方法?
#!/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")
答案 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')