Bird
Raised Fist0
Pythonprogramming~10 mins

Dynamic typing in Python - Interactive Code Practice

Choose your learning style10 modes available

Start learning this pattern below

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
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to assign a string to the variable.

Python
message = [1]
Drag options to blanks, or click blank then click option'
A"Hello, world!"
B100
CTrue
D3.14
Attempts:
3 left
💡 Hint
Common Mistakes
Forgetting to put quotes around the string.
Using a number instead of a string.
2fill in blank
medium

Complete the code to change the variable type from int to float.

Python
number = 10
number = [1](number)
Drag options to blanks, or click blank then click option'
Alist
Bstr
Cfloat
Dbool
Attempts:
3 left
💡 Hint
Common Mistakes
Using str() which converts to text, not a number.
Using bool() which converts to True or False.
3fill in blank
hard

Fix the error by completing the code to add a number to a string correctly.

Python
age = 30
message = "I am " + [1] + " years old."
Drag options to blanks, or click blank then click option'
Afloat(age)
Bage
Cint(age)
Dstr(age)
Attempts:
3 left
💡 Hint
Common Mistakes
Trying to add an integer directly to a string causes an error.
Using int() or float() does not convert to string.
4fill in blank
hard

Fill both blanks to create a list of squares for numbers greater than 3.

Python
squares = [x[1]2 for x in range(1, 6) if x [2] 3]
Drag options to blanks, or click blank then click option'
A**
B>
C<
D+
Attempts:
3 left
💡 Hint
Common Mistakes
Using + instead of power operator.
Using < instead of > for filtering.
5fill in blank
hard

Fill all three blanks to create a dictionary with uppercase keys and values greater than 0.

Python
result = {{ [1] }}: [2] for [3], v in data.items() if v > 0}
Drag options to blanks, or click blank then click option'
Ak.upper()
Bv
Ck
Ditem
Attempts:
3 left
💡 Hint
Common Mistakes
Using wrong variable names like item.
Not converting keys to uppercase.

Practice

(1/5)
1. What does dynamic typing in Python mean?
easy
A. Python decides the variable type automatically when you assign a value.
B. You must declare the variable type before using it.
C. Variables cannot change their type once assigned.
D. Python uses only one data type for all variables.

Solution

  1. Step 1: Understand dynamic typing concept

    Dynamic typing means Python figures out the type of a variable when you assign a value to it, without needing explicit declaration.
  2. Step 2: Compare options with concept

    Python decides the variable type automatically when you assign a value. matches this idea. Requiring declaration before use and preventing type changes describe static typing, while claiming only one data type is incorrect because Python supports multiple types.
  3. Final Answer:

    Python decides the variable type automatically when you assign a value. -> Option A
  4. Quick Check:

    Dynamic typing = automatic type assignment [OK]
Hint: Dynamic typing means no need to declare types explicitly [OK]
Common Mistakes:
  • Thinking variables need type declaration
  • Believing variable types cannot change
  • Confusing dynamic typing with static typing
2. Which of the following is a correct way to assign a value to a variable in Python?
easy
A. x = 5
B. x := 5
C. int x = 5
D. var x = 5

Solution

  1. Step 1: Recall Python assignment syntax

    In Python, variables are assigned using the equals sign without type declaration or keywords.
  2. Step 2: Check each option

    x = 5 uses correct syntax. int x = 5 is from languages like C/Java, := is the walrus operator but requires context, var x = 5 is from JavaScript.
  3. Final Answer:

    x = 5 -> Option A
  4. Quick Check:

    Assignment uses = without type [OK]
Hint: Use simple equals sign for assignment in Python [OK]
Common Mistakes:
  • Using type declarations like int or var
  • Confusing walrus operator with assignment
  • Adding semicolons or extra symbols
3. What will be the output of this code?
var = 10
var = 'hello'
print(var)
medium
A. 10
B. hello
C. Error: cannot change variable type
D. None

Solution

  1. Step 1: Follow variable assignments

    First, var is assigned the number 10, then it is reassigned the string 'hello'.
  2. Step 2: Understand dynamic typing effect

    Python allows changing variable types, so print(var) outputs the last assigned value, hello.
  3. Final Answer:

    hello -> Option B
  4. Quick Check:

    Variable type changes allowed = hello output [OK]
Hint: Last assigned value is printed regardless of type change [OK]
Common Mistakes:
  • Expecting error on type change
  • Printing the first assigned value
  • Confusing variable declaration rules
4. Find the error in this code snippet:
x = 5
x = 'five'
print(x + 2)
medium
A. No error, output is 'five2'
B. NameError because x is undefined
C. TypeError because you cannot add string and int
D. SyntaxError due to reassignment

Solution

  1. Step 1: Analyze variable types and operation

    x is first an int (5), then a string ('five'). The print statement tries to add x + 2, which is string + int.
  2. Step 2: Understand Python's type rules

    Python does not allow adding string and int directly, causing a TypeError.
  3. Final Answer:

    TypeError because you cannot add string and int -> Option C
  4. Quick Check:

    Adding string + int causes TypeError [OK]
Hint: Cannot add different types like string and int directly [OK]
Common Mistakes:
  • Thinking Python auto-converts types in addition
  • Expecting concatenation without conversion
  • Ignoring type mismatch errors
5. You want to store a user's age and then later change it to a string message. Which code correctly uses dynamic typing to do this without error?
hard
A. age = 25 age = age + ' years old' print(age)
B. age = '25' age = age + 5 print(age)
C. age = 25 age = age + 5 age = ' years old' print(age)
D. age = 25 age = str(age) + ' years old' print(age)

Solution

  1. Step 1: Check each option for type compatibility

    age = 25 age = age + ' years old' print(age) tries to add int and string directly, causing error. age = 25 age = str(age) + ' years old' print(age) converts int to string before concatenation, which is correct. age = '25' age = age + 5 print(age) tries to add int to string, error. age = 25 age = age + 5 age = ' years old' print(age) adds ints then replaces with string, but print shows string only.
  2. Step 2: Identify correct dynamic typing usage

    age = 25 age = str(age) + ' years old' print(age) properly converts type before concatenation, avoiding errors and showing expected output.
  3. Final Answer:

    age = 25 age = str(age) + ' years old' print(age) -> Option D
  4. Quick Check:

    Convert int to string before concatenation [OK]
Hint: Convert types explicitly before mixing them in operations [OK]
Common Mistakes:
  • Adding int and string without conversion
  • Assuming Python auto-converts types in addition
  • Overwriting variables without proper conversion