Hint: If condition fails, raise stops and shows error message [OK]
Common Mistakes:
Expecting function to return 'Access granted' anyway
Confusing error message with print output
Thinking raise prints message but continues
4. Find the error in this code snippet:
def check_number(num):
if num < 0:
raise 'Negative number error'
return 'Number is positive'
print(check_number(-5))
medium
A. You cannot raise a string directly; it must be an Exception type.
B. The raise statement is missing parentheses.
C. The function should return None instead of a string.
D. The if condition should be num > 0.
Solution
Step 1: Check the raise statement
The code tries to raise a string directly, which is not allowed in Python. Only Exception types can be raised.
Step 2: Correct way to raise errors
Use raise ValueError('message') or another Exception class, not a plain string.
Final Answer:
You cannot raise a string directly; it must be an Exception type. -> Option A
Quick Check:
raise must use Exception type, not string [OK]
Hint: Always raise Exception objects, not strings [OK]
Common Mistakes:
Raising strings instead of Exception classes
Forgetting to include parentheses with message
Changing condition incorrectly
5. You want to create a function validate_score(score) that raises a ValueError with the message "Score must be between 0 and 100" if the score is outside this range. Which code correctly implements this?
hard
A. def validate_score(score):
if score < 0 or score > 100:
raise ValueError('Score must be between 0 and 100')
return 'Valid score'
B. def validate_score(score):
if 0 <= score <= 100:
raise ValueError('Score must be between 0 and 100')
return 'Valid score'
C. def validate_score(score):
if score < 0 and score > 100:
raise ValueError('Score must be between 0 and 100')
return 'Valid score'
D. def validate_score(score):
if score == 0 or score == 100:
raise ValueError('Score must be between 0 and 100')
return 'Valid score'
Solution
Step 1: Understand the valid range condition
The score is valid if it is between 0 and 100 inclusive. So invalid means less than 0 or greater than 100.
Step 2: Check the if condition logic
def validate_score(score):
if score < 0 or score > 100:
raise ValueError('Score must be between 0 and 100')
return 'Valid score' correctly uses if score < 0 or score > 100 to detect invalid scores and raise the error.
Final Answer:
def validate_score(score):
if score < 0 or score > 100:
raise ValueError('Score must be between 0 and 100')
return 'Valid score' -> Option A
Quick Check:
Use or for invalid range, raise error if outside [OK]
Hint: Raise error if score is less than 0 or greater than 100 [OK]
Common Mistakes:
Using and instead of or in condition
Raising error for valid scores instead of invalid
Checking only equality instead of range
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.