Drag a concept onto its matching description — or click a concept then click the description.
1
3
4
7
8
Match each Python operator to its precedence level (1=highest).
Drag a concept onto its matching description — or click a concept then click the description.
1
3
4
7
8
Answer choices
Answer the question above first, then reveal the full breakdown to understand why each option is right or wrong.
Correct answer & explanation
**: Level 1 (highest)
Operator precedence from highest to lowest: ** (exponent) > *, /, //, % (multiplicative) > +, - (additive).
Answer analysis
For each option: why learners choose it and why it is or isn't the right answer here.
**: Level 1 (highest)
Why this is correct
Exponentiation is at the very top of this mini-hierarchy: Python evaluates ** before any multiplicative or additive operator, so 2 * 3 ** 2 is 2 * 9 = 18. It is also right-associative, meaning 2 ** 3 ** 2 is 2 ** (3 ** 2) = 2 ** 9 = 512. Thus among these five options, ** is the only one that qualifies as level 1.
*: Level 2
Why this is correct
Multiplication sits in Python's multiplicative tier (/ // %) exactly one level below exponentiation and one above addition. In an expression like 2 + 3 * 4, the multiplication is performed first, giving 2 + 12 = 14, but exponentiation still outranks it, as in 3 * 2 ** 2 = 3 * 4 = 12. This medium placement is what makes * level 2, not level 1.
+: Level 3
Why this is correct
Addition and subtraction form the lowest tier of Python's arithmetic binary operators before comparisons, so they bind most loosely in this question. Python parses 1 + 2 * 3 ** 2 as 1 + (2 * (3 ** 2)) = 1 + 18 = 19, because + is applied last. That is why + is level 3: it only happens after all exponentiation and multiplication work is done.
*: Level 1
Why it's wrong here
Placing * at level 1 would make multiplication bind tighter than exponentiation, which would break Python's standard parsing of expressions such as 2 * 3 ** 2: the result would be (2 * 3) ** 2 = 36 instead of the actual 2 * (3 ** 2) = 18. Exponentiation occupies the top slot, so * cannot be level 1. Python's grammar reserves level 1 for **.
+: Level 2
Why it's wrong here
If + were at level 2, the expression 2 + 3 * 4 would be evaluated as (2 + 3) * 4 = 20, but Python returns 14 because * is the level-2 operator and + is relegated to level 3. The additive operators, + and -, never outrank the multiplicative set; they sit below it in the precedence table. Therefore + must be level 3, not level 2.
Go deeper
About these practice questions
One of 421 original PCAP practice questions on Courseiva, each with a full explanation and wrong-answer analysis — not exam dumps or protected exam content. Learn why practice questions differ from exam dumps →
Written by Johnson Ajibi, MSc IT Security
Senior Network & Security Engineer · founder of Courseiva
This PCAP practice question is part of Courseiva's free Python Institute certification practice question bank. Courseiva provides original exam-style practice questions with explanations, topic-based practice, mock exams, readiness tracking, and study analytics to help learners prepare for the PCAP exam.