Python 3 Exercises for beginners
Minimum price
Suggested price

Python 3 Exercises for beginners

Easy exercises for starting coders

About the Book

This book pretends to fill a gap between the Python books.

Written by Carles Mateo, with Sandra Soriano and Albert Ballart as coautors, when Carles was teaching to different students he realized that there is a gap, between the moment the person is starting to program and finds no exercises easy enough to do. They are too difficult. Like in hackerrank.

This book provides very easy exercises to learn easily, and explanations abut the solutions achieved.

Then the difficulty increases, and the explanations provide a very valuable knowledge absorbed quickly and easily. Also examples that will clarify very basic doubts and not so basic ones.

It also provides useful recipes and samples, like building text menu applications, receiving input from keyboard, or using library paramiko to SSH to a Server with username and password and execute a command. Also I show how I created a Battleship game, a Guess my number game, a Tic Tac Toe, graphics generation...

This book is written in three languages:

  • English (Main)
  • Catalan
  • Spanish

Everything is available in the three languages.

About the Author

Carles Mateo
Carles Mateo

I’m Carles Mateo, since January 2020 working as Operations Engineer for Blizzard Entertainment in Cork, Ireland.

Previously worked as Cloud Architect and SDM for Sanmina, in Ireland and United States, where I created and I did lead a Python and C project for a Storage Manager for our 4U Cold Storage Servers 1PB and 2U SSD and 1U NVMe with NICs up to 2x100Gbps, which will restore redundancy in the RAID when a drive dies, very quickly, using ZFS and DRAID.

I helped several multinationals:

  • Volkswagen IT (gedas) where I got promoted to head of department of Reusability and Code Components and previously I lead the SEAT's Intranet project, I solved TCP/Ip transmission problems in project PortIc for Barcelona's port (EDI Transfer), I created a project to transfer warranty documents over Web and TCP/IP instead of X.25 expensive lines, and worked for CaixaBank (formerly "la caixa") creating a Documentum solution programing the GUI and DLL's.
  • Winterthur Insurance (Axa) where I was Senior PM and I lead both technically and in functionally, the project to deploy a new Contact Center Software, the e-Commerce web platform and the insurance of health policies (special Data treatment)
  • BBVA Tickets where I was responsible of the platform (Sun Solaris and Oracle)

I worked a lot for CSP (Cloud Service Providers) and ISP, in Linux.

Also I helped many Start ups, e-Commerces, Online travel agencies... as CTO or in hands on positions leading teams and coding myself, in Software Development, SRE and Operation roles.

I was one of the 5 Senior BackEnds that wrote Privalia's new multi-country Website, from the scratch, with inheritance, and I lead a KPI Dashboards for CEO, really learning the internals of all the areas of the company through the data.

The last company I was CTO for, in Barcelona, was sold to airbnb for 45 million euros.

My friends say that everything I touch turns into gold, and my very good friend Jaume (R.I.P.) used to say that I was the most brutal technical guy, solving all the difficult technical issues easily, that he ever met. I've very grateful thoughts and memories for all the people that did speak up how well they considered me, and that were fair Other people tried to take advantage by never telling me how good and helpful I was, so they could pay me less. What they didn't know is that I always had offers paying me double, and I was choosing to help them.

Now I only accept fair agreements. I know my value.

I started programming when I was 5 years old, at 10 I won a contest at Spanish State level, getting a Pc with a green phosphorescent monitor and a floppy drive, and I've lived the times of the BBS, much before Internet.

I've coded many Freeware Software, and Open Source Software, and I created the first system in Europe to sell Tickets for musical events, in 1995, for Tick Tack Ticket. I created this e-Commerce engine, with render template system completely in C, cgi-bin, HTML.

I love Software and Hardware.

I've worked with C, Java, PHP, Python... and my knowledge of PHP Unit Testing really reached its best when I was working for a bank.

I've invented the CSort algorithm.

In my free time I teach some students to get pro in coding. Most of my time now I work with Python 3, Docker Containers and Linux.

You can find information about me in my blog.

Bundles that include this book

Bought separately
Bundle Price
Bought separately
Bundle Price
Bought separately
Bundle Price

