Python variables are containers that store data values. Variables are created by assigning a value without declaring the variable type. The type of a variable can be specified during assignment or using the type() function. Strings can be declared using single or double quotes and variable names are case-sensitive. Python supports numeric data types like integers, floats, and complex numbers. Random numbers can also be generated using the random module.