A previous example is repeated here to illustrate how names can illuminate the way Python evaluates. When stepping forward through the code below, the value obtained by Python for each name is shown in the a box below the code.

Expression Breakdown

a = 9>1e-4 and {0:"Cavern", 5:'Tunnel'}[0].upper() in 'cave'
b = 9>1e-4
c = {0:"Cavern", 5:'Tunnel'}[0].upper()
d = c in 'cave'
e = b and d

Breaking down a complex expression into named parts can be helpful for debugging software. At each point in a computation, one can then ask "is the value for X what we expect it to be?" and similar questions (where X is a name of an evaluated expression).