mattharrison / Tiny-Python-3.6-Notebook

This repository contains the text for the Tiny Python 3.6 Notebook.
1.35k stars 220 forks source link

Fix Context Managers examples #3

Closed FHeilmann closed 7 years ago

FHeilmann commented 7 years ago

\begincenter and \endcenter don't exist in LaTeX and the example code does not produce the expected result due to missing escape sequences for the backslash and curly braces. The example changes once you switch to raw strings, where backslashes do not need to be escaped, but curly braces still do.

I have fixed the strings and outputs, and changed the 2nd and 3rd example to use simple strings instead of raw strings. Readers may not catch that the switch happens which adds to confusion since backslashes need to be escaped in simple strings, but not in raw strings.

You also may want to consider adding a note, that even through the output will display two backslashes, the actual string only has one backslash.

Finally the may_error() part could become very confusing, especially when people execute the code and get different results from the ones you printed and, even worse, potentially varying results if they run the example multiple times.

mattharrison commented 7 years ago

Thanks for the PR. may_error illustrates that the exit block will always run even if there was an exception. I understand it is somewhat contrived.