# Every value in Python has a type
# The type tells Python what the value is and what you can do with it

# str — text
name = "Bull"

# int — whole numbers
age = 25

# float — decimal numbers
height = 1.80

# bool — True or False
active = True

print(name)    # Bull
print(age)     # 25
print(height)  # 1.8
print(active)  # True

# You can always check the type with type()
print(type(name))    # <class 'str'>
print(type(age))     # <class 'int'>
print(type(height))  # <class 'float'>
print(type(active))  # <class 'bool'>

# Types decide what you can do with a value
# Same operator — different result depending on type
print(25 + 25)        # 50    — int + int = math
print("Bull" + "25")  # Bull25 — str + str = concatenation

# "25" is not the same as 25
text_number = "25"
real_number = 25

print(type(text_number))  # <class 'str'>
print(type(real_number))  # <class 'int'>
