Do you belong to the top 50% of Python coders? This article poses you 10 intermediate-level Python puzzles to test yourself. By solving all 10 Python puzzles and tracking your success rate, you will discover your exact Python skill level.
The Method We Used to Measure Your Skills with Python Puzzles
The idea of solving rated Python puzzles to measure your skill level is inspired by the Elo rating system in chess. Two chess players play against each other fighting for Elo rating points. If you have collected enough points, you can become a chess grandmaster. We applied this idea to Python coding: you play against the Python puzzle. If you solve it (=you win), you get points – but if you don’t, you lose points.
The Python puzzles and the test originate from our experience of teaching 23,464 online students at Finxter.com. (It’s free.)
You have read this far – you have skin in the game. Hereby, I officially challenge you to take the test and prove to yourself that you, indeed, belong to the top-50% of Python coders.
But first things first…
What is a Python Puzzle?
A Python puzzle is an educative snippet of Python source code that teaches a single computer science concept by activating the learner’s curiosity and involving them in the learning process.
Source: Coffee Break Python
Here’s a simple example of a beginner-level Python puzzle:
You can click on the puzzle to solve it on our interactive Finxter puzzle app.
How to Measure Your Python Skills with These 10 Python Puzzles?
Think about an experienced Python programmer you know, e.g., your nerdy colleague or classmate.
- How good are their Python skills compared to yours?
- On a scale from your grandmother to Bill Gates (yes, besides having a lot of money, he definitely is a master coder), where is your colleague and where are you?
These questions are difficult to answer because there is no simple way to measure the skill level of a programmer.
This creates a severe problem for your learning progress: the concept of being a good programmer becomes fuzzy and diluted. What you can’t measure, you can’t improve. Not being able to measure your coding skills diverts your focus from systematic improvement. Your goal becomes less definite.
Fortunately, you have found this article. In the following, you will solve 10 Python puzzles. Each Python puzzles ends with a
The idea is that you play Python interpreter in your head: guess the output of the
- If you guessed right, you get +1 point.
- If you guessed wrong, you get +0 points.
- If you made a minor syntactical mistake (you forgot whitespace, etc.), you get +0.5 points.
This method comes from the chess rating system. I have migrated it to coding for my free Python learning app Finxter.com.
Rule: The more points you earn by solving Python puzzles, the better your Python skills. In particular, here is the table for all outcomes (whole numbers only):
A final note: Read the code of each Python puzzle carefully, take your time (after all, your self-image is at stake).
So without any further introduction, let’s dive in the 10 Python puzzles.
10 Python Puzzles
Let’s get started with ten interactive Python puzzles. Solve each of them in your head before running it in the browser. Compare the output against what you’ve guessed it to be.
- +1 Point for each correct guess.
- +0.5 Point for a minor syntax error.
- +0 Points for each wrong guess.
Ready? Set. Go!
Python Puzzle 1: String Basics
Python Puzzle 2: Function Magic
Python Puzzle 3: Social Network Analysis
Python Puzzle 4: Reddit Logic
Python Puzzle 5: Climate Change
Python Puzzle 6: The Healthiest Food in the World
Python Puzzle 7: More Healthy Foods for Coders
Python Puzzle 8: What’s Faster?
Python Puzzle 9: Factorial
Python Puzzle 10: Ducks
Do you have summed up all your points from the previous 10 questions? Great—in a moment I’ll tell you your skill level. But before we finish, let’s make it a bit more fun. I offer you a small gamble:
You can take your points and just go the end of the article and determine your skill level. Or you can go for the Bonus Puzzle 11. If you are lucky and you find the correct solution, you can win +1 point. If you aren’t, you will “win” -1 point. It’s that simple.
Ok, will you take the opportunity? Here it is…
Congratulations, you have solved all 10 (+1) Python puzzles! By doing so, you have already improved your Python coding skills. If you like this way of solving code puzzles to test and train your skills, visit my Python puzzle app Finxter.com.
So How Good Are Your Python Skills?
Sum up your total score and check your current skill level in the following table:
You can ignore the Elo column if you don’t know about the Elo rating system in chess. The rating of this table is entirely based on the Elo rating system which is a scientifically sound way of determining your skill level.
Are You Satisfied With Your Current Skill Level?
If not, there is no need to feel frustrated. It’s easy to level up your skills with a bit of training.
In fact, doing this will boost your value to the marketplace: Professional-level coders earn 2-5x more than beginner-level coders. Register for my Python email course to improve your Python skills on autopilot — in your daily coffee break. It’s free.
Do you want to be your own boss? Do you want to decide yourself when to work and when to spend time with your family? Becoming a Python freelancer may just be the idea you have been looking for. If you are serious about this, I have created a course just for you! I will take you by the hand, create an individualized training plan for you, and give you a clear path towards your goal.
While working as a researcher in distributed systems, Dr. Christian Mayer found his love for teaching computer science students.
To help students reach higher levels of Python success, he founded the programming education website Finxter.com. He’s author of the popular programming book Python One-Liners (NoStarch 2020), coauthor of the Coffee Break Python series of self-published books, computer science enthusiast, freelancer, and owner of one of the top 10 largest Python blogs worldwide.
His passions are writing, reading, and coding. But his greatest passion is to serve aspiring coders through Finxter and help them to boost their skills. You can join his free email academy here.