Everything is an object in Python, even simple numbers. Python programs can be decomposed into modules,
statements, expressions, and objects, as follows:
1. Programs are composed of modules
2. Modules contain statements
3. Statements contain expressions
4. Expressions create and process objects
Here are built-in object types:
1. Basic Core types: Numbers, Strings, Lists, Dictionaries, Tuples, Files, Sets, Booleans, types, None
2. Program unit types: Functions, modules, classes
3. Implementation related types: Compiled code, stack tracebacks
all built-in types come in with free operations attached to them. Pythong is dynamically types -- your operations depend on
what you assignment to the object. It is also strongly typed, you can perform only operations that are valid.