Table of Contents

  • Index for v.45 (2022-02-12) .... 3
  • Contact me .... 7
  • Receiving Free Updates .... 8
  • If you’re not satisfied .... 9
  • Some notes / Algunes notes / Algunas anotaciones .... 10
  • MT Notation .... 11
  • MT Notation (English) .... 11
  • Just execute / Només executa / Solo ejecuta .... 12
  • Exercise 1: index returned by .find() .... 12
  • Exercise 2: for in range .... 13
  • Exercise 3: New instance of a class .... 14
  • Exercise 4: New instance of a class with Parameters .... 15
  • Exercise 5: Math Operations order .... 16
  • Basic exercises / Exercicis bàsics / Ejercicios básicos .... 18
  • Exercise 1: Print numbers from 0 to 9. Use for and range. .... 18
  • Exercise 1.1: Do the same with while instead of for and range. .... 19
  • Exercise 2: Num1 exp Num2 .... 20
  • Exercise 3: Prints characters from "a" to "z". .... 23
  • Ascii Table .... 25
  • Exercise 4: Print even numbers for 0 to 20 .... 27
  • Exercise 4.1: Do it using while instead of for .... 28
  • Exercise 5: Locate the index of a Substring in a String .... 30
  • Exercise 6: Create a function that gets a String and prints each character in a line .... 33
  • Access Strings by position .... 33
  • Exercise 7: Scrap the title of a web, manually .... 35
  • Exercise 7.1: Scrap the title of a web, using Beautiful Soup package .... 39
  • Exercise 8: Reverse a String .... 42
  • Exercise 8.1: Reverse a String using for .... 44
  • Exercise 9: Phrase in diagonal .... 46
  • Exercise 10: Number Translator .... 50
  • Exercise 10.1: Import the file from the exercise 10, and make a new program that prints all the numbers in a cipher in a single line .... 54
  • Exercise 11: Create a function that using .rfind() return the index of the last position in a String passed by parameter .... 55
  • Exercise 11.1: Create a function that using .find() returns the index position of the first occurrence of the substring searched for .... 55
  • Exercise 11.2: Create a simple code that prints the index position of the first occurrence of the character “a” in the String without using any function (not .find(), etc…) .... 55
  • 3 / 202Exercise 12: The minor number of 2 .... 56
  • Exercise 13: The minor number of 3 .... 56
  • Exercise 13: The minor number of n .... 56
  • Exercise 13.1: The minor number of n .... 56
  • Exercise 14: Create a function that does nothing and does not generate an error when it's called .... 56
  • Exercise 15: Import library random and print a random number between 0 and 10 .... 57
  • Exercise 16: Create a function that gets two parameters, i_min and i_max, and it generates a random number. Return it .... 57
  • Exercise 17: Create a function that gets three parameters, i_min and i_max and i_numbers and it generates a list with i_numbers random numbers. Returns that array .... 58
  • Exercise 18: Using the previous code, generate an Array of numbers 1,000 numbers between 0 and 255 .... 59
  • Exercise 19: Numbers in words, with negative numbers .... 60
  • Exercise 20: translate numbers to the name of their position if the most optimal way in terms of usage of memory .... 62
  • Exercise 21: Convert Bytes to KB .... 64
  • Exercise 22: Count how many times “a” char appears in a text .... 65
  • Exercise 23: Remove the accents of a Text .... 66
  • Exercise 24: Count the char more used in a text, excluding spaces .... 68
  • Exercise 25: Open a text file and print it’s contents on the screen prepending the line number .... 70
  • Exercise 26: Calculate the average of several numbers .... 73
  • Exercise 27: Create a Function to calculate the area of a circle of radius n .... 74
  • Exercise 28: import the previous file and calculate the areas of circles of radius from 5 to 100 in increments of 5 (5, 10, 15...100) .... 76
  • Exercise 29: Print the values from a tuple stored in an Array .... 77
  • Arrays or Lists. Llistes. Listas .... 78
  • Exercice 1: Print the items of the list, one per line .... 78
  • Exercici 2: Sort the list using .sort() .... 80
  • Exercise 2.1 [Difficult]: Sort the list without using .sort() .... 81
  • Exercise 3: Using .count() method determine how many times a value appears in the Array .... 83
  • Exercise 3.1 [Difficult]: Using a loop (avoid using .count() method) count how how many times a value appears in the Array .... 83
  • Exercise 4: Last item of an Array .... 84
  • Exercise 5: Print a new array that contains the last two items of the previous array using array slice .... 85
  • Exercise 5: Sorting an Array on numbers with sorted .... 86
  • Exercise 6: Sorting an String with sorted .... 86
  • Exercise 7: repeat an array pattern n times .... 87
  • Exercise 8: Create an Array with the values from 0 to 99 .... 88
  • Exercise 9: Keep an Array always sorted .... 89
  • Dictionary / Diccionaris / Diccionarios .... 90
  • Exercise 1: The code (substitution using a dictionary) .... 90
  • Exercise 2: Connect to a web page that returns a JSON and get your public Ip .... 91
  • Exercise 3: Challenge lettersum .... 92
  • Classes .... 95
  • Exercise 1: Create a class with a constructor, that does nothing when created, but works .... 96
  • Exercise 2: Create a class named MyCar with a constructor, with two parameters, one String, and the other Integer, that sets two properties (class variables) .... 97
  • Exercise 3: Draw a map for your games .... 98
  • Practical problems and Recipes .... 104
  • Exercise 1: Ask the user for Y or N .... 104
  • Exercise 2: Function to ask for user input .... 105
  • Exercise 3: Create a function that will ask a user for a number from Keyboard input, and return the result, only when the value is between the accepted ranges .... 106
  • Exercise 4: Write a program that will keep the Unix Epoch time when the program starts, and when the program ends, and it will show the time spent by the program .... 114
  • Exercise 5: Using Paramiko library, write a function to SSH to a Server and execute a command .... 115
  • Exercise 6: Getting count, min, max, average .... 118
  • Exercise 7: Redo the exercise 6 by using Arrays .... 124
  • Graphics .... 125
  • Use WordCloud to generate a .PNG cloud of words .... 125
  • Graphic lines with matplotlib.pyplot .... 127
  • Draw a pie chart .... 128
  • Games .... 130
  • Guess my number / Adivina el número .... 130
  • Tic Tac Toe / 3 en ratlla / 3 en ralla .... 132
  • Battleship / Enfonsar la flota / Hundir la flota .... 136
  • Hard exercises .... 154
  • Exercise 1: Using the previous code to generate random numbers, generate and array of 10,000 random Integer numbers and sort the array using the Algorithm Bubble Sort .... 154
  • Exercise 1.1: Use the Unix epoch functions written before, to see the time used by the Bubble Sort algorithm .... 155
  • Exercise 1.2: Using the previous program, remove everything unnecessary, except the last print to show the time .... 158
  • Exercise 1.3: Using the previous program, replace the Bubble Sort by Python Sort, so: a_i_random.sort() .... 160
  • Exercise 1.4: Increase the number of numbers generated to 100,000 and observe the differences in time between Bubble Sort and Python .sort() .... 160
  • Exercise 1.5: Now repeat the exercise with the Python Sort and Bubble Sort, but instead of a range between 0 and 255, use 10,000,000 as max. Generate 10,000 numbers only. Note the times and your conclusions. .... 162
  • Exercise 2: Create a dictionary that contains three places, and the continent, population, and a particularity. Then print all of them using a for loop. .... 163
  • Exercise 3: Create a game program that generates a random number between 1 and 100, and you have to guess it .... 164
  • Exercise 4: Create a class named MySql to connect, select, insert/update to a MySql .... 164
  • Database Server .... 166
  • Exercise 5: Define the SQL for MySQL, for creating a table named car_queue that keeps the list of a car manufacturer to be built .... 168
  • Exercise 6: write a class named CarDO that keeps the Data for an object Car, and provides some getters and functions to retrieve the Data visually nicelly .... 170
  • Exercise 7: Using the MySQL Lib you created, and the table you created, and the CarDO write a CLI program to List, Insert, Delete registers, and Search by Id .... 172
  • Challenge: Compare two Roman numbers .... 177
  • Challenge Nonogram .... 180
  • Quiz .... 181
  • Q1: Copying an Array and modifying the array from the new variable .... 182
  • Q2: Accessing global variables from a function .... 183
  • Q3: Having in count the previous exercise, what will be the output of this code .... 185
  • Q4: Will this generate a Warning? .... 186
  • Q5: Can we have a function with more than an input parameter? .... 187
  • Q6: Can a function or method return more than a parameter? .... 188
  • Q7: What is the result of int(“1.first”) .... 189
  • Q8: Can this be done in Python? .... 191
  • Q9: What will this code print? .... 192
  • Q10: What will this code print? .... 194
  • Useful libraries .... 195
  • Bibliography .... 200

