Data types ¶
As we have seen before in arithmetic and variables , we can use numbers and letters as data. However, you have to pay a little attention to what type of data you are working with because Python stores each data type differently. This determines what you are able able to do with that data, and sometimes the accuracy.
type ¶
Python has a built-in way to tell you what kind of data something is.
This is the
type
function, and you will see it being used below.
Numeric ¶
One of the most common data types for any computational science are numbers.
Python generally has two types:
int
and
float
.
int ¶
The
int
data type represents whole numbers with no decimal.
For example,
print(type(1))
<class 'int'>
Even negative whole numbers are considered
int
.
print(type(-5))
<class 'int'>
We can also our
arithmetic
with
int
.
output = 5 + 5
print(output)
print(type(output))
10 <class 'int'>
float ¶
A number with a decimal part is called a
float
.
print(type(3.14))
<class 'float'>
We can also do negative numbers
print(type(-0.5))
<class 'float'>
or whole numbers with but with a
.0
at the end.
print(type(2.0))
<class 'float'>
Remember, Python stores
int
data differently than
float
.
So if you put a number and there is a
.
anywhere, it will store it as a
float
.
This
.
with a number is an instruction to Python to store it as a
float
.
print(type(2.))
<class 'float'>
Even though there is no
0
after the
.
, Python stores it as a
float
.
I can do arithmetic as well.
result = 5.0 + 5.0
print(result)
print(type(result))
10.0 <class 'float'>
Note that
answer
is still
10
, but now it is a
float
because my expression
5.0 + 5.0
uses
float
and not
int
.
Okay, but what if I do this.
result = 5 / 5
What would the type be? Well, let's find out.
print(type(result))
<class 'float'>
It is a
float
, why?
Well, the answer is that Python, and all programming languages, aim to be consistent and minimize surprizes.
If we were to perform the following division
result = 3.14159 / 52.910
print(result)
print(type(result))
0.059376110376110375 <class 'float'>
It is no surprise that this would be a
float
.
However, what if we mixed data types?
result = 3 / 52.910
Which data type should Python use?
print(result)
print(type(result))
0.056700056700056706 <class 'float'>
It is
float
!
If we rounded
0.059376110376110375
to be an
int
, this would be
0
, which we know it is not correct.
Thus, Python always errs on the side of caution and "upgrades"
int
values to
float
whenever there could be an issue—even if the result could technically be an
int
like in our
5 / 5
example.
Text ¶
The next frequently used data type in Python is called the
string
, which handles data in the form of text like
"Hello"
and
"Python is awesome!"
.
print(type("Hello"))
print(type("Python is awesome!"))
<class 'str'> <class 'str'>
But, why do they call it a
string
?
This terminology is borrowed from linguistics where a
string
of characters represents a sequence of symbols.
In all programming languages, we use this term to mean a "sequence of characters" that do not even have to be letters of any language.
print(type("👀◀↿♥🚀"))
<class 'str'>
Anything that I put in between a pair of
"
becomes a
string
, even if it is a number.
Again, the presence of a
"
is an instruction to Python to store that as a
string
.
print(type("3.1415926"))
<class 'str'>
Note that you can also use single quotes.
print(type('Hello'))
<class 'str'>
It does not matter which one you use, as long as you match them.
For example, the following code would throw a
SyntaxError
.
print("Hello')
Should you use
"
or
'
?
Well, I usually recommend using
"
because sentences have a higher chance of using
'
in the actual string.
For example the following code is fine.
print("Tessa's favorite toy is a teddy bear.")
Tessa's favorite toy is a teddy bear.
However, if I used
'
to define the
string
I would get an error because I closed the string after
'Tessa'
.
print('Tessa's favorite toy is a teddy bear.')
Also, note that you can do some "arithmetic-like operations" with
string
.
You can use your own intuition on what would be possible.
For example, I can tell Python to repeat a string a specific number of times with an
int
.
print("Hello" * 3)
HelloHelloHello
But I cannot repeat a string
3.2
times.
I can tell Python to add (i.e., combine) two strings.
print("Hello" + "Hello")
HelloHello
But something like division would not make sense.
Boolean ¶
The next important data type in all programming languages is
bool
.
This just holds either the value
True
or
False
.
print(type(True))
print(type(False))
<class 'bool'> <class 'bool'>
However, if we put double quotes around
True
or
False
it becomes a string.
print(type("False"))
<class 'str'>
None ¶
None
is a special constant representing the absence of a value or a null value.
print(type(None))
<class 'NoneType'>
I will often use this as placeholder data for you to replace.