什么是做多个ors的pythonic方法?

时间:2014-10-07 21:03:27

标签: python

有没有办法有效地做到:

if operator != ('+' or '-' or '*' or '/'):

无需执行

operator != '+' and operator != '-' and operator != '*'

2 个答案:

答案 0 :(得分:5)

使用in运算符

if operator not in ('+', '-', '/')

答案 1 :(得分:0)

阅读解决方案的有效方法是:if operator in ('+', '-', '*', '/')或简单地if operator in '+-*/'(感谢@kindall),就像在字符串中查找字符串一样。我个人觉得它的可读性较差。

使用字典(例如,将函数绑定到每个运算符)并使用例外:

ops = {'+': 'plus', '-': 'minus', '*': 'times', '/': 'div'}
operator = '/'
try:
  print ops[operator]
except KeyError:
  print "Unknow operation (%s)" % (operator)