1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106
|
# test if conditions which are optimised by the compiler
if 0:
print(5)
else:
print(6)
if 1:
print(7)
if 2:
print(8)
if -1:
print(9)
elif 1:
print(10)
if 0:
print(11)
else:
print(12)
if 0:
print(13)
elif 1:
print(14)
if 0:
print(15)
elif 0:
print(16)
else:
print(17)
if not False:
print('a')
if not True:
print('a')
else:
print('b')
if False:
print('a')
else:
print('b')
if True:
print('a')
if (1,):
print('a')
if not (1,):
print('a')
else:
print('b')
# test evaluation of the if-condition with tuples as arguments
# non-constant tuples should be evaluated even though they will evaluate to true
def f(x):
print("f", x)
if (f(1),):
print(18)
if (f(2), f(3)):
print(19)
# test if-conditions within a function
f2 = 0
def f(t1, t2, f1):
if False:
print(1)
if True:
print(1)
if ():
print(1)
if (1,):
print(1)
if (1, 2):
print(1)
if t1 and t2:
print(1)
if (t1 and t2): # parsed differently to above
print(1)
if not (t1 and f1):
print(1)
if t1 or t2:
print(1)
if (t1 or t2): # parse differently to above
print(1)
if f1 or t1:
print(1)
if not (f1 or f2):
print(1)
if t1 and f1 or t1 and t2:
print(1)
if (f1 or t1) and (f2 or t2):
print(1)
f(True, 1, False)
|