Let's start with the strong typing aspect.
1 + "1" # TypeError in Python
Let's talk about the opposite of dynamic typing (static typing) for contrast. In a statically typed language such as C++, you need to fix the type of the variable. This type will be the same as that of the object which is assigned to that variable.
int x; // declare step x = 4; // assign step
In a dynamically typed language, the interpreter does not assign a type to the variable per se because the type can change at runtime. If you ask a variable its type, it will give you the type of the object it is currently assigned to at that moment.
x = 4 print(type(4)) # at this moment, x points to an integer x = "Hello, world" print(type(x)) # and at this moment, x points to a string