Bird
Raised Fist0
Pythonprogramming~20 mins

Type checking using type() in Python - Practice Problems & Coding Challenges

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
Challenge - 5 Problems
🎖️
Type Checking Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
Predict Output
intermediate
2:00remaining
Output of type() with mixed types
What is the output of this Python code?
Python
values = [42, 3.14, 'hello', [1, 2, 3]]
result = [type(v).__name__ for v in values]
print(result)
A['int', 'int', 'str', 'list']
B['int', 'float', 'str', 'list']
C['int', 'float', 'string', 'list']
D['int', 'float', 'str', 'tuple']
Attempts:
2 left
💡 Hint
Use type() and __name__ attribute to get the type names as strings.
Predict Output
intermediate
1:30remaining
Type checking with type() and condition
What will be printed by this code?
Python
x = 10
if type(x) == int:
    print('Integer')
else:
    print('Not integer')
AInteger
BNot integer
CTypeError
DSyntaxError
Attempts:
2 left
💡 Hint
Check if x is exactly an int using type().
Predict Output
advanced
2:30remaining
Output of nested type() checks
What is the output of this code snippet?
Python
def check_type(val):
    if type(val) == list:
        return 'List of length ' + str(len(val))
    elif type(val) == dict:
        return 'Dict with keys ' + ','.join(val.keys())
    else:
        return 'Other type'

print(check_type({'a':1, 'b':2}))
ADict with keys ['a', 'b']
BTypeError
COther type
DDict with keys a,b
Attempts:
2 left
💡 Hint
Check how keys() returns a view and how join expects strings.
Predict Output
advanced
2:00remaining
Type checking with inheritance and type()
What will this code print?
Python
class Animal:
    pass

class Dog(Animal):
    pass

pet = Dog()
print(type(pet) == Animal)
AFalse
BTrue
CTypeError
DSyntaxError
Attempts:
2 left
💡 Hint
type() checks exact type, not inheritance.
🧠 Conceptual
expert
3:00remaining
Understanding type() vs isinstance()
Which statement is true about type() and isinstance() in Python?
ABoth type() and isinstance() behave exactly the same for all objects.
Btype() returns True if an object is an instance of a class or its subclasses, isinstance() returns exact type only.
Ctype() returns the exact type of an object, while isinstance() returns True for an object and its subclasses.
Dtype() can check multiple types at once, isinstance() cannot.
Attempts:
2 left
💡 Hint
Think about inheritance and how these functions treat subclasses.

Practice

(1/5)
1. What does the type() function do in Python?
easy
A. It tells you the kind of data stored in a variable.
B. It changes the data type of a variable.
C. It prints the value of a variable.
D. It deletes a variable from memory.

Solution

  1. Step 1: Understand the purpose of type()

    The type() function returns the data type of the given variable or value.
  2. Step 2: Compare options with the function's purpose

    Only It tells you the kind of data stored in a variable. correctly states that type() tells the kind of data stored in a variable.
  3. Final Answer:

    It tells you the kind of data stored in a variable. -> Option A
  4. Quick Check:

    type() returns data type [OK]
Hint: Remember: type() shows data kind, not value or change [OK]
Common Mistakes:
  • Thinking type() changes the variable's type
  • Confusing type() with print()
  • Assuming type() deletes variables
2. Which of the following is the correct syntax to check the type of variable x?
easy
A. type x
B. type[x]
C. type(x)
D. check_type(x)

Solution

  1. Step 1: Recall the syntax of the type() function

    The correct syntax uses parentheses around the variable: type(x).
  2. Step 2: Evaluate each option

    type(x) matches the correct syntax. Options A and B use wrong brackets or missing parentheses. check_type(x) is not a valid Python function.
  3. Final Answer:

    type(x) -> Option C
  4. Quick Check:

    Use parentheses with type() [OK]
Hint: Use parentheses with functions like type() [OK]
Common Mistakes:
  • Using square brackets instead of parentheses
  • Omitting parentheses
  • Using non-existent functions like check_type()
3. What will be the output of this code?
value = 3.14
print(type(value))
medium
A. <class 'float'>
B. <class 'int'>
C. <class 'str'>
D. Error

Solution

  1. Step 1: Identify the data type of value

    The variable value is assigned 3.14, which is a decimal number, so its type is float.
  2. Step 2: Understand what print(type(value)) outputs

    The type() function returns <class 'float'> for a float value, which is printed.
  3. Final Answer:

    <class 'float'> -> Option A
  4. Quick Check:

    3.14 is float type [OK]
Hint: Decimals are float type in Python [OK]
Common Mistakes:
  • Confusing float with int
  • Expecting string output
  • Thinking it causes an error
4. Find the error in this code snippet:
my_var = 'hello'
if type(my_var) == str:
print('It is a string')
medium
A. Missing colon after if statement
B. Indentation error in print statement
C. Variable name is invalid
D. Incorrect use of type() function

Solution

  1. Step 1: Check the if statement syntax

    The if statement has a colon and uses type() correctly, so no error there.
  2. Step 2: Check indentation of the print statement

    In Python, the code inside if must be indented. Here, print is not indented, causing an indentation error.
  3. Final Answer:

    Indentation error in print statement -> Option B
  4. Quick Check:

    Indent inside if blocks [OK]
Hint: Indent code inside if statements [OK]
Common Mistakes:
  • Forgetting to indent after if
  • Misusing type() comparison
  • Missing colon after if
5. You want to write a function that returns True if the input is an integer or a float, and False otherwise. Which code correctly uses type() to do this?
hard
A. def check_num(x): return type(x) == int and float
B. def check_num(x): return type(x) == int or float
C. def check_num(x): return type(x) == 'int' or 'float'
D. def check_num(x): return type(x) in [int, float]

Solution

  1. Step 1: Understand the goal

    The function should return True if x is either int or float.
  2. Step 2: Analyze each option's correctness

    def check_num(x): return type(x) == int or float uses or float incorrectly, always returning truthy. def check_num(x): return type(x) in [int, float] uses in to check membership in a list of types, which is concise and correct. def check_num(x): return type(x) == 'int' or 'float' compares type to strings, which is wrong. def check_num(x): return type(x) == int and float uses and incorrectly, only detecting ints.
  3. Final Answer:

    def check_num(x): return type(x) in [int, float] -> Option D
  4. Quick Check:

    Use in to check multiple types [OK]
Hint: Use 'type(x) in [int, float]' for multiple types [OK]
Common Mistakes:
  • Comparing type to string names
  • Using 'and' instead of 'or' or 'in'
  • Using incomplete logic like '== int or float'