The book has been over a year in the making. Many long nights writing and revising. Without the support of my awesome wife, there is no way I would have been able to finish it. Thank-you sweetie - I love you!
See below to read about how the book Problem Solving with Python 3.6 Edition was created.
My book, Problem Solving with Python was constructed using Jupyter Notebooks. The text was written in markdown cells and the code was written in code cells. Sometimes I used the Classic Notebook interface as my editor and other times I used the Jupyter Lab interface.
The GitHub repo for the book can be found at:
The GitHub repo contains all the Jupyter notebooks used the write the book. The repo also contains a set of custom conversion scripts and templates which convert the Jupyuter notebooks into .html and .tex files.
The directory structure of the GitHub repo for the book is below:
Problem-Solving-with-Python/ |-- conversion_tools/ |-- notebooks/ |-- LICENSE |-- notebooks/ |-- pdf/ |-- README.md |-- website/
notebooks directory contains a subdirectory for each chapter of the book:
notebooks/ |-- 00-Preface/ |-- 01-Orientation/ |-- 02-The-Python-REPL/ |-- 03-Data-Types-and-Variables/ |-- 04-Jupyter-Notebooks/ |-- 05-Functions-and-Modules/ |-- 06-Plotting-with-Matplotlib/ |-- 07-If-Else-Try-Except/ |-- 08-Loops/ |-- 09-Matrices-and-Arrays/ |-- 10-Symbolic-Math/ |-- 11-Python-and-External-Hardware/ |-- 12-MicroPython/ |-- 99-Appendix/ |-- figures/ `-- TOC.ipynb
There is a Jupyter notebook for each section of the book within each chapter directory. Each chapter directory contains an
images directory for any images used in the markdown cells of the notebooks.
01-Orientation/ |-- 01.00-Welcome.ipynb |-- 01.01-Why-Python.ipynb |-- 01.02-The-Anaconda-Distribution-of-Python.ipynb |-- 01.03-Installing-Anaconda-on-Windows.ipynb |-- 01.04-Installing-Anaconda-on-MacOS.ipynb |-- 01.05-Installing-Anaconda-on-Linux.ipynb |-- 01.06-Installing-Python-from-Python-dot-org.ipynb |-- 01.07-Summary.ipynb |-- 01.08-Review-Questions.ipynb `-- images/
The website for this book was constructed using mkdocs and the Material for MkDocs theme. Jupyter noteboks were exported to .html files with markdown cells unformatted using a custom script and
The hard copy of the book was constructed using LaTeX,
nbconvert and a set of custom scripts and templates. One conversion script combined all of the notebooks into one BIG notebook. The BIG notebook was then converted into LaTeX using
nbconvert and a custom template. Outside of the Python ecosystem, a separate installation of TeXworks compiled the LaTeX .tex file to a .pdf document.