How to toggle a value in Python

后端 未结 17 1010
梦谈多话
梦谈多话 2020-12-07 07:46

What is the most efficient way to toggle between 0 and 1?

17条回答
  •  渐次进展
    2020-12-07 08:25

    Using exception handler

    >>> def toogle(x):
    ...     try:
    ...         return x/x-x/x
    ...     except  ZeroDivisionError:
    ...         return 1
    ... 
    >>> x=0
    >>> x=toogle(x)
    >>> x
    1
    >>> x=toogle(x)
    >>> x
    0
    >>> x=toogle(x)
    >>> x
    1
    >>> x=toogle(x)
    >>> x
    0
    

    Ok, I'm the worst:

    import math
    import sys
    
    d={1:0,0:1}
    l=[1,0]
    
    def exception_approach(x):
        try:
            return x/x-x/x
        except  ZeroDivisionError:
            return 1
    
    def cosinus_approach(x):
        return abs( int( math.cos( x * 0.5 * math.pi  ) ) )
    
    def module_approach(x):
        return  (x + 1)  % 2
    
    def subs_approach(x):
        return  x - 1
    
    def if_approach(x):
        return 0 if x == 1 else 1
    
    def list_approach(x):
        global l
        return l[x]
    
    def dict_approach(x):
        global d
        return d[x]
    
    def xor_approach(x):
        return x^1
    
    def not_approach(x):
        b=bool(x)
        p=not b
        return int(p)
    
    funcs=[ exception_approach, cosinus_approach, dict_approach, module_approach, subs_approach, if_approach, list_approach, xor_approach, not_approach ]
    
    f=funcs[int(sys.argv[1])]
    print "\n\n\n", f.func_name
    x=0
    for _ in range(0,100000000):
        x=f(x)
    

提交回复
热议问题