Jump into concepts and practice - no test required
or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
How variable type changes at runtime
📖 Scenario: Imagine you are working with a variable that can hold different types of information during a program. For example, a box that can hold a number first, then a word, and then a list. This shows how Python allows the type of a variable to change as the program runs.
🎯 Goal: You will create a variable and change its type step-by-step, then print its value and type each time to see how it changes.
📋 What You'll Learn
Create a variable called data and assign it the integer value 10
Change the variable data to hold the string value 'hello'
Change the variable data to hold the list [1, 2, 3]
Print the value and type of data after each change
💡 Why This Matters
🌍 Real World
In real programs, variables often change what they hold depending on the situation, like storing a number first and then a message.
💼 Career
Understanding how variables can change types helps in debugging and writing flexible code in many programming jobs.
Progress0 / 4 steps
1
Create a variable with an integer value
Create a variable called data and assign it the integer value 10.
Python
Hint
Use the equals sign = to assign the value 10 to the variable data.
2
Change the variable to a string
Change the variable data to hold the string value 'hello'.
Python
Hint
Assign the string 'hello' to the variable data using =.
3
Change the variable to a list
Change the variable data to hold the list [1, 2, 3].
Python
Hint
Assign the list [1, 2, 3] to the variable data using =.
4
Print the value and type of the variable after each change
Print the value and type of the variable data after each change using print(data, type(data)).
Python
Hint
Use print(data, type(data)) after each assignment to show the value and its type.
Practice
(1/5)
1. What happens to the type of a Python variable when you assign a new value of a different type to it?
easy
A. The variable's type changes to the new value's type automatically.
B. The variable keeps its original type regardless of the new value.
C. Python raises an error if the new value's type is different.
D. The variable becomes a list containing both old and new types.
Solution
Step 1: Understand Python variable typing
Python variables are dynamically typed, meaning their type depends on the current value assigned.
Step 2: Assigning a new value changes the type
When you assign a new value of a different type, the variable's type updates to match the new value automatically.
Final Answer:
The variable's type changes to the new value's type automatically. -> Option A
Quick Check:
Python variables are dynamic = A [OK]
Hint: Remember: Python variables follow the value's type, not fixed type. [OK]
Common Mistakes:
Thinking variables have fixed types like in some other languages.
Assuming Python throws an error on type change.
Believing variable types combine old and new types.
2. Which of the following is the correct way to assign a new value to a variable in Python so its type changes?
easy
A. x = 10
B. x := 10
C. int x = 10
D. var x = 10
Solution
Step 1: Identify Python assignment syntax
Python uses the single equals sign (=) to assign values to variables.
Step 2: Check each option
x = 10 uses correct syntax. x := 10 uses walrus operator which is for expressions, not simple assignment. int x = 10 and var x = 10 are invalid in Python.
Final Answer:
x = 10 -> Option A
Quick Check:
Assignment uses = in Python = A [OK]
Hint: Use single '=' for assignment in Python, not ':=' or types. [OK]
Common Mistakes:
Confusing ':=' walrus operator with assignment.
Using typed declarations like other languages.
Trying to declare variable types explicitly.
3. What will be the output of this code?
var = 5
print(type(var))
var = 'hello'
print(type(var))
medium
A. \n
B. \n
C. \n
D. Error
Solution
Step 1: Check initial assignment and type
var is first assigned 5, an integer, so type(var) is <class 'int'>.
Step 2: Reassign and check new type
var is then assigned 'hello', a string, so type(var) is <class 'str'>.
Final Answer:
<class 'int'>\n<class 'str'> -> Option C
Quick Check:
Type changes with value = C [OK]
Hint: Track variable type after each assignment line by line. [OK]
Common Mistakes:
Assuming type stays the same after reassignment.
Confusing output order of print statements.
Expecting a runtime error on type change.
4. Find the error in this code snippet:
value = 10
value = value + '5'
print(value)
medium
A. NameError because 'value' is undefined
B. SyntaxError due to invalid assignment
C. No error, output is 15
D. TypeError because int and str cannot be added
Solution
Step 1: Analyze the operation between int and str
value is an int (10), then tries to add a string ('5'), which is not allowed.
Step 2: Identify the error type
Python raises a TypeError when adding incompatible types like int and str.
Final Answer:
TypeError because int and str cannot be added -> Option D
Quick Check:
Adding int + str causes TypeError = D [OK]
Hint: Check types before adding; int + str causes error. [OK]
Common Mistakes:
Thinking Python auto-converts types in addition.
Expecting output '15' as string concatenation.
Confusing SyntaxError with TypeError.
5. Given the code below, what will be the final type of data?
data = 100
if isinstance(data, int):
data = str(data)
else:
data = [data]
hard
A. int
B. str
C. list
D. bool
Solution
Step 1: Check initial type of data
data starts as 100, which is an int.
Step 2: Evaluate the if condition
Since data is int, the if block runs, converting data to str('100').
Final Answer:
str -> Option B
Quick Check:
int converted to str by condition = B [OK]
Hint: If int, convert to str; else make list. [OK]