Tiny Python Projects
eBook - ePub

Tiny Python Projects

Learn coding and testing with puzzles and games

  1. 440 pages
  2. English
  3. ePUB (mobile friendly)
  4. Available on iOS & Android
eBook - ePub

Tiny Python Projects

Learn coding and testing with puzzles and games

About this book

"Tiny Python Projects is a gentle and amusing introduction to Python that will firm up key programming concepts while also making you giggle."—Amanda Debler, Schaeffler Key Features
Learn new programming concepts through 21-bitesize programs
Build an insult generator, a Tic-Tac-Toe AI, a talk-like-a-pirate program, and more
Discover testing techniques that will make you a better programmer
Code-along with free accompanying videos on YouTube Purchase of the print book includes a free eBook in PDF, Kindle, and ePub formats from Manning Publications. About The Book
The 21 fun-but-powerful activities in Tiny Python Projects teach Python fundamentals through puzzles and games. You'll be engaged and entertained with every exercise, as you learn about text manipulation, basic algorithms, and lists and dictionaries, and other foundational programming skills. Gain confidence and experience while you create each satisfying project. Instead of going quickly through a wide range of concepts, this book concentrates on the most useful skills, like text manipulation, data structures, collections, and program logic with projects that include a password creator, a word rhymer, and a Shakespearean insult generator. Author Ken Youens-Clark also teaches you good programming practice, including writing tests for your code as you go. What You Will Learn
Write command-line Python programs
Manipulate Python data structures
Use and control randomness
Write and run tests for programs and functions
Download testing suites for each project This Book Is Written For
For readers familiar with the basics of Python programming. About The Author
Ken Youens-Clark is a Senior Scientific Programmer at the University of Arizona. He has an MS in Biosystems Engineering and has been programming for over 20 years. Table of Contents 1 How to write and test a Python program
2 The crow's nest: Working with strings
3 Going on a picnic: Working with lists
4 Jump the Five: Working with dictionaries
5 Howler: Working with files and STDOUT
6 Words count: Reading files and STDIN, iterating lists, formatting strings
7 Gashlycrumb: Looking items up in a dictionary
8 Apples and Bananas: Find and replace
9 Dial-a-Curse: Generating random insults from lists of words
10 Telephone: Randomly mutating strings
11 Bottles of Beer Song: Writing and testing functions
12 Ransom: Randomly capitalizing text
13 Twelve Days of Christmas: Algorithm design
14 Rhymer: Using regular expressions to create rhyming words
15 The Kentucky Friar: More regular expressions
16 The Scrambler: Randomly reordering the middles of words
17 Mad Libs: Using regular expressions
18 Gematria: Numeric encoding of text using ASCII values
19 Workout of the Day: Parsing CSV files, creating text table output
20 Password strength: Generating a secure and memorable password
21 Tic-Tac-Toe: Exploring state
22 Tic-Tac-Toe redux: An interactive version with type hints

Frequently asked questions

Yes, you can cancel anytime from the Subscription tab in your account settings on the Perlego website. Your subscription will stay active until the end of your current billing period. Learn how to cancel your subscription.
No, books cannot be downloaded as external files, such as PDFs, for use outside of Perlego. However, you can download books within the Perlego app for offline reading on mobile or tablet. Learn more here.
Perlego offers two plans: Essential and Complete
  • Essential is ideal for learners and professionals who enjoy exploring a wide range of subjects. Access the Essential Library with 800,000+ trusted titles and best-sellers across business, personal growth, and the humanities. Includes unlimited reading time and Standard Read Aloud voice.
  • Complete: Perfect for advanced learners and researchers needing full, unrestricted access. Unlock 1.4M+ books across hundreds of subjects, including academic and specialized titles. The Complete Plan also includes advanced features like Premium Read Aloud and Research Assistant.
Both plans are available with monthly, semester, or annual billing cycles.
We are an online textbook subscription service, where you can get access to an entire online library for less than the price of a single book per month. With over 1 million books across 1000+ topics, we’ve got you covered! Learn more here.
Look out for the read-aloud symbol on your next book to see if you can listen to it. The read-aloud tool reads text aloud for you, highlighting the text as it is being read. You can pause it, speed it up and slow it down. Learn more here.
Yes! You can use the Perlego app on both iOS or Android devices to read anytime, anywhere — even offline. Perfect for commutes or when you’re on the go.
Please note we cannot support devices running on iOS 13 and Android 7 or earlier. Learn more about using the app.
Yes, you can access Tiny Python Projects by Ken Youens-Clark in PDF and/or ePUB format, as well as other popular books in Computer Science & Software Development. We have over one million books available in our catalogue for you to explore.

Information

1 How to write and test a Python program

Before you start working on the exercises, I want to discuss how to write programs that are documented and tested. Specifically, we’re going to
  • Write a Python program to say ā€œHello, World!ā€
  • Handle command-line arguments using argparse
  • Run tests for the code with Pytest.
  • Learn about $PATH
  • Use tools like YAPF and Black to format the code
  • Use tools like Flake8 and Pylint to find problems in the code
  • Use the new.py program to create new programs

1.1 Creating your first program

It’s pretty common to write ā€œHello, World!ā€ as your first program in any language, so let’s start there. We’re going to work toward making a version that will greet whichever name is passed as an argument. It will also print a helpful message when we ask for it, and we’ll use tests to make sure it does everything correctly.
In the 01_hello directory, you’ll see several versions of the hello program we’ll write. There is also a program called test.py that we’ll use to test the program.
Start off by creating a text file called hello.py in that directory. If you are working in VS Code or PyCharm, you can use File > Open to open the 01_hello directory as a project. Both tools have something like a File > New menu option that will allow you to create a new file in that directory. It’s very important to create the hello.py file inside the 01_hello directory so that the test.py program can find it.
Once you’ve started a new file, add this line:
print('Hello, World!')
It’s time to run your new program! Open a terminal window in VS Code or PyCharm or in some other terminal, and navigate to the directory where your hello.py program is located. You can run it with the command python3 hello.py--this causes Python version 3 to execute the commands in the file named hello.py. You should see this:
$ python3 hello.py Hello, World!
Figure 1.1 shows how it looks in the Repl.it interface.
Figure 1.1 Writing and running our first program using Repl.it
If that was your first Python program, congratulations!

1.2 Comment lines

In Python, the # character and anything following it is ignored by Python. This is useful for adding comments to your code or temporarily disabling lines of code when testing and debugging. It’s always a good idea to document your programs, indicating the purpose of the program or the author’s name and email address, or both. We can use a comment for that:
# Purpose: Say hello print('Hello, World!')
If you run this program again, you should see the same output as before because the ā€œPurposeā€ line is ignored. Note that any text to the left of the # is executed, so you can add a comment to the end of a line if you like.

1.3 Testing your program

The most fundamental idea I want to teach you is how to test your programs. I’ve written a test.py program in the 01_hello directory that we can use to test our new hello.py program.
We will use pytest to execute all the commands and tell us how many tests we passed. We’ll include the -v option, which tells pytest to create ā€œverboseā€ output. If you run it like this, you should see the following output as the first several lines. After that will follow many more lines showing you more information about the tests that didn’t pass.
Note If you get the error ā€œpytest: command not found,ā€ you need to install the pytest module. Refer to the ā€œInstalling modulesā€ section in the book’s introduction.
$ pytest -v test.py ============================= test session starts ============================== ... collected 5 items test.py::test_exists PASSED [ 20%] ā‘  test.py::test_runnable PASSED [ 40%] ā‘” test.py::test_executable FAILED [ 60%] ā‘¢ test.py::test_usage FAILED [ 80%] ā‘£ test.py::test_input FAILED [100%] ⑤ =================================== FAILURES ===================================
ā‘  The first test always checks that the expected file exists. Here the test looks for hello.py.
ā‘” The second test tries to run the program with python3 hello.py and then checks if the program printed ā€œHello, World!ā€ If you miss even one character, like forgetting a comma, the test will point out the error, so read carefully!
ā‘¢ The third test checks that the program is ā€œexecutable.ā€ This test fails, so next we’ll talk about how to make that pass.
ā‘£ The fourth test asks the program for help and doesn’t get anything. We’re going to add the ability to print a ā€œusageā€ statement that describes how to use our program.
⑤ The last test checks that the program can greet a name that we’ll pass as an argument. Since our program doesn’t yet accept arguments, we’ll need to add that, too.
I’ve written the tests in an order that I hope will help you write the program in a logical fashion. If the program doesn’t pass one of the tests, there’s no reason t...

Table of contents

  1. Tiny Python Projects
  2. Copyright
  3. brief contents
  4. contents
  5. front matter
  6. 0 Getting started: Introduction and installation guide
  7. 1 How to write and test a Python program
  8. 2 The crow’s nest: Working with strings
  9. 3 Going on a picnic: Working with lists
  10. 4 Jump the Five: Working with dictionaries
  11. 5 Howler: Working with files and STDOUT
  12. 6 Words count: Reading files and STDIN, iterating lists, formatting strings
  13. 7 Gashlycrumb: Looking items up in a dictionary
  14. 8 Apples and Bananas: Find and replace
  15. 9 Dial-a-Curse: Generating random insults from lists of words
  16. 10 Telephone: Randomly mutating strings
  17. 11 Bottles of Beer Song: Writing and testing functions
  18. 12 Ransom: Randomly capitalizing text
  19. 13 Twelve Days of Christmas: Algorithm design
  20. 14 Rhymer: Using regular expressions to create rhyming words
  21. 15 The Kentucky Friar: More regular expressions
  22. 16 The scrambler: Randomly reordering the middles of words
  23. 17 Mad Libs:Using regular expressions
  24. 18 Gematria: Numeric encoding of text using ASCII values
  25. 19 Workout of the Day: Parsing CSV files, creating text table output
  26. 20 Password strength: Generating a secure and memorable password
  27. 21 Tic-Tac-Toe: Exploring state
  28. 22 Tic-Tac-Toe redux: An interactive version with type hints
  29. Epilogue
  30. Appendix. Using argparse
  31. index