Python Morsels has changed a lot since its first inception back in February 2018. Here are some of the features we've added since then.
Oct. 6, 2023
Python 3.12 was released a few days ago.
Python Morsels exercises now all support 3.12 and the Python Morsels exercise submission tool and Python pastebin apps now run on Python 3.12 too! Also all exercises have had their solution walk-throughs updated to discuss any newly relevant 3.12 features.
Want to see a demo of a few 3.12 tricks? Check out new Python 3.12 features in this Python paste.
Feb. 27, 2023
Controlling screencast playback is even easier now.
Hit your spacebar key from anywhere on a screencast page to play/pause the screencast. Hit
F for fullscreen and Left/Right arrow keys to go back/forward.
Feb. 16, 2023
Did you know you can schedule a time to revisit a Python Morsels exercise to help lock-in what you've learned? This feature used to be pretty hidden, but not anymore!
As you read through the solution walk through for an exercise, you'll now see a widget nudging you to revisit this exercise again later.
Jan. 30, 2023
Python Morsels solutions often include many links to articles, screencasts, documentation, and other related resources.
Now you can find links to all related resources for each exercise in the right-hand sidebar as you read the exercise.
Dec. 27, 2022
While logged-in to Python Morsels, you'll see a help button floating in the bottom right of every page (now with a ? icon). Click it to find information on how Python Morsels works.
Dec. 6, 2022
Your Python Morsels dashboard page now includes a daily tip. Some are Python tips, some are tips for using Python Morsels, and some are tips for learning Python more generally.
Oct. 25, 2022
Every exercise now supports Python 3.11. The test runner in the web app now supports Python 3.11 as well.
Sept. 12, 2022
The dashboard page now includes a bit more context about the recommended exercise (including a description and your current score if relevant) and the next recommended screencast is much more prominent on the dashboard page.
The navigation bar also got a big re-organization including more menus (there were far too many links floating around up there).
Aug. 24, 2022
Ever wanted to share something you learned in the Python REPL with a friend? Now you can!
You can now run a Python interpreter right from your web browser and then save the output of your REPL session to share it with others.
Aug. 17, 2022
Do you use hints when solving Python Morsels exercises?
Hints have now moved further up the page (within the sidebar), they're broken down the bonus they're in, and they show an icon indicating where they'll take you.
July 18, 2022
The Python pastebin tool didn't used to support using the
input command to prompt a user for input.
Now it does!
July 5, 2022
Have you shared a runnable Python code snippet and wished that the person you shared it with could edit it to try something different? Now they can!
Pasted Python code snippets with the "Run" button enabled can now be edited. Try editing this Hello world example
May 13, 2022
Sharing an article with a colleague?
Each Python Morsels article now includes an estimated read time.
April 11, 2022
Posting a Python code snippet link in Slack? Or on LinkedIn, Twitter, or another social media site?
You'll see an image preview of your code show up!
March 30, 2022
Sharing Python code and want to share the output as well?
You can now choose to allow running your Python code snippet right from inside the web browser (just make sure your code prints something so you can see the output).
This feature is brought to you by CPython's recent WebAssembly support in Python 3.11.
March 17, 2022
Watching/reading a screencast?
There sidebar now recommends a screencast to watch next.
March 11, 2022
Have you ever wished there was an easier way to share a snippet of Python code?
Python Morsels now includes a tool for that.
Just visit pym.dev/p and paste your Python code.
Here are a few example code snippets:
Feb. 23, 2022
Each Python Morsels screencast and article now lists the Python versions it works on.
If a feature was added in a newer Python version, you'll see that noted in the sidebar. You'll also be able to see if a feature no longer works in a newer Python version.
Feb. 22, 2022
Every exercise in the exercise vault now has a short description.
You can also see topic tags for each exercise. Tags are hidden by default to avoid accidentally spoiling an exercise (sometimes half the value of an exercise is in figuring out the tools you might use to solve it).
Feb. 15, 2022
Python topics pages (both screencasts and articles without a video) now show a table of contents on the right side of the screen. You can treat this as an overview of what's coming up or use this to jump to a specific section in the article.
Feb. 11, 2022
On the exercise submission page, when a bonus isn't recommended the text for that bonus will hide by default.
Jan. 10, 2022
Do you watch my screencasts on 1.5x speed? If you do, you might notice that you've needed to change the playback speed on every video you watch. Not anymore!
Now whenever you change the playback speed on a video (while logged-in to your Python Morsels account), that speed preference will stick for other videos as well.
Jan. 6, 2022
Ever visited the screencasts page and felt lost because there's just so much on that page?
It was a lot easier to scroll through a year ago, when there were only a couple dozen screencasts!
As of today, that page now shows links to individual topic trail pages as well as a search bar for searching screencasts more quickly.
Dec. 27, 2021
Do you solve every bonus for every exercise? Most people don't. And that's okay!
If you'd like to play catch up on the new exercise resolve feature I added a few months back, you can schedule re-solves for exercises from your assignments page.
Note that scheduled re-solves are only sent to active subscribers. If you're cancelled or paused, you'll need to re-activate to receive re-solve reminders.
Dec. 23, 2021
Now you can quickly jump between the base problem and each of the bonuses on the exercise solution walk through pages.
Dec. 14, 2021
If you start working on an exercise and then pause before locking-in your solution, after a few days you'll receive an email reminding you to finish up your work and reflect on your learning.
This new email reminder is intended to help you keep moving on.
Dec. 6, 2021
The online tester now notes which version of Python it's running (3.10 currently) and the supported Python versions for each exercise are noted in the sidebar as you solve each exercise.
Nov. 18, 2021
I officially announced screencasts as a permanent part of Python Morsels about a year ago.
At the time there were only a handful of screencasts. But we're quickly approaching 100 screencasts!
Figuring out what to watch next can be a challenge. To remedy this problem, we've just added weekly screencast recommendations.
In your weekly email each Monday, you'll now receive a recommendation for which screencast to watch next (based on your skill level).
You can also find your next 3 screencast recommendations on your dashboard page.
Nov. 8, 2021
All Python Morsels screencasts are meant to be either watched or read. The video and the accompanying blog post can be consumed interchangeably (in fact I recommend both watching and reading if you learn something new).
If you disable auto-expand on screencast videos you'll see that the video now shrinks up to the top right corner of the page, making it easier to consume screencasts as plain-ole-blog-posts.
Nov. 2, 2021
The Python assignments search feature (on your Assignments page) now includes exercise descriptions.
Also you can now optionally search for screencasts and topics pages.
The new search page is currently hiding at pythonmorsels.com/search but we plan to add a link in the top navigation bar soon.
Feel free to play around with the new search feature and let us know what you think.
Oct. 14, 2021
We recently added exercise re-solving. When you reflect on an exercise, you'll be asked whether you'd like to re-solve that exercise later to get experience with something new you discovered after your first attempt.
Instead of starting from a completely blank solution, you can now re-solve starting from one of your current working (or not working) solutions.
Oct. 10, 2021
On Monday October 4, Python 3.10 was released!
I spent quite a bit of time over the last week adding more solutions and more explanations to exercises that would benefit from Python 3.10 features (structural pattern matching, slots of dataclasses, and more).
In addition to Python 3.10-specific solutions, all automated tests now pass on Python 3.10 and the code tester in the web app now runs on Python 3.10.
Check out my What's great about Python 3.10 article if you're interested in what to look out for after upgrading.
Oh and also, check out the new Python 3.10 exercise path to get practice with a few Python 3.10 features! It's free for subscribers and $17 for non-subscribers.
Oct. 8, 2021
It's now even easier to customize your preferences for Python Morsels screencasts/video articles.
Just below each video you'll see toggles to control your preferences for video captions, auto-playing videos, and even whether you prefer to hide the video (and just the article text).
Oct. 6, 2021
The Python Morsels dashboard page is now a bit simpler and a bit more useful than before.
The first box on the dashboard will either:
The second dashboard box recaps what you've accomplished. It notes how many exercises you've solved and how many screencasts you've watched.
Have ideas for what you'd like to see on the dashboard page? Email us your suggestion!
Aug. 18, 2021
Learning isn't a straight line; it's more like a spiral (an upward spiral). Reflection is a really important part of completing the learning spiral from one loop to the next.
Many of you have been using reflection on your own to multiply your learning abilities while using Python Morsels. It's time that this finally became an official part of Python Morsels itself.
To that end, at the bottom of Trey's solution walk-through, there's now a learning reflection form.
Aug. 2, 2021
Pretty much since the beginning of Python Morsels I've had this item in my to-do list:
Enough of you have requested this that it's finally been done. All exercise problem and solution statements have syntax highlighting which matches the same color scheme as the code editor on exercise submission pages.
The articles shown at the ends of screencasts have syntax highlighting in their code blocks as well.
July 28, 2021
It's hard to not complete all the bonuses for an exercise, right? Even when some bonuses are much more challenging than others.
Sometimes, one bonus can turn a novice-level exercise into an advanced-level exercise. To make sure you don't get overwhelmed, Python Morsels now includes bonus recommendations for exercises that are in multiple skill levels.
If you receive an exercise in the Novice skill level, you'll get a lower maximum bonus recommendation than if you picked the same exercise from the Intermediate skill level. These are just recommendations of course, so you still don't need to complete all the recommended bonuses (and you can go further than the recommendation, but only if you're up for putting in extra time).
Bonuses that aren't recommended will show up in gray as you solve the exercise so you'll know that they're not recommended.
July 21, 2021
You're working on a Python Morsels exercise, you got the base problem working and now you'd like to attempt the first bonus. But you want to edit your code into something new without losing your current working code. You can now duplicate your solution!
If you hover over a solution a copy icon will appear (it looks like two pieces of paper, one on top of the other). Click it to duplicate your current solutiion.
July 20, 2021
Ever clicked a hint link in an exercise problem statement or a link to a related article on a screencast page and wished the link had opened in a new tab/window (rather than navigating within the current tab)? Well, that's how exercise pages and screencast pages work now.
It might seem like a small change (and it is) but it's hopefully a handy one. No more accidentally navigating away from pages in the middle of writing code or in the middle of watching a screencast.
July 9, 2021
Not sure whether a particular exercise path is for you? You can now preview exercises with an exercise path before you start it.
You can also see which exercises you've already done from that path.
June 28, 2021
The web app now supports Python 3.9 solutions!
Python 3.9 has been out for over 6 months, but the Python Morsels web app hasn't had support Python 3.9-specific features.
We've changed the way we test code to make it easier to upgrade Python versions, so we should support Python 3.10-compatible code much sooner after its release (which should be later this year).
June 21, 2021
You can now customize your screencast watching preferences site-wide.
Want to watch all Python Morsels screencasts with captions enabled by default? There's a setting for that!
Don't like clicking the "play" button and want to auto-play screencasts instead? There's a setting for that!
Or would you prefer to hide the videos and just read the text instead? There's a setting for that too!
May 19, 2021
Python Morsels now includes topic trails!
Topic trails are groups of screencasts that I recommend watching in a particular order.
You can watch topic trails from start to end or you can jump in part way through. Regardless of how you watch/read each screencast, these topic trails will show you the context of the current screencast you're watching in relation to other screencasts on the same topic.
May 13, 2021
For all users with access to the exercise vault, you'll now see the problem statement in your exercise recommendation email each Monday.
Trial users will receive exercise previews and All Access users, you'll receive the full problem text in each week's email.
This has been the most commonly requested feature since we launched the All Access plan a few weeks ago and I'm excited that we've delivered on your requests.
April 27, 2021
Each section of the vault page is now broken into sub-sections.
The first section, "in progress", shows exercises you're currently working on. The next section, "recommended", shows the next exercises we recommend solving. After that is "coming up", which are the rest of the unsolved exercises in that section.
There's also "done" for exercises you've solved and "skipped" for exercises you've skipped.
We hope this new layout is more helpful than the giant list of exercises that showed up previously.
April 13, 2021
Users have requested this for 3 years and we finally made it happen.
There's now an All Access plan in Python Morsels. This plan grants access to the full exercise vault.
Just like Flexible Mode, this plan includes a weekly recommendation email.
The All Access plan replaces the Standard plan and it's $20/mo or $200/yr as well just like the Standard plan was. But if you sign up for the All Access plan by April 30, you'll save $50 each year. See more on the All Access plan sale here.
April 10, 2021
Previously Flexible Mode users could preview the next 3 exercises in each skill level. Now you can preview the next 5 exercises!
There's also a "See what's coming up" link which will show titles for all current exercises in each skill level.
Feb. 24, 2021
Flexible Mode is now enabled for all new accounts. So if you signed up since the day of this announcement, you're already in Flexible Mode!
If you haven't already enabled Flexible Mode, you can find out more about Flexible Mode (and enable it) here.
Feb. 12, 2021
When you finish watching a screencast while logged-in, the little "Watched" toggle will automatically flip and if you have Flexible Mode enabled, you'll get 4 points.
When you scroll all the way to the end of a topics page the "Read" toggle will also flip the same way.
Feb. 12, 2021
If you enable Flexible Mode on your account, your profile page will now show your points on your account.
Jan. 29, 2021
You might notice the exercise submission page looks a bit different. The styling and wording has improved some over the last week, but there's also a couple new features.
The "Test Failures" tab (previously called "View Test Output") now shows the number of failing test cases (including the bonuses). The smaller that number is, the more test methods are passing.
For Flexible Mode users, the points shown when submitting an exercise are also a bit simpler than before. Previously all points you'd received for that exercise would be shown each time you submitted it. Now only the new points are shown.
Jan. 5, 2021
The dashboard page now shows recommendations for which screencast to watch next.
The recommendations are for an early unwatched screencast as well as the latest couple screencasts.
Jan. 4, 2021
If you have Flexible Mode enabled, you'll now receive points for exercises when you solve exercises, watch screencasts, and keep up your learning habit.
You'll get up to 25 points for each exercise solved, 4 points for each screencast watched, and up to 24 habit points every fortnight (14 days) for keeping up your learning habit.
You can see more on how points work on on the points help page.
You'll need Flexible Mode enabled to start earning points.
Dec. 29, 2020
Currently all Python Morsels users get an automatically-assigned exercise every week. If I send you an exercise you don't like, you're stuck with it (though you can always email to ask for a different one).
Flexible Mode adds some flexibility to your weekly (or monthly) exercise routine. With Flexible Mode enabled, you'll get 1 exercise credit each week as well as a suggestion for which exercise to solve next.
If you're not interested in my suggested exercise, you can skip it and choose a different exercise instead.
You can even sample exercises from different skill levels.
This feature is currently in beta and can only be enabled from this page.
If you try this feature out, I'd love to hear your feedback on it.
Dec. 8, 2020
You can now keep track of which screencasts you've watched already. At the moment this is just a simple toggle to make it easier to spot which screencasts you haven't seen yet, but this feature will likely get a bit smarter later on.
Nov. 30, 2020
It's official: Python Morsels now includes weekly screencasts. Whether you're on the monthly exercise Lite plan or the weekly exercise Standard plan, your Python Morsels subscription will now include access to a growing number of screencasts.
Some screencasts will be free for all and some will be premium, just for subscribers. I'm committing to publishing at least one new screencast every week. Each screencast will be between 1 and 5 minutes long. You can find more info on this announcement here.
Nov. 30, 2020
Earlier this year we added a Lite plan to Python Morsels which includes one exercise per month (a more manageable habit for most than one per week).
There's now an annual version of the Lite plan. You can save 17% off the monthly Lite plan (2 months free every 12 months) by switching to annual billing.
Nov. 13, 2020
Missed checking in on Python Morsels screencasts for a couple months and want to see what's new? You can now easily browse all Python Morsels screencasts from the screencasts page!
You can find this page in the Watch link in the top navigation bar.
Oct. 26, 2020
Each problem email will note new additions to the website that were added in the last week.
These additions might be new features (like this new feature) or new screencasts.
Oct. 15, 2020
Want to gift Python Morsels to a friend? You can now!
You can now purchase redemption codes worth 12, 25, or 52 exercise credits.
You can send an exercise bundle to a friend or redeem one for yourself.
Sept. 30, 2020
There's now a button on each exercise submission page that you can use to share your progress on Twitter!
Sept. 16, 2020
You can now share your achievements with friends, colleagues, and future employers.
Aug. 3, 2020
You can now save many different solutions to the same exercise, giving each version a unique name to help yourself keep track of each different way you've solved the exercise.
Want to try out a different approach? Start a new version! You can always delete it later.
July 14, 2020
In addition to the usual skill levels, you can choose to work through short exercise paths on specific Python topics.
This is a way to get deeper practice in one particular Python topic over a number of weeks. There are both novice-level paths and intermediate/advanced-level paths on many topics, including classes, command-line interfaces, decorators, iterators, and even descriptors.
You can find the exercises paths over on the paths page.
June 16, 2020
The pause feature used to be pretty buggy. It would attempt to extend your term end date appropriately whenever you resumed your subscription and it (unfortunately) failed to do so quite frequently.
After discovering that our payment processor didn't actually support our use case for their "paused" billing state, we decided to implement a credit-based system which grants 1 credit each week you're paused.
This means your next billing date never changes based on your pause date but you will be able to retrieve the exercises you've paid for.
May 27, 2020
The exercises list is handy, but it can be hard to navigate once you have a lot of exercises... especially if you've fallen behind on your exercises.
The new dashboard page showcases the exercise you should care about right now.
May 17, 2020
The automated test failures are now grouped into base, bonus 1, bonus 2, etc.
Also the traceback for failing tests includes linked method names which will jump right to the failing test method within the test file.
May 7, 2020
There used to be just a few topics pages.
Now there's more, with even more on the way soon.
Also be on the lookout for screencasts, which will be starting to pop up on topics pages over the next few months.
April 20, 2020
The exercises didn't used to have any hints. After about 6 months of deliberate work adding hints to each exercise, they pretty much all have helpful hint links now!
March 30, 2020
There used to be two discount options: student discounts and a 50% off discount for folks outside of the top 50 countries by nominal GDP per capita.
We now have an income-based discount system instead and there's also a new discount request process which makes it a bit easier to get a discount appropriate for your needs.
March 15, 2020
Feb. 6, 2020
If you've been working on exercises on your own machine and you don't want to copy-paste all your solutions into the web app, you can now bulk import your solutions into the Python Morsels web app.
Feb. 4, 2020
Looking for that one exercise that mentioned
You can use the new search feature for that!
Jan. 3, 2020
Dec. 27, 2019
Dec. 15, 2019
Oct. 15, 2019
Oct. 12, 2019
March 15, 2019
March 1, 2019
Dec. 20, 2018
Nov. 20, 2018
Sept. 1, 2018
Python Morsels existed for over 6 months without a web interface!
Feb. 2, 2018