CHAPTER 08 VISUAL LAB - Trace branches and their boundaries
Book boards: 08a and 08b

PRACTICE ROUTINE
Cover the board answer. Predict aloud, try the example, compare with the
stated result, change one input, and try again. Explain a discrepancy
before changing another thing. All marketing examples are fictional.

Use boards 08a and 08b. Open walkthrough.py in Thonny and press F5. The first
section uses rate 15. The second uses cost 90 and a known zero enquiry count.

EXPECTED OUTPUT
Check complete.
No enquiries; rate unavailable.

FOLLOW THE CODE
The review print is skipped because 15 > 20 is False. Check complete is not
indented and therefore runs regardless. The second decision checks the zero
denominator before reaching a division. This lab assumes nonnegative inputs;
python/chapter08.py also shows the separate rejection of negative inputs.

CHANGE, PREDICT, CHECK
Make a practice copy. Change rate from 15 to exactly 20. Predict the output.
Answer: it stays unchanged because > 20 excludes exactly 20. Change > to >=
to see the review message appear. Decide the rule in words before that edit.

SECOND CHANGE
Restore the original comparison. Change enquiries from 0 to 3 while leaving
cost at 90. The last line should now be EUR per enquiry: 30.0. Change cost to
0 with enquiries still 3: the result becomes 0.0, a known zero recorded cost
per enquiry. This differs from the unavailable result with no enquiries.

Explain which block executes for every test input, not just which final
number you expect. The indentation identifies that block.