The Leanpub 60 Day 100% Happiness Guarantee

Within 60 days of purchase you can get a 100% refund on any Leanpub purchase, in two clicks.

Now, this is technically risky for us, since you'll have the book or course files either way. But we're so confident in our products and services, and in our authors and readers, that we're happy to offer a full money back guarantee for everything we sell.

You can only find out how good something is by trying it, and because of our 100% money back guarantee there's literally no risk to do so!

So, there's no reason not to click the Add to Cart button, is there?

See full terms...

80% Royalties. Earn $16 on a $20 book.

We pay 80% royalties. That's not a typo: you earn $16 on a $20 sale. If we sell 5000 non-refunded copies of your book or course for $20, you'll earn $80,000.

(Yes, some authors have already earned much more than that on Leanpub.)

In fact, authors have earnedover $13 millionwriting, publishing and selling on Leanpub.

Learn more about writing on Leanpub

Free Updates. DRM Free.

If you buy a Leanpub book, you get free updates for as long as the author updates the book! Many authors use Leanpub to publish their books in-progress, while they are writing them. All readers get free updates, regardless of when they bought the book or how much they paid (including free).

Most Leanpub books are available in PDF (for computers) and EPUB (for phones, tablets and Kindle). The formats that a book includes are shown at the top right corner of this page.

Finally, Leanpub books don't have any DRM copy-protection nonsense, so you can easily read them on any supported device.

Learn more about Leanpub's ebook formats and where to read them

Write and Publish on Leanpub

You can use Leanpub to easily write, publish and sell in-progress and completed ebooks and online courses!

Leanpub is a powerful platform for serious authors, combining a simple, elegant writing and publishing workflow with a store focused on selling in-progress ebooks.

Leanpub is a magical typewriter for authors: just write in plain text, and to publish your ebook, just click a button. (Or, if you are producing your ebook your own way, you can even upload your own PDF and/or EPUB files and then publish with one click!) It really is that easy.

Learn more about writing on Leanpub