Return Styles: Pseud0ch, Terminal, Valhalla, NES, Geocities, Blue Moon. Entire thread

Python help

Name: Anonymous 2010-10-17 12:08

if operator != ("add"|"sub"):
    print ("Invalid Operator")

Basically I want to check if operator has anything other than "add" or "sub" assigned to it, but python 2.6 is saying

TypeError: unsupported operand type(s) for |: 'str' and 'str'

How should I check if operator is anything other than add or sub?

Name: Anonymous 2010-10-18 6:05

>>8,9
Mr. 9, you fail.  This is why people take that "compilers" class in CS -- so they don't fail as badly as you do.


>>> import dis
>>> def func8(operator):
...     if not operator in ("add", "sub"):
...         print ("Invalid Operator")
...
>>> def func9(operator):
...     if operator not in ("add", "sub"):
...         print("Invalid Operator")
...
>>> dis.dis(func8)
  2           0 LOAD_FAST                0 (operator)
              3 LOAD_CONST               4 (('add', 'sub'))
              6 COMPARE_OP               7 (not in)
              9 POP_JUMP_IF_FALSE       25

  3          12 LOAD_GLOBAL              0 (print)
             15 LOAD_CONST               3 ('Invalid Operator')
             18 CALL_FUNCTION            1
             21 POP_TOP             
             22 JUMP_FORWARD             0 (to 25)
        >>   25 LOAD_CONST               0 (None)
             28 RETURN_VALUE        
>>> dis.dis(func9)
  2           0 LOAD_FAST                0 (operator)
              3 LOAD_CONST               4 (('add', 'sub'))
              6 COMPARE_OP               7 (not in)
              9 POP_JUMP_IF_FALSE       25

  3          12 LOAD_GLOBAL              0 (print)
             15 LOAD_CONST               3 ('Invalid Operator')
             18 CALL_FUNCTION            1
             21 POP_TOP             
             22 JUMP_FORWARD             0 (to 25)
        >>   25 LOAD_CONST               0 (None)
             28 RETURN_VALUE

Newer Posts
Don't change these.
Name: Email:
Entire Thread Thread List