Book Image

Dancing with Python

By : Robert S. Sutor
Book Image

Dancing with Python

By: Robert S. Sutor

Overview of this book

Dancing with Python helps you learn Python and quantum computing in a practical way. It will help you explore how to work with numbers, strings, collections, iterators, and files. The book goes beyond functions and classes and teaches you to use Python and Qiskit to create gates and circuits for classical and quantum computing. Learn how quantum extends traditional techniques using the Grover Search Algorithm and the code that implements it. Dive into some advanced and widely used applications of Python and revisit strings with more sophisticated tools, such as regular expressions and basic natural language processing (NLP). The final chapters introduce you to data analysis, visualizations, and supervised and unsupervised machine learning. By the end of the book, you will be proficient in programming the latest and most powerful quantum computers, the Pythonic way.
Table of Contents (29 chapters)
2
Part I: Getting to Know Python
10
PART II: Algorithms and Circuits
14
PART III: Advanced Features and Libraries
19
References
20
Other Books You May Enjoy
Appendices
Appendix C: The Complete UniPoly Class
Appendix D: The Complete Guitar Class Hierarchy
Appendix F: Production Notes

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,

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.

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.

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.

The Python modules we introduce in this part include flashtext, matplotlib, nltk, pandas, pillow, pytorch, re, scikit-learn, spacy, string, and textblob.