Skip to main content

Variables and Data Types

Introduction to Variables

Let's create a new Python file called variables by again right-clicking first-pycharm-project and clicking on New > Python file. Like before, we'll enter the desired name in the window that pops up. I have chosen the name variables.py.

Now with our blank variables.py file we can begin to learn what variables are about.

Why Use Variables?

Python can be used as a calculator as it allows us to perform calculators with whole-numbers. In programming, we refer to these whole-number values as integers or ints.

Let's say we want to use Python to add two whole-numbers. Try entering the following code in your variables.py file and running it.

print(1 + 1)

As you'd expect, Python tells us that 1 + 1 gives a result of 2.

one-plus-one-print.png

However, rather than simply print of such values once, we may want to store the results of a more complex calculation so that it can be used or modified later. This is when we would use something called a variable.

What Are Variables?

In the world of programming, variables are like containers that hold information. Imagine them as labeled boxes where you can store different types of data. This data could be numbers, words, sentences, or anything else your program needs to work with.

Variables allow you to give a name to a piece of data, making your code more readable and organised.

Variable Assignment

To put data into a variable, we use the assignment operator =. Now we can find a sum of two integers and then store the result.

my_sum = 1 + 1

But this alone won't display the result when we run the program. In order to this we will use another print() statement, but give it our my_sum variable.

Put together, we get the following two lines of code:

sum-with-variable.png

Naming Variables

Python has rules about naming variables. Variable names can start with a letter or underscore (_) and can be followed by letters, numbers, or underscores. However, they can't start with a number or contain spaces or special characters.

Self-Documenting Code

It's also a good idea to make sure your variable names are clear and meanginful. For example, recipe_name or ingredient_count are good variable names, as they help us understand what a variable is for and what a bit of code is doing.

Let's take the example of code used for finding the area for a rectangle:

a = x * y
print(a)
rectangle_area = width * length
print(rectangle_area)

While both code snippets are doing the same thing, understanding what the second bit of code is for requires less mental effort than understanding what the first bit of code is for. This is something to consider when writing code and choosing variable names.

When you write code that essentially "explains itself," we call this writing self-documenting code.

Reserved Words

It is also not advisable to give variable names that are also reserved words in Python. In Python, certain key words such such as while, for, if, else, import, exit, and others.

Take print for example. We use this in Python to indicate we want something to see output from our program. Let's see what happens if I instead use this for a variable name, and then try to use print again afterwards.

You'll see that print on line four now has a squiggly line beneath it. Moving the cursor over the print on line 4 gives us a pop-up message.

This is one of the other useful features of IDEs. Here it's telling us that the built-in command print is being "shadowed" by something else. Likewise, putting the mouse-over the command on line 5 shows another pop-up message.

This time we're being told that certain things that are "callable" in Python, but that int objects are not these things. This should make sense later.

Now when we run it we get the following output:

/home/dolica/mambaforge/envs/first-pycharm-project/bin/python /home/dolica/PycharmProjects/first-pycharm-project/variables.py 
2
Traceback (most recent call last):
  File "/home/dolica/PycharmProjects/first-pycharm-project/variables.py", line 5, in <module>
    print(my_sum)
TypeError: 'int' object is not callable

Process finished with exit code 1

On the first line, we have two paths. The first is the path to a particular version of Python that is being used specifically for our first-pycharm-project. The second path is the file that was run with this version of Python -- the variables.py file that we have just created.

After this, we see the number 2. This is the output created by the second line in our code, as Python was able to get to that point without any problems.

However, further down we get an error. The Run pane tells us that on Line 5 we attempted to treat an int as a Callable when it is not one. It even shows us that the command on that line we used was print(my_name).

While this is the exact same command that was used on Line 2, we have confused Python by replacing what it typically stores in the print box with something else. ANother incidcator of this is that the first print is highlighted differently while the second and third ones aren't.

Remeber: When you deal with errors the first thing you should do is identify the file and line that it is coming from. If you have any output before an error, that's an indication that the program was still running at least part of the way through.

We can fix this by using a different variable name for our other number.

Now the squiggly lines have disappeared. ANother indication that the issue has been fixed is that the second print command now has the same highlighting as the first one. Now let's examine the pop-up messages again.

reserved-word-fix.gif

The first pop-up message simply tells us we have a variable of the type int with a value of 1234.

The second pop-up message shows us some information about how to use the print command. This is another handy feature of IDEs -- showing us how commands work without having to go to its decleration or the documentation. Chances are you won't use any of the "advanced" features of print and will simply stick to using it with basic data.

Now you should understand why reserved words should not be used for naming variables.

Reusing Variables

Variables can hold different values over time. If you later find out you need 12 ingredients for the cake, you can simply change the value:

ingredient_count = 12

No need to create a new variable; the old one updates with the new value.

Dynamic Nature of Variables

Unlike some other programming languages, Python is dynamically typed. This means you don't have to specify the type of data a variable will hold. Python figures it out on its own.

Example: Storing a Name

Let's see a quick example. We can use a variable to store a person's name:

name = "Alice"

Now the variable name contains the string "Alice". You can use this variable to display the name or manipulate it in various ways.