#### 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.
Free Chapter
Chapter 1: Doing the Things That Coders Do
Part I: Getting to Know Python
Chapter 2: Working with Expressions
Chapter 3: Collecting Things Together
Chapter 4: Stringing You Along
Chapter 5: Computing and Calculating
Chapter 6: Defining and Using Functions
Chapter 7: Organizing Objects into Classes
Chapter 8: Working with Files
PART II: Algorithms and Circuits
Chapter 9: Understanding Gates and Circuits
Chapter 10: Optimizing and Testing Your Code
Chapter 11: Searching for the Quantum Improvement
PART III: Advanced Features and Libraries
Chapter 12: Searching and Changing Text
Chapter 13: Creating Plots and Charts
Chapter 14: Analyzing Data
Chapter 15: Learning, Briefly
References
Other Books You May Enjoy
Index
Appendices
Appendix B: Staying Current
Appendix C: The Complete UniPoly Class
Appendix D: The Complete Guitar Class Hierarchy
Appendix E: Notices
Appendix F: Production Notes

# 1.3 Functions

The notion of “expression” includes functions and all that goes into writing and using them. The syntax of their definition varies significantly among programming languages, unlike simple arithmetic expressions. In words, I can say

The function `maximum(x, y)` returns `x`
if it is larger than y. Otherwise, it returns `y`.

Let’s consider this informal definition.

• It has a descriptive name: maximum.
• There are two variables within parentheses: `x` and `y`. These are the parameters of the function.
• A function may have zero, one, two, or more parameters. To remain readable, it shouldn’t have too many.
• When we employ the function as in `maximum(3, -2)` to get the larger value, we call the function maximum on the arguments `3` and `-2`.
• To repeat: `x` and `y` are parameters, and `3` and `-2` are arguments. However, it’s not unusual for coders to call them all arguments.
• The body of the function is what does the work. The statement involving if-then-otherwise is called a conditional. Though “if” is often used in programming languages, the “then” and “otherwise” may be implicit in the syntax used to write the expression. “else” or a variation may be present instead of “otherwise.”
• The test “`x` larger than `y`” is the inequality ```x > y```. This returns a Boolean true or false. Some languages use “predicate” to refer to an expression that returns a Boolean.
• maximum returns a value that you can use in further computation. Coders create some functions for their actions, like updating a database. They might not return anything.

For comparison, this is one way of writing maximum in the C programming language:

``````int maximum(int x, int y) {
if (x > y) {
return x;
}
return y;
}``````

This is a Python version with a similar definition:

``````def maximum(x, y):
if x > y:
return x
return y
``````

There are several variations within each language for accomplishing the same result. Since they look so similar in different languages, you should always ask, “Am I doing this the best way in this programming language?”. If not, why are you using this language instead of another?

Expressions can take up several lines, particularly function definitions. C uses braces “`{ }`” to group parts together, while Python uses indentation.