As the name indicates, a variable is something which can be changed later. Let’s suppose your teacher tells you a number containing 8 digits and asks you to remember for the next five days. If you don’t have a good memory like me, you can write those 8 digits on a piece of paper or may send a text to yourself. The main idea behind this is to save the number and retrieve it whenever your teacher asks for it. A variable in a computer program is just like that, you assign a value/data to a symbolic identifier that can be retrieved any time within a program. It’s just like a container, you can save values/data, retrieve them or even change them later in your program.
In Python, unlike the other programming languages like Java, C or C++, you don’t have to declare variable types before using them, it’s actually quite simple in Python. You just think of a name, start using it as a variable and change its data type whenever you want. Let’s create our first variable.
>>> num = 100
num is the name of our variable, you can name it whatever you want. The equal “=” is an assignment operator. Remember that in Python, it shouldn’t be read as “is equal to”, you can say “is set to”. This assignment operator helped us store 100 in our num variable. So in short, “the numvariable is set to 100” or you can say the variable named num was tied to the value 100. Let’s print our first variable and see the output.
>>> num = 100 >>> num 100
If you want to check the type of data we stored in the num variable, just pass your variable in the type function like this
So we stored an integer in our variable, let’s change the type and assign a string “hundred” to our num variable
>>> num = 100 >>> num 100 >>> type(num)
>>> num = "Hundred" >>> num 'Hundred' >>> type(num)
Now the type of our variable has changed to a string, let’s play again with our variable and now store a floating point number in our num variable.
>>> num = 100 >>> num 100 >>> type(num)
>>> num = "Hundred" >>> num 'Hundred' >>> type(num) >>> num = 55.5 >>> num 55.5 >>> type(num)
Let’s go into some technical details and see what happened above.
In Python, variables are references to objects and the actual value or data is stored in the objects. In our example, our variable num was a reference to an integer object. Later we changed the object to a string and then our num variable was referencing to a new object that was a string. Note that as soon as we changed the object, our variable num deleted the previous object (int) and started referencing to a new object, in our case that was a string. Same happened when we changed our object from string to a floating point number. Again, our num variable just removed the old object (string) and stored a new type of object (float).
Let’s create two variables, one is num1 and the other is num2, assign a value 100 to num1 and set num2 to num1 like this:
>>> num1 = 100 >>> num2 = num1 >>> num1 100 >>> num2 100
The output will be 100 & 100, in this case, both variables are referencing to the same int object. You can confirm it by passing both these variables to the identity function (id())
>>> num1 = 100 >>> num2 = num1 >>> num1 100 >>> num2 100 >>> id(num1) 140712306146144 >>> id(num2) 140712306146144
You can see that both these variables refer to the same object but once you change the value of any of these variables, a new object will be created.
>>> num1 = 100 >>> num2 = 101 >>> num1 100 >>> num2 101 >>> id(num1) 140712306146144 >>> id(num2) 140712306146176
In Python, you can use a single value to multiple variables. This helps you to initialize several variables at a time which you can change later in your program.
>>> name = name1 = name2 = "Richard" >>> name 'Richard' >>> name1 'Richard' >>> name2 'Richard'
Or if you want to assign multiple values to multiple variables in one statement (using Tuple Assignment)
>>> name, num, my_float = "Richard", 24, 24.2 >>> name 'Richard' >>> num 24 >>> my_float 24.2
In the above example, the variable name was assigned to the string “Richard”, the num variable was assigned to the integer 24 and my_float variable was assigned to the float 24.2. This will only work if the number of elements on the left side of the assignment operator is equal to the values on the right side, otherwise, it will result in an error.
Deleting A Variable
You can delete a variable in Python using del keyword. del stands for delete and once you delete a variable, its value can’t be retrieved later in the program.
Here are some of the guidelines that you should follow while naming a variable
- Your variable must only have one word with no spaced.
- You can use underscore (_) (my_name) or CamelCase notation (MyName) for variables having more than one word.
- You can use upper case letters “A” to “Z” or lower case letters “a” to “z”.
- Your variable must start with a letter or an underscore (_).
- You can’t use hyphens (-).
- Your variable shouldn’t start from a number, however, you can use numbers in the remainder of a variable.
- You can’t use symbols like %,$,#
- Variables in Python are case sensitive, the variable bob is different from the variable called Bob.
- Try to use descriptive names for your variables instead of using single characters.
- You can’t name your variable the same name as one of the Python keywords. Here is the list of all Python Keywords
False class from or None continue global pass True def if raise and del import return as elif in try assert else is while async except lambda with await finally nonlocal yield break for not
You will get an error if you use any of these keywords as a variable in your program.
>>> def = 100 SyntaxError: invalid syntax