Break The Ice With Python: 100+ Exercises in Markdown and Notebooks
The repository is about 100+ python programming exercise problem discussed, explained, and solved in different ways
At a glance
- What is it?
- A collection of 100+ beginner Python problems, split across 24 day files and matching Jupyter notebooks. Useful for daily practice, thin on versioning and dependency detail.
- Who is it for?
- Adopt Break The Ice With Python if you are new to Python and want a fixed set of short problems to work through a few at a time, or if you are teaching and need a ready-made question bank. Do not adopt it if you need a graded curriculum, automated tests, or coverage of a specific domain such as security or data work; the repository does not provide those.
- Can I use it commercially?
- Not without permission. GitHub finds no licence file in the repository, and without a licence all rights are reserved by default: you may read the code but not reuse it. Check the README, or ask the authors, before using it.
- Is it still maintained?
- Yes. The repository last received commits 69 days ago.
- What is it written in?
- Mainly Jupyter Notebook, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on October 1, 2026, and from our analysis. They are not legal advice.
Editorial analysis
What Break The Ice With Python actually is
The repository is a problem set, not a library. Its stated purpose is a journey of 100+ simple problems that are "explained, solved, discussed in different pythonic ways", and the README says the exercise text was collected from the GitHub account of zhiwehu. The maintainer's own framing is practice-oriented: a beginner can try three to five problems a day, and after a month of regular work will have gone through more than 100 problems.
The intended reader is explicit in the README: "If you are a very beginner with python then I hope this 100+ exercise will help you a lot to get your hands free with python." That is the whole audience. There is no claim of production use, no library API, and no application to run. If you are past beginner level, the value is mostly as a question bank for teaching or interview warm-up, not as a reference.
The repository is not archived, and its last push was on 2026-07-24, so it is current enough that the maintainer is still touching it. That says nothing about how fast problems are added; there are no releases, so there is no version to pin.
The Day file structure and the question-hint-solution template
Every problem follows a three-part template the README calls the Problem Template: Question, Hints, Solution. The Question states the task, the Hints give a nudge without the answer, and the Solution shows working code. That ordering matters for self-study: you can read the question, attempt it, and only drop to the hints if you are stuck.
The problems are grouped into 24 day files under Status/, each covering a contiguous range. Day 1 is questions 1-3, Day 2 is 4-9, Day 3 is 10-13, and the sequence runs to Day 24, which covers questions 100-103. The ranges are uneven on purpose, so a light day and a heavy day are not the same amount of work. Day 4 has two questions, Day 10 has seven.
A second copy of the same material lives in notebooks/, contributed by apurvmishra99 according to the README, which credits that contributor with cleaning up the formatting of all Day_.md files, fixing variable naming toward PEP8, and adding a folder of Jupyter notebooks for all 24 days. So there are two representations of each day, and they can drift apart. The README does not say which one is authoritative, and that is a real gap if you plan to work from the notebooks while reading the Markdown.
Python 2 solutions next to Python 3 solutions
The README states that the main author's solutions are in Python 2 and the maintainer's own solutions are in Python 3. This is the single most important thing to understand before you start, and it is easy to miss because both live in the same files.
If you are learning today, Python 2 syntax will look wrong in places: print as a statement, integer division behaviour, and the input/raw_input split. Reading a Python 2 solution as a beginner is actively confusing, because the code may run under Python 3 but produce a different result, or fail outright. The README does not mark each solution with its version, so you have to infer it from the syntax.
This is a maintenance cost the project has chosen not to pay down. Rewriting the inherited solutions to Python 3 would be a large diff across 24 files and would change the answers the maintainer may still want to preserve as the original author's work. Neither choice is obviously wrong, but the current state puts the burden on the reader.
Getting the exercises without installing anything
There is no package to install. The README points to two hosted environments, and both are the fastest path if you just want to read and run code.
The Binder badge opens the notebooks folder directly. Clicking it launches a Jupyter session with the notebooks/ directory as the file path, so you land on the day notebooks rather than a repository browser.
The Deepnote badge launches the repository through Deepnote's URL-based importer, pointing at the notebooks/Day_01.ipynb file. That is a single-notebook entry point rather than a folder view.
If you prefer to work locally, the repository is cloned like any other. The README does not document a local setup step, a requirements file, or a supported Python version, so the environment is whatever you already have:
git clone https://github.com/darkprinx/break-the-ice-with-python.git
cd break-the-ice-with-pythonAfter that, open Status/Day 1.md for the first three questions and notebooks/Day_01.ipynb if you want to execute the code. The README gives no requirements.txt, so if a solution imports a third-party module you will need to install it yourself; the README does not list which ones appear.
Where the exercise set falls short
The problems are drawn from an older collection, and the README says so plainly. That means the question style reflects an era of Python teaching that leaned on string manipulation, loops and basic data structures rather than modern idioms, type hints, or virtual environments. You will not learn packaging, testing, or async from this set.
There is no automated checking. Nothing in the repository runs your answer against expected output. The Hints and Solution sections are static text, so self-assessment is entirely manual. For a beginner that is fine, but it means the repository cannot tell you whether you were right.
The Status/ and notebooks/ duplication is the other weak point. The README credits a contributor with adding notebooks for all 24 days, but it does not state that the two are kept in sync. If a solution is corrected in one place, the other may keep the old version, and the README does not describe a process for preventing that.
Finally, the licence is not stated anywhere in the README or the repository files. There is no licence section in the README and no LICENSE file among the top-level repository entries. If you plan to reuse the problems in teaching material or republish them, that is a question you need to resolve with the maintainer first.
How it compares with zhiwehu's original exercise repository
The README is direct about the lineage: the exercise text was collected from zhiwehu's Python-programming-exercises repository, and the maintainer collected it in order to practice and solve the problems. So the two repositories share a question set.
The difference is what sits around the questions. zhiwehu's repository is the source of the text. This one adds the maintainer's own solutions, the day-by-day Status/ split, the Jupyter notebooks, and a discussion area the README links to for sharing opinions and reporting mistakes. If you want the original framing without the added commentary, go to the source. If you want a paced structure with worked answers and a notebook you can execute, this repository is the more useful of the two.
A second comparison point is any exercise site that grades submissions. Those give you feedback; this gives you a static solution to compare against. The trade-off is the same one that runs through the whole project: less machinery, more reading.
Maintenance, contribution and licence status
The last push was on 2026-07-24, so the repository is not abandoned, but there are no releases and therefore no versioned upgrade path. Upgrading means pulling the master branch and re-reading whichever Day files changed. For a collection of static exercises that is a low cost, and the practical risk is small: if a solution changes under you, your own notes are the only thing that breaks.
Contributions go through CONTRIBUTING.md, which the README points to for adding a solution or fixing something, and merged pull requests are listed in CONTRIBUTORS.md. That is a normal pull-request flow with no release gate, so accepted changes land on master directly.
The licence is unknown. The README does not state one, and no LICENSE file appears in the top-level entries. For personal practice that is unlikely to matter. For republishing the problems, bundling them into a course, or shipping them inside a product, you would need to confirm terms with the maintainer, and the source repository's own terms may also apply since the exercise text came from there. This is not legal advice; treat the missing licence as an open question rather than a permission.
Editorial conclusion
Adopt Break The Ice With Python if you are new to Python and want a fixed set of short problems to work through a few at a time, or if you are teaching and need a ready-made question bank. Do not adopt it if you need a graded curriculum, automated tests, or coverage of a specific domain such as security or data work; the repository does not provide those. Before starting, check the Status/ directory against the notebooks/ directory to see which days have a notebook, and read a couple of Day_*.md files to confirm the Python 2 and Python 3 split does not confuse you. The exercise text is credited to zhiwehu's repository, so compare the two if you want the original framing.
Frequently asked questions
Do I need to install anything to use Break The Ice With Python?
No. The README offers two hosted options, a Binder link that opens the notebooks folder and a Deepnote link that opens notebooks/Day_01.ipynb, and you can also clone the repository and read the Status/ Markdown files directly. The README does not document a local setup step or a requirements file.
Are the solutions in Break The Ice With Python written for Python 2 or Python 3?
Both. The README states that the main author's solutions are in Python 2 and the maintainer's own solutions are in Python 3, and the two sit together in the same files. The README does not label each solution with its version, so you have to identify it from the syntax.
How many problems does Break The Ice With Python cover, and how are they organised?
The README describes 100+ problems split across 24 day files under Status/, running from Day 1 (questions 1-3) to Day 24 (questions 100-103). Each problem follows a Question, Hints, Solution template.
What licence does Break The Ice With Python use?
The README states no licence and there is no LICENSE file among the top-level repository entries, so the terms are unclear if you want to reuse the problems.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/darkprinx-break-the-ice-with-python)