Skip to main content

Variables and Data Types

Introduction to Variables

To start, let's create a new Python file called "variables." This can be done by going to the project tool window on the left-hand side and right-clicking on your "first-pycharm-project" folder. From hwere you can then select "New" > "Python file." Just like before, you'll need to specify the desired filename in the window that appears. In this case, I've gone with the name variables.py.

With our newly created variables.py file we can now delve into the ceoncept of variables.

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.

Consider a basic task: adding two whole numbers using Python. You can achieve this by entering the following code into your "variables.py" file and running it:

print(1 + 1)

As expected, Python tells us that 1 + 1 gives a result of 2.

one-plus-one-print.png

However, you may want to use a certain value more than once. It is often useful to store data in our code for repeated use. This is where the concept of variables comes into play.

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 something 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 like we did before, except this time we are storing the result so that it can be accessed again.

my_sum = 1 + 1

We have now created a box with the label my_sum that contains an integer of the value 2. Now we can display this by giving our my_sum variable to the print() command.

When combined, these two lines of code appear as follows:

sum-with-variable.png

Naming Variables

Python enforces specific rules for naming variables. Variable names must begin with a letter or an underscore (_) and can be followed by letters, numbers, or underscores. However, they cannot begin 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)

Both code snippets accomplish the same task, but the second one requires less mental effort to understand its purpose. This is an important consideration when writing code and selecting variable names.

When you choose names in your code that make it more "self-explanatory," it is often referred to as self-documenting code. This is a very good habit to pick up.

Reserved Words

Avoid using variable names that coincide with reserved words in Python. Python reserves certain keywords such as while, for, if, else, import, exit, and others for its built-in functions and tools. By using these keywords for variables, we are in a sense "confusing" Python, as it no longer knows where to find the built-in tools that are associated with those names. This is almost guaranteed to make your program misbehave.

For example, consider the use of print. In Python, print is used to display data from our code in the console or terminal. Let's see what happens when we use print as a variable name and then attempt to use the print as a command again later:

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. ???

Notice that on line 4, print is highlighted differently compared to how it is highlighted on line 2. The print on line 4 also has a squggly line beneath it. Hovering over it provides a pop-up message indicating that the built-in print command is being "shadowed" by something else. Likewise, placing the cursor over the command on line five generates another pop-up message, indicating that int objects are not callable. These are some of the indications that IDEs give us that let us know we may have done something wrong in the code.

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.