
i = 100
j = 3
print(i / j)  #  single forward slash creates a FLOAT result
print(i // j)

i = -40
print(i % j)  #  MOD (not remainder)

print(i < j)
print(i >= j)
print(type(i < j))

print(i == j)
print(i != j)

s1="Hello"
s2="Hel"
# print(type(s2 += "lo")) # assignment is not an "expression" (but python 3.8 := IS)
s2 += "lo"
print(f"s1 is {s1} and s2 is {s2}")

print(s1 == s2) #  delegates to __eq__ method in the target object
print(s1 is s2)

x = 99
y = 99
print(x == y)
# print(x is 99) #  legal but issues a warning!

print(True and True)  #  short-circuiting...
print(True and False)
print(True or False)

#  library import CAN be done anywhere, but stylistically should be at the top
import operator
print("xor", operator.xor(True, False))

# from operator import xor
from operator import xor as exclusiveor
print("xor", exclusiveor(True, False))


#  Strictly & and | (and and or) are BITWISE operators
print(True | False)

