What does this book cover?
Given the wide use of Python and the wide variety of learning and reference materials, I have chosen to structure this book into three main parts. I give you the information you need as you need it.
Before jumping into those, however, we together explore what coders do, how they think about using programming languages, and what they expect from the tools they use. That chapter,
- 1. Doing the Things That Coders Do
is not specific to Python and is occasionally philosophical about the art and engineering of writing code.
After that introduction, the rest of the book proceeds in the following way.
Part I. Getting to Know Python
Being a full-featured programming language, Python implements the features described in the first chapter mentioned above. In this part, we learn how to write basic expressions including numbers and textual strings, collect objects together using data structures such as lists, and explore Python’s core and extended mathematical facilities.
We then jump into defining functions to organize and make our code reusable, introduce object-oriented coding through classes, and finally interact with information within the computing environment via files.
- 2. Working with Expressions
- 3. Collecting Things Together
- 4. Stringing You Along
- 5. Computing and Calculating
- 6. Defining and Using Functions
- 7. Organizing Objects into Classes
- 8. Working with Files
The Python modules we introduce in this part include abc, cmath, collections, datetime, enum, fractions, functools, glob, json, math, os, pickle, random, shutil, sympy, and time.
Part II. Algorithms and Circuits
Now that we understand Python’s core features, we’re ready to explore how to make it useful to solve problems. Although many books only speak about functions and classes, we enlarge our discussion to include gates and circuits for classical and quantum computing. It’s then a good time to see how we can test our code and make it run faster.
We then look at traditional problems and see how we can attack them classically. Quantum computing’s reason for existence and development is that it might solve some of those problems significantly faster. We explore the how and why of that, and I point you to further reading on the topic.
- 9. Understanding Gates and Circuits
- 10. Optimizing and Testing Your Code
- 11. Searching for the Quantum Improvement
The Python modules we introduce in this part include coverage, pytest, qiskit, time, timeit, and wrapt.
Part III. Advanced Features and Libraries
In the final part, we address some heavy-duty but frequent applications of Python. Though we worked with text as strings earlier in the book, we revisit it with more sophisticated tools such as regular expressions and natural language processing (NLP).
The final three chapters focus on data: how to bring it into an application and manipulate it, how to visualize what it represents, and how to gain insights from it through machine learning. Machine learning itself is worth a book or two (or three or ten), so I introduce the key concepts and tools, and you can then jump off into more sophisticated Python and AI applications.
- 12. Searching and Changing Text
- 13. Creating Plots and Charts
- 14. Analyzing Data
- 15. Learning, Briefly
The Python modules we introduce in this part include flashtext, matplotlib, nltk, pandas, pillow, pytorch, re, scikit-learn, spacy, string, and textblob.