Python has several basic datatypes including integers, floats, strings, lists, tuples, dictionaries, booleans, and sets. Variables can be assigned different datatypes and each datatype has specific characteristics like whether values can be modified. For example, integers represent numeric values, lists can contain mixed types and are ordered/modifiable, and tuples are like lists but are read-only.