# This is a comment, indicated because it starts with a `#` character
# Comments are ignored by python.

# Integers
x = 5
y = 2

result = x * y 
print(result)
print(x + y)  # addition
print(x - y)  # subtraction
print(x / y)  # division
print(x // y) # truncated division (result is integer)
print(x % y)  # modular arithmetic (integer remainder after division)
print(x ** y) # x to the power of y

# Floating point numbers
z = 5.0
t = 2.0
print(z * t)
print(z + t)
print(z - t)
print(z / t)
print(z // t)
print(z % t)
print(z ** t)

# Mixing integers and floating point numbers
# results in a floating point number
f = 5.0
g = 2
print(f * g)

# Complex numbers
a = 2 + 2j
b = 3 + 1j
print(a * b)
print(a + b)
print(a - b)
print(a / b)
#print(a // b) TypeError: can't take the floor of a complex number
#print(a % b)  TypeError: can't mod complex numbers
print(a ** b)

# Mixing complex numbers with integers / floating point numbers
# results in a complex number
print(a * 2)
print(a + 2.0)

# String variables
name = "Mary"
otherName = 'Joe'
longName = '''Supercalifregilistic
expialadocious
rumpilstiltskin'''
print(name)