practicepython.in
python exercises
171 exercises

Privacy

The short version: there is no account, no profile, and no server that receives your code. Nothing you type in the editor leaves your browser — there is nowhere for it to go. One thing does leave, and only when you ask it to: a message you write in the feedback panel. What follows is the long version, including the parts that are less tidy.

Last updated 21 September 2026

Your practice record is kept in this browser’s localStorage, under keys beginning pp: — for each exercise, your attempts and scores, whether you solved it and when, the code currently in the editor, how many hints you opened, and which step of the ladder you were on. Plus your theme choice, and your answer to the analytics question below.

None of it is transmitted. It is readable only by this site, on this device, in this browser. Clearing your browser data removes it, and so does the button further down this page.

Running Python in a tab means downloading Python. These are the third parties involved, and each one necessarily sees your IP address and which file you asked for — that is true of any file fetched from any server on the internet, including this one.

  • jsDelivr

    Pyodide — CPython compiled to WebAssembly — on your first run, then cached by your browser. Exercises in the array and table tracks also fetch numpy or pandas, and say so before you start.

  • Google Fonts

    The two typefaces the site is set in.

  • Google Analytics

    Page views only, never anything for advertising. In the EU, Iceland, Liechtenstein, Norway, the UK and Switzerland, where the law asks for your consent first, it runs only if you accept; decline and the script is never loaded at all. Everywhere else it is on by default, and one button below turns it off.

  • Cloudflare

    Serves this site. To know whether to ask about analytics, the page reads the two-letter country code Cloudflare already has for your connection, once per visit. Nothing else about you is looked up, and the code is forgotten when you close the tab.

  • FormSubmit

    Only when you press Send in the feedback panel, and only what that panel holds: your message, your email if you typed one, and which page you were on. FormSubmit turns it into an email and forwards it. It is never contacted otherwise, and nothing about your code, your attempts or your practice record is in it.

This site sets no cookies of its own. When analytics runs, Google Analytics sets its own cookies to recognise a returning visit. Where your consent is required, that is why you are asked first rather than told afterwards: decline, or simply ignore the bar, and no analytics cookie is ever set, because the script that would set it is never fetched. If the site cannot tell where you are, it asks.

Turning analytics off here stops it at once and deletes the cookies it set. Your answer is remembered in local storage, not in a cookie, and you can change it here whenever you like.

All of these act on this browser, immediately.

Analytics: not decided yet.

Your practice record is stored in this browser.

Moving to another browser or device? Save a copy of your record here and load it there. The file goes to your downloads folder and nowhere else.