Chapter 13: Data Types
Part 1: What Are Data Types and Why Do They Matter?
A data type is an attribute of a piece of data that tells the computer how to interpret its value and what can be done with it.
Think of it like this:
-
The Value: “42” could be a number (my age) or it could be text (the answer to everything).
-
The Data Type: Tells the computer which one it is.
If the computer knows something is a number, it can do math with it (42 + 8 = 50). If it knows it’s text, it can do text operations ("42" + "8" = "428"). Using the wrong type leads to unexpected results or errors.
Why are data types so important?
-
Memory Efficiency: Different types use different amounts of memory. A simple true/false value needs very little space, while a large text needs much more.
-
Operation Safety: They prevent you from doing nonsensical things, like dividing a word by a number.
-
Code Clarity: They make your code self-documenting. When you see a variable is a
boolean, you immediately know it’s meant to betrueorfalse.
Part 2: Static vs. Dynamic Typing
Before we look at specific types, it’s important to know that languages handle types in two main ways.
-
Statically Typed Languages (e.g., Java, C, C++): You must explicitly declare the type of a variable when you create it, and it cannot change later. It’s like labeling a box “Books” – you can only put books in it.
0123456789<span class="token comment">// Java example</span><span class="token keyword">int</span> count <span class="token operator">=</span> <span class="token number">10</span><span class="token punctuation">;</span> <span class="token comment">// 'count' is an integer, forever and always</span><span class="token class-name">String</span> name <span class="token operator">=</span> <span class="token string">"Alice"</span><span class="token punctuation">;</span> <span class="token comment">// 'name' is a String</span><span class="token comment">// count = "hello"; // This would cause an error!</span> -
Dynamically Typed Languages (e.g., Python, JavaScript, Ruby): You don’t need to declare the type. The interpreter figures it out at runtime based on the value. A variable’s type can even change if you assign a different kind of value to it.
0123456789101112<span class="token comment"># Python example</span>data <span class="token operator">=</span> <span class="token number">10</span> <span class="token comment"># data is now an integer</span><span class="token keyword">print</span><span class="token punctuation">(</span><span class="token builtin">type</span><span class="token punctuation">(</span>data<span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token comment"># Output: <class 'int'></span>data <span class="token operator">=</span> <span class="token string">"Hello"</span> <span class="token comment"># data is now a string</span><span class="token keyword">print</span><span class="token punctuation">(</span><span class="token builtin">type</span><span class="token punctuation">(</span>data<span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token comment"># Output: <class 'str'></span>data <span class="token operator">=</span> <span class="token boolean">True</span> <span class="token comment"># data is now a boolean</span><span class="token keyword">print</span><span class="token punctuation">(</span><span class="token builtin">type</span><span class="token punctuation">(</span>data<span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token comment"># Output: <class 'bool'></span>
This is like having a smart box that can magically reshape itself to hold whatever you put in it. Python is a dynamically typed language, so our examples will be in Python.
Part 3: The Core Data Types (with Python Examples)
Let’s explore the fundamental data types you’ll encounter in most programming languages.
1. Numeric Types: The World of Numbers
These are used for all things mathematical.
-
Integers (
int): Whole numbers, positive or negative, without a decimal point.0123456789101112age <span class="token operator">=</span> <span class="token number">30</span>year <span class="token operator">=</span> <span class="token number">2024</span>temperature <span class="token operator">=</span> <span class="token operator">-</span><span class="token number">5</span><span class="token keyword">print</span><span class="token punctuation">(</span><span class="token string-interpolation"><span class="token string">f"Age: </span><span class="token interpolation"><span class="token punctuation">{</span>age<span class="token punctuation">}</span></span><span class="token string">, Type: </span><span class="token interpolation"><span class="token punctuation">{</span><span class="token builtin">type</span><span class="token punctuation">(</span>age<span class="token punctuation">)</span><span class="token punctuation">}</span></span><span class="token string">"</span></span><span class="token punctuation">)</span><span class="token keyword">print</span><span class="token punctuation">(</span><span class="token string-interpolation"><span class="token string">f"Year: </span><span class="token interpolation"><span class="token punctuation">{</span>year<span class="token punctuation">}</span></span><span class="token string">, Type: </span><span class="token interpolation"><span class="token punctuation">{</span><span class="token builtin">type</span><span class="token punctuation">(</span>year<span class="token punctuation">)</span><span class="token punctuation">}</span></span><span class="token string">"</span></span><span class="token punctuation">)</span><span class="token keyword">print</span><span class="token punctuation">(</span><span class="token string-interpolation"><span class="token string">f"Temperature: </span><span class="token interpolation"><span class="token punctuation">{</span>temperature<span class="token punctuation">}</span></span><span class="token string">, Type: </span><span class="token interpolation"><span class="token punctuation">{</span><span class="token builtin">type</span><span class="token punctuation">(</span>temperature<span class="token punctuation">)</span><span class="token punctuation">}</span></span><span class="token string">"</span></span><span class="token punctuation">)</span>You can perform all standard math operations:
+,-,*,/,//(integer division),%(modulo/remainder),**(exponent). -
Floating-Point Numbers (
float): Numbers with a decimal point. Used for more precise measurements.0123456789101112131415price <span class="token operator">=</span> <span class="token number">19.99</span>pi <span class="token operator">=</span> <span class="token number">3.14159</span>average_score <span class="token operator">=</span> <span class="token number">85.5</span><span class="token keyword">print</span><span class="token punctuation">(</span><span class="token string-interpolation"><span class="token string">f"Price: </span><span class="token interpolation"><span class="token punctuation">{</span>price<span class="token punctuation">}</span></span><span class="token string">, Type: </span><span class="token interpolation"><span class="token punctuation">{</span><span class="token builtin">type</span><span class="token punctuation">(</span>price<span class="token punctuation">)</span><span class="token punctuation">}</span></span><span class="token string">"</span></span><span class="token punctuation">)</span><span class="token keyword">print</span><span class="token punctuation">(</span><span class="token string-interpolation"><span class="token string">f"Pi: </span><span class="token interpolation"><span class="token punctuation">{</span>pi<span class="token punctuation">}</span></span><span class="token string">, Type: </span><span class="token interpolation"><span class="token punctuation">{</span><span class="token builtin">type</span><span class="token punctuation">(</span>pi<span class="token punctuation">)</span><span class="token punctuation">}</span></span><span class="token string">"</span></span><span class="token punctuation">)</span><span class="token comment"># Be careful with float precision in comparisons!</span>result <span class="token operator">=</span> <span class="token number">0.1</span> <span class="token operator">+</span> <span class="token number">0.2</span><span class="token keyword">print</span><span class="token punctuation">(</span><span class="token string-interpolation"><span class="token string">f"0.1 + 0.2 = </span><span class="token interpolation"><span class="token punctuation">{</span>result<span class="token punctuation">}</span></span><span class="token string">"</span></span><span class="token punctuation">)</span> <span class="token comment"># Output might be 0.30000000000000004, not 0.3!</span> -
Complex Numbers (
complex): Used in advanced scientific and engineering calculations. They have a real and an imaginary part.01234567complex_num <span class="token operator">=</span> <span class="token number">3</span> <span class="token operator">+</span> <span class="token number">4j</span><span class="token keyword">print</span><span class="token punctuation">(</span><span class="token string-interpolation"><span class="token string">f"Complex: </span><span class="token interpolation"><span class="token punctuation">{</span>complex_num<span class="token punctuation">}</span></span><span class="token string">, Real part: </span><span class="token interpolation"><span class="token punctuation">{</span>complex_num<span class="token punctuation">.</span>real<span class="token punctuation">}</span></span><span class="token string">, Imag part: </span><span class="token interpolation"><span class="token punctuation">{</span>complex_num<span class="token punctuation">.</span>imag<span class="token punctuation">}</span></span><span class="token string">, Type: </span><span class="token interpolation"><span class="token punctuation">{</span><span class="token builtin">type</span><span class="token punctuation">(</span>complex_num<span class="token punctuation">)</span><span class="token punctuation">}</span></span><span class="token string">"</span></span><span class="token punctuation">)</span>
2. Text Type: The World of Words
-
Strings (
str): A sequence of characters, used to represent text. We covered these in detail in the previous lesson.0123456789101112greeting <span class="token operator">=</span> <span class="token string">"Hello, World!"</span>name <span class="token operator">=</span> <span class="token string">'Alice'</span>multi_line <span class="token operator">=</span> <span class="token triple-quoted-string string">"""This is a</span>multi-line string."""<span class="token keyword">print</span><span class="token punctuation">(</span><span class="token string-interpolation"><span class="token string">f"Greeting: </span><span class="token interpolation"><span class="token punctuation">{</span>greeting<span class="token punctuation">}</span></span><span class="token string">, Type: </span><span class="token interpolation"><span class="token punctuation">{</span><span class="token builtin">type</span><span class="token punctuation">(</span>greeting<span class="token punctuation">)</span><span class="token punctuation">}</span></span><span class="token string">"</span></span><span class="token punctuation">)</span><span class="token keyword">print</span><span class="token punctuation">(</span><span class="token string-interpolation"><span class="token string">f"Name: </span><span class="token interpolation"><span class="token punctuation">{</span>name<span class="token punctuation">}</span></span><span class="token string">, Type: </span><span class="token interpolation"><span class="token punctuation">{</span><span class="token builtin">type</span><span class="token punctuation">(</span>name<span class="token punctuation">)</span><span class="token punctuation">}</span></span><span class="token string">"</span></span><span class="token punctuation">)</span>
3. Boolean Type: The World of Truth
-
Booleans (
bool): Represents one of two values:TrueorFalse. They are the foundation of logic and decision-making in programming.01234567891011121314is_sunny <span class="token operator">=</span> <span class="token boolean">True</span>has_finished <span class="token operator">=</span> <span class="token boolean">False</span><span class="token keyword">print</span><span class="token punctuation">(</span><span class="token string-interpolation"><span class="token string">f"Is it sunny? </span><span class="token interpolation"><span class="token punctuation">{</span>is_sunny<span class="token punctuation">}</span></span><span class="token string">, Type: </span><span class="token interpolation"><span class="token punctuation">{</span><span class="token builtin">type</span><span class="token punctuation">(</span>is_sunny<span class="token punctuation">)</span><span class="token punctuation">}</span></span><span class="token string">"</span></span><span class="token punctuation">)</span><span class="token keyword">print</span><span class="token punctuation">(</span><span class="token string-interpolation"><span class="token string">f"Has finished? </span><span class="token interpolation"><span class="token punctuation">{</span>has_finished<span class="token punctuation">}</span></span><span class="token string">, Type: </span><span class="token interpolation"><span class="token punctuation">{</span><span class="token builtin">type</span><span class="token punctuation">(</span>has_finished<span class="token punctuation">)</span><span class="token punctuation">}</span></span><span class="token string">"</span></span><span class="token punctuation">)</span><span class="token comment"># Booleans often result from comparisons</span>result <span class="token operator">=</span> <span class="token number">10</span> <span class="token operator">></span> <span class="token number">5</span> <span class="token comment"># This is True</span><span class="token keyword">print</span><span class="token punctuation">(</span><span class="token string-interpolation"><span class="token string">f"Is 10 > 5? </span><span class="token interpolation"><span class="token punctuation">{</span>result<span class="token punctuation">}</span></span><span class="token string">"</span></span><span class="token punctuation">)</span>
4. Sequence Types: The World of Collections (Ordered)
These types can hold multiple items in a specific order.
-
Lists (
list): Ordered, mutable (changeable) sequences. Think of a shopping list you can add to, remove from, or change items on.01234567891011121314fruits <span class="token operator">=</span> <span class="token punctuation">[</span><span class="token string">"apple"</span><span class="token punctuation">,</span> <span class="token string">"banana"</span><span class="token punctuation">,</span> <span class="token string">"orange"</span><span class="token punctuation">]</span>mixed_list <span class="token operator">=</span> <span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">,</span> <span class="token string">"hello"</span><span class="token punctuation">,</span> <span class="token boolean">True</span><span class="token punctuation">,</span> <span class="token number">3.14</span><span class="token punctuation">]</span><span class="token keyword">print</span><span class="token punctuation">(</span><span class="token string-interpolation"><span class="token string">f"Fruits: </span><span class="token interpolation"><span class="token punctuation">{</span>fruits<span class="token punctuation">}</span></span><span class="token string">, Type: </span><span class="token interpolation"><span class="token punctuation">{</span><span class="token builtin">type</span><span class="token punctuation">(</span>fruits<span class="token punctuation">)</span><span class="token punctuation">}</span></span><span class="token string">"</span></span><span class="token punctuation">)</span><span class="token keyword">print</span><span class="token punctuation">(</span><span class="token string-interpolation"><span class="token string">f"First fruit: </span><span class="token interpolation"><span class="token punctuation">{</span>fruits<span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span><span class="token punctuation">}</span></span><span class="token string">"</span></span><span class="token punctuation">)</span> <span class="token comment"># Indexing, just like strings!</span>fruits<span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">]</span> <span class="token operator">=</span> <span class="token string">"grape"</span> <span class="token comment"># Modify an element</span><span class="token keyword">print</span><span class="token punctuation">(</span><span class="token string-interpolation"><span class="token string">f"Modified fruits: </span><span class="token interpolation"><span class="token punctuation">{</span>fruits<span class="token punctuation">}</span></span><span class="token string">"</span></span><span class="token punctuation">)</span>fruits<span class="token punctuation">.</span>append<span class="token punctuation">(</span><span class="token string">"kiwi"</span><span class="token punctuation">)</span> <span class="token comment"># Add an element</span><span class="token keyword">print</span><span class="token punctuation">(</span><span class="token string-interpolation"><span class="token string">f"After append: </span><span class="token interpolation"><span class="token punctuation">{</span>fruits<span class="token punctuation">}</span></span><span class="token string">"</span></span><span class="token punctuation">)</span> -
Tuples (
tuple): Ordered, immutable (unchangeable) sequences. Think of coordinates on a map(x, y)– once set, they shouldn’t change.0123456789101112coordinates <span class="token operator">=</span> <span class="token punctuation">(</span><span class="token number">10</span><span class="token punctuation">,</span> <span class="token number">20</span><span class="token punctuation">)</span>rgb_color <span class="token operator">=</span> <span class="token punctuation">(</span><span class="token number">255</span><span class="token punctuation">,</span> <span class="token number">128</span><span class="token punctuation">,</span> <span class="token number">0</span><span class="token punctuation">)</span><span class="token keyword">print</span><span class="token punctuation">(</span><span class="token string-interpolation"><span class="token string">f"Coordinates: </span><span class="token interpolation"><span class="token punctuation">{</span>coordinates<span class="token punctuation">}</span></span><span class="token string">, Type: </span><span class="token interpolation"><span class="token punctuation">{</span><span class="token builtin">type</span><span class="token punctuation">(</span>coordinates<span class="token punctuation">)</span><span class="token punctuation">}</span></span><span class="token string">"</span></span><span class="token punctuation">)</span><span class="token keyword">print</span><span class="token punctuation">(</span><span class="token string-interpolation"><span class="token string">f"X coordinate: </span><span class="token interpolation"><span class="token punctuation">{</span>coordinates<span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span><span class="token punctuation">}</span></span><span class="token string">"</span></span><span class="token punctuation">)</span><span class="token comment"># coordinates[0] = 15 # This would cause an error! Tuples cannot be changed.</span> -
Ranges (
range): Represents an immutable sequence of numbers, commonly used in loops.012345678910numbers <span class="token operator">=</span> <span class="token builtin">range</span><span class="token punctuation">(</span><span class="token number">5</span><span class="token punctuation">)</span> <span class="token comment"># Generates numbers 0, 1, 2, 3, 4</span><span class="token keyword">print</span><span class="token punctuation">(</span><span class="token string-interpolation"><span class="token string">f"Range: </span><span class="token interpolation"><span class="token punctuation">{</span>numbers<span class="token punctuation">}</span></span><span class="token string">, Type: </span><span class="token interpolation"><span class="token punctuation">{</span><span class="token builtin">type</span><span class="token punctuation">(</span>numbers<span class="token punctuation">)</span><span class="token punctuation">}</span></span><span class="token string">"</span></span><span class="token punctuation">)</span><span class="token keyword">print</span><span class="token punctuation">(</span><span class="token string">"Looping through range:"</span><span class="token punctuation">)</span><span class="token keyword">for</span> i <span class="token keyword">in</span> numbers<span class="token punctuation">:</span><span class="token keyword">print</span><span class="token punctuation">(</span>i<span class="token punctuation">)</span>
5. Mapping Type: The World of Key-Value Pairs
-
Dictionaries (
dict): Unordered collections of key-value pairs. Think of a real dictionary – you look up a word (the key) to find its definition (the value). Or a phonebook: you look up a name (key) to find a number (value).01234567891011121314151617person <span class="token operator">=</span> <span class="token punctuation">{</span><span class="token string">"name"</span><span class="token punctuation">:</span> <span class="token string">"Bob"</span><span class="token punctuation">,</span><span class="token string">"age"</span><span class="token punctuation">:</span> <span class="token number">25</span><span class="token punctuation">,</span><span class="token string">"city"</span><span class="token punctuation">:</span> <span class="token string">"New York"</span><span class="token punctuation">}</span><span class="token keyword">print</span><span class="token punctuation">(</span><span class="token string-interpolation"><span class="token string">f"Person: </span><span class="token interpolation"><span class="token punctuation">{</span>person<span class="token punctuation">}</span></span><span class="token string">, Type: </span><span class="token interpolation"><span class="token punctuation">{</span><span class="token builtin">type</span><span class="token punctuation">(</span>person<span class="token punctuation">)</span><span class="token punctuation">}</span></span><span class="token string">"</span></span><span class="token punctuation">)</span><span class="token keyword">print</span><span class="token punctuation">(</span><span class="token string-interpolation"><span class="token string">f"Name: </span><span class="token interpolation"><span class="token punctuation">{</span>person<span class="token punctuation">[</span><span class="token string">'name'</span><span class="token punctuation">]</span><span class="token punctuation">}</span></span><span class="token string">"</span></span><span class="token punctuation">)</span> <span class="token comment"># Access value by its key</span><span class="token keyword">print</span><span class="token punctuation">(</span><span class="token string-interpolation"><span class="token string">f"Age: </span><span class="token interpolation"><span class="token punctuation">{</span>person<span class="token punctuation">.</span>get<span class="token punctuation">(</span><span class="token string">'age'</span><span class="token punctuation">)</span><span class="token punctuation">}</span></span><span class="token string">"</span></span><span class="token punctuation">)</span> <span class="token comment"># Another way to access</span>person<span class="token punctuation">[</span><span class="token string">"job"</span><span class="token punctuation">]</span> <span class="token operator">=</span> <span class="token string">"Engineer"</span> <span class="token comment"># Add a new key-value pair</span><span class="token keyword">print</span><span class="token punctuation">(</span><span class="token string-interpolation"><span class="token string">f"After adding job: </span><span class="token interpolation"><span class="token punctuation">{</span>person<span class="token punctuation">}</span></span><span class="token string">"</span></span><span class="token punctuation">)</span>
6. Set Types: The World of Unique, Unordered Collections
-
Sets (
set): Unordered collections of unique elements. Great for removing duplicates and mathematical set operations (union, intersection).0123456789101112student_ids <span class="token operator">=</span> <span class="token punctuation">{</span><span class="token number">101</span><span class="token punctuation">,</span> <span class="token number">102</span><span class="token punctuation">,</span> <span class="token number">103</span><span class="token punctuation">,</span> <span class="token number">101</span><span class="token punctuation">,</span> <span class="token number">104</span><span class="token punctuation">}</span> <span class="token comment"># Note the duplicate 101</span><span class="token keyword">print</span><span class="token punctuation">(</span><span class="token string-interpolation"><span class="token string">f"Student IDs: </span><span class="token interpolation"><span class="token punctuation">{</span>student_ids<span class="token punctuation">}</span></span><span class="token string">, Type: </span><span class="token interpolation"><span class="token punctuation">{</span><span class="token builtin">type</span><span class="token punctuation">(</span>student_ids<span class="token punctuation">)</span><span class="token punctuation">}</span></span><span class="token string">"</span></span><span class="token punctuation">)</span> <span class="token comment"># Duplicate is automatically removed</span>set_a <span class="token operator">=</span> <span class="token punctuation">{</span><span class="token number">1</span><span class="token punctuation">,</span> <span class="token number">2</span><span class="token punctuation">,</span> <span class="token number">3</span><span class="token punctuation">}</span>set_b <span class="token operator">=</span> <span class="token punctuation">{</span><span class="token number">3</span><span class="token punctuation">,</span> <span class="token number">4</span><span class="token punctuation">,</span> <span class="token number">5</span><span class="token punctuation">}</span><span class="token keyword">print</span><span class="token punctuation">(</span><span class="token string-interpolation"><span class="token string">f"Union: </span><span class="token interpolation"><span class="token punctuation">{</span>set_a <span class="token operator">|</span> set_b<span class="token punctuation">}</span></span><span class="token string">"</span></span><span class="token punctuation">)</span> <span class="token comment"># {1, 2, 3, 4, 5}</span><span class="token keyword">print</span><span class="token punctuation">(</span><span class="token string-interpolation"><span class="token string">f"Intersection: </span><span class="token interpolation"><span class="token punctuation">{</span>set_a <span class="token operator">&</span> set_b<span class="token punctuation">}</span></span><span class="token string">"</span></span><span class="token punctuation">)</span> <span class="token comment"># {3}</span>
7. None Type: The World of Nothing
-
NoneType (
None): Represents the absence of a value. It’s a special type with only one value:None. It’s often used as a placeholder or to indicate that a function didn’t return anything.0123456789101112result <span class="token operator">=</span> <span class="token boolean">None</span><span class="token keyword">print</span><span class="token punctuation">(</span><span class="token string-interpolation"><span class="token string">f"Result: </span><span class="token interpolation"><span class="token punctuation">{</span>result<span class="token punctuation">}</span></span><span class="token string">, Type: </span><span class="token interpolation"><span class="token punctuation">{</span><span class="token builtin">type</span><span class="token punctuation">(</span>result<span class="token punctuation">)</span><span class="token punctuation">}</span></span><span class="token string">"</span></span><span class="token punctuation">)</span><span class="token comment"># A common use: as a default argument or to initialize a variable</span>user_input <span class="token operator">=</span> <span class="token boolean">None</span><span class="token keyword">if</span> user_input <span class="token keyword">is</span> <span class="token boolean">None</span><span class="token punctuation">:</span><span class="token keyword">print</span><span class="token punctuation">(</span><span class="token string">"No input provided yet."</span><span class="token punctuation">)</span>
Part 4: Type Conversion (Casting)
Sometimes you have a value of one type and you need it to be another. This is called type conversion or casting.
|
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
<span class="token comment"># String to Integer</span> age_str <span class="token operator">=</span> <span class="token string">"30"</span> age_int <span class="token operator">=</span> <span class="token builtin">int</span><span class="token punctuation">(</span>age_str<span class="token punctuation">)</span> <span class="token keyword">print</span><span class="token punctuation">(</span><span class="token string-interpolation"><span class="token string">f"'</span><span class="token interpolation"><span class="token punctuation">{</span>age_str<span class="token punctuation">}</span></span><span class="token string">' as an integer: </span><span class="token interpolation"><span class="token punctuation">{</span>age_int<span class="token punctuation">}</span></span><span class="token string">, Type: </span><span class="token interpolation"><span class="token punctuation">{</span><span class="token builtin">type</span><span class="token punctuation">(</span>age_int<span class="token punctuation">)</span><span class="token punctuation">}</span></span><span class="token string">"</span></span><span class="token punctuation">)</span> <span class="token comment"># Integer to String</span> year_int <span class="token operator">=</span> <span class="token number">2024</span> year_str <span class="token operator">=</span> <span class="token builtin">str</span><span class="token punctuation">(</span>year_int<span class="token punctuation">)</span> <span class="token keyword">print</span><span class="token punctuation">(</span><span class="token string-interpolation"><span class="token string">f"</span><span class="token interpolation"><span class="token punctuation">{</span>year_int<span class="token punctuation">}</span></span><span class="token string"> as a string: '</span><span class="token interpolation"><span class="token punctuation">{</span>year_str<span class="token punctuation">}</span></span><span class="token string">', Type: </span><span class="token interpolation"><span class="token punctuation">{</span><span class="token builtin">type</span><span class="token punctuation">(</span>year_str<span class="token punctuation">)</span><span class="token punctuation">}</span></span><span class="token string">"</span></span><span class="token punctuation">)</span> <span class="token comment"># String to Float</span> price_str <span class="token operator">=</span> <span class="token string">"19.99"</span> price_float <span class="token operator">=</span> <span class="token builtin">float</span><span class="token punctuation">(</span>price_str<span class="token punctuation">)</span> <span class="token keyword">print</span><span class="token punctuation">(</span><span class="token string-interpolation"><span class="token string">f"'</span><span class="token interpolation"><span class="token punctuation">{</span>price_str<span class="token punctuation">}</span></span><span class="token string">' as a float: </span><span class="token interpolation"><span class="token punctuation">{</span>price_float<span class="token punctuation">}</span></span><span class="token string">, Type: </span><span class="token interpolation"><span class="token punctuation">{</span><span class="token builtin">type</span><span class="token punctuation">(</span>price_float<span class="token punctuation">)</span><span class="token punctuation">}</span></span><span class="token string">"</span></span><span class="token punctuation">)</span> <span class="token comment"># Integer to Boolean (0 is False, everything else is True)</span> <span class="token keyword">print</span><span class="token punctuation">(</span><span class="token builtin">bool</span><span class="token punctuation">(</span><span class="token number">0</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token comment"># False</span> <span class="token keyword">print</span><span class="token punctuation">(</span><span class="token builtin">bool</span><span class="token punctuation">(</span><span class="token number">1</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token comment"># True</span> <span class="token keyword">print</span><span class="token punctuation">(</span><span class="token builtin">bool</span><span class="token punctuation">(</span><span class="token number">42</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token comment"># True</span> <span class="token keyword">print</span><span class="token punctuation">(</span><span class="token builtin">bool</span><span class="token punctuation">(</span><span class="token operator">-</span><span class="token number">5</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token comment"># True</span> <span class="token comment"># String to Boolean (empty string is False, everything else is True)</span> <span class="token keyword">print</span><span class="token punctuation">(</span><span class="token builtin">bool</span><span class="token punctuation">(</span><span class="token string">""</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token comment"># False</span> <span class="token keyword">print</span><span class="token punctuation">(</span><span class="token builtin">bool</span><span class="token punctuation">(</span><span class="token string">"Hello"</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token comment"># True</span> <span class="token keyword">print</span><span class="token punctuation">(</span><span class="token builtin">bool</span><span class="token punctuation">(</span><span class="token string">"False"</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token comment"># True! (because it's a non-empty string)</span> |
Instructor’s Warning: Be careful with automatic (implicit) type conversion. It can lead to subtle bugs. For example, in some languages, "1" + 2 might give you "12" (string) or 3 (number). Python is strict and will usually throw an error, forcing you to be explicit.
|
0 1 2 3 4 5 6 7 8 9 10 11 |
<span class="token comment"># In Python, this causes an error:</span> <span class="token comment"># result = "The answer is " + 42</span> <span class="token comment"># You must explicitly convert:</span> result <span class="token operator">=</span> <span class="token string">"The answer is "</span> <span class="token operator">+</span> <span class="token builtin">str</span><span class="token punctuation">(</span><span class="token number">42</span><span class="token punctuation">)</span> <span class="token keyword">print</span><span class="token punctuation">(</span>result<span class="token punctuation">)</span> |
Part 5: Checking Types
You can always check the type of a variable using the type() function.
|
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
var1 <span class="token operator">=</span> <span class="token number">10</span> var2 <span class="token operator">=</span> <span class="token number">3.14</span> var3 <span class="token operator">=</span> <span class="token string">"Hello"</span> var4 <span class="token operator">=</span> <span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">,</span> <span class="token number">2</span><span class="token punctuation">,</span> <span class="token number">3</span><span class="token punctuation">]</span> var5 <span class="token operator">=</span> <span class="token boolean">True</span> <span class="token keyword">print</span><span class="token punctuation">(</span><span class="token string-interpolation"><span class="token string">f"</span><span class="token interpolation"><span class="token punctuation">{</span>var1<span class="token punctuation">}</span></span><span class="token string"> is of type: </span><span class="token interpolation"><span class="token punctuation">{</span><span class="token builtin">type</span><span class="token punctuation">(</span>var1<span class="token punctuation">)</span><span class="token punctuation">}</span></span><span class="token string">"</span></span><span class="token punctuation">)</span> <span class="token keyword">print</span><span class="token punctuation">(</span><span class="token string-interpolation"><span class="token string">f"</span><span class="token interpolation"><span class="token punctuation">{</span>var2<span class="token punctuation">}</span></span><span class="token string"> is of type: </span><span class="token interpolation"><span class="token punctuation">{</span><span class="token builtin">type</span><span class="token punctuation">(</span>var2<span class="token punctuation">)</span><span class="token punctuation">}</span></span><span class="token string">"</span></span><span class="token punctuation">)</span> <span class="token keyword">print</span><span class="token punctuation">(</span><span class="token string-interpolation"><span class="token string">f"</span><span class="token interpolation"><span class="token punctuation">{</span>var3<span class="token punctuation">}</span></span><span class="token string"> is of type: </span><span class="token interpolation"><span class="token punctuation">{</span><span class="token builtin">type</span><span class="token punctuation">(</span>var3<span class="token punctuation">)</span><span class="token punctuation">}</span></span><span class="token string">"</span></span><span class="token punctuation">)</span> <span class="token keyword">print</span><span class="token punctuation">(</span><span class="token string-interpolation"><span class="token string">f"</span><span class="token interpolation"><span class="token punctuation">{</span>var4<span class="token punctuation">}</span></span><span class="token string"> is of type: </span><span class="token interpolation"><span class="token punctuation">{</span><span class="token builtin">type</span><span class="token punctuation">(</span>var4<span class="token punctuation">)</span><span class="token punctuation">}</span></span><span class="token string">"</span></span><span class="token punctuation">)</span> <span class="token keyword">print</span><span class="token punctuation">(</span><span class="token string-interpolation"><span class="token string">f"</span><span class="token interpolation"><span class="token punctuation">{</span>var5<span class="token punctuation">}</span></span><span class="token string"> is of type: </span><span class="token interpolation"><span class="token punctuation">{</span><span class="token builtin">type</span><span class="token punctuation">(</span>var5<span class="token punctuation">)</span><span class="token punctuation">}</span></span><span class="token string">"</span></span><span class="token punctuation">)</span> <span class="token comment"># You can also use isinstance() to check if a variable is a specific type</span> <span class="token keyword">print</span><span class="token punctuation">(</span><span class="token string-interpolation"><span class="token string">f"Is var1 an integer? </span><span class="token interpolation"><span class="token punctuation">{</span><span class="token builtin">isinstance</span><span class="token punctuation">(</span>var1<span class="token punctuation">,</span> <span class="token builtin">int</span><span class="token punctuation">)</span><span class="token punctuation">}</span></span><span class="token string">"</span></span><span class="token punctuation">)</span> <span class="token keyword">print</span><span class="token punctuation">(</span><span class="token string-interpolation"><span class="token string">f"Is var1 a float? </span><span class="token interpolation"><span class="token punctuation">{</span><span class="token builtin">isinstance</span><span class="token punctuation">(</span>var1<span class="token punctuation">,</span> <span class="token builtin">float</span><span class="token punctuation">)</span><span class="token punctuation">}</span></span><span class="token string">"</span></span><span class="token punctuation">)</span> <span class="token keyword">print</span><span class="token punctuation">(</span><span class="token string-interpolation"><span class="token string">f"Is var4 a list? </span><span class="token interpolation"><span class="token punctuation">{</span><span class="token builtin">isinstance</span><span class="token punctuation">(</span>var4<span class="token punctuation">,</span> <span class="token builtin">list</span><span class="token punctuation">)</span><span class="token punctuation">}</span></span><span class="token string">"</span></span><span class="token punctuation">)</span> |
Summary: The Data Type Philosophy
-
Data Types are the fundamental categories of information in programming.
-
They define what kind of value a variable holds and what operations are allowed.
-
Static typing (like Java) requires you to declare types upfront. Dynamic typing (like Python) infers them at runtime.
-
The core types include:
-
Numeric:
int,float,complex -
Text:
str -
Boolean:
bool -
Sequence:
list,tuple,range -
Mapping:
dict -
Set:
set -
None:
NoneType
-
-
Type conversion lets you change from one type to another.
-
Use
type()orisinstance()to inspect a variable’s type.
Choosing the right data type for your information is like choosing the right tool for a job. It makes your code more efficient, safer, and easier to understand. As you continue your programming journey, you’ll develop an intuition for which type to use in any situation. Happy coding
