How HKEAA Marks Python Questions
Understanding the marking scheme is half the battle. Many students lose marks not because they can't code, but because they don't know what examiners are looking for.
HKDSE ICT Python questions are marked using three categories of marks:
- Logic marks โ awarded for correct algorithm and structure
- Syntax marks โ awarded for valid Python code
- Output marks โ awarded for exact output matching
Follow-Through Marking: The Student's Safety Net
HKDSE uses "follow-through" (ft) marking. If you make an error in part (a), but your subsequent parts are correct given that error, you still get those marks.
Example: if part (a) asks you to calculate a total, and you write total = sum(scores) + 1 (wrong by 1), but part (b) correctly uses total, you only lose 1 mark โ not all the marks.
Exact Output Matters
Output marks are awarded only for exact output. Common pitfalls:
Capitalisation
# Question asks for "Pass"
print("pass") # โ WRONG โ loses mark
print("PASS") # โ WRONG โ loses mark
print("Pass") # โ CORRECT
Spaces
# Question shows "Score: 85"
print("Score:",score) # โ "Score: 85" (with space โ OK)
print("Score:"+str(score)) # โ "Score:85" (no space โ WRONG)
print(f"Score: {score}") # โ "Score: 85"
Decimal Points
# Question asks for 2 decimal places
print(87.5) # โ Shows "87.5"
print(f"{x:.2f}") # โ Shows "87.50"
Common Ways Students Lose Marks
1. Indentation Errors
Python is indentation-sensitive. Inconsistent indentation causes syntax errors that lose all logic marks.
2. Missing Input Conversion
n = input("Enter a number: ")
total = n + 10 # โ TypeError โ input is string
n = int(input("Enter a number: "))
total = n + 10 # โ Correct
3. Off-by-One Errors in range()
# To print 1 to 10
for i in range(1, 10): # โ Prints 1 to 9
print(i)
for i in range(1, 11): # โ Prints 1 to 10
print(i)
4. Not Closing Files
Using open() without .close() can cost 1 mark. Use with instead:
with open('data.txt') as f:
content = f.read() # โ Auto-closes
What Gets You the Full Marks
- Read the question twice before coding
- Copy variable names exactly as given in the question
- Match output format (spaces, capitalisation, decimals)
- Use meaningful variable names (shows good practice)
- Test your code by tracing through an example
- Attempt every part โ even partial credit adds up
Practise Exam-Style Questions with Instant Feedback
PyForm's Special Task mode marks your Python answers HKDSE-style and shows you exactly what the examiner would write.
Start Practising Free โ