if statement without a condition

前端 未结 3 647
余生分开走
余生分开走 2020-12-11 03:10
def f1(x,y):
      if x:    
          x = [1,2,3]
          x.append(4)
      else:
          x = 2
      return x + y

L1 = [1,2,3]
L2 = [55,66]
L3 = []
y = 3
prin         


        
相关标签:
3条回答
  • 2020-12-11 03:56

    Your if statement is equivalent to if bool(x): ... where Python first tries to look for a __nonzero__ method on x (__bool__ in Python 3) and if it cannot find it returns True per default unless x is None, False, has a __len__ method that returns zero, is an empty mapping or a numeric type with value zero.

    Some examples:

    >>> class A(object):
    ...     pass
    ... 
    >>> bool(A())
    True
    >>> class B(object):
    ...     def __nonzero__(self): return False
    ... 
    >>> bool(B())
    False
    >>> class C(object):
    ...     def __len__(self): return 0
    ... 
    >>> bool(C())
    False
    >>> class D(object):
    ...     def __len__(self): return 0
    ...     def __nonzero__(self): return True
    ... 
    >>> bool(D())
    True
    
    0 讨论(0)
  • 2020-12-11 04:03

    It is to check whether x is true or false(binary).

    if x:

    returns true when the x value is not equal to 0(when x is a number) and it returns true if it has at least a character(when x is a string). It returns false if x is equal to '0' or '' or 'None'

    For Eg:

    a = 10
    if a:
        print a
    

    This prints '10'

    a = 'DaiMaria'
    if a:
        print a
    

    This prints 'DaiMaria'

    a = 0.1
    if a:
        print a
    

    Prints 0.1

    a = 0
    if a:
        print a
    

    Prints nothing as it returned False.

    a = None
    if a:
        print a
    

    Prints nothing as it returns False.

    a = ''
    if a:
        print a
    

    Prints nothing as it returns False.

    0 讨论(0)
  • 2020-12-11 04:06

    The condition is whether or not x is a truthy value

    0 讨论(0)
提交回复
热议问题