pytudes

by norvig

norvig /pytudes

Python programs, usually short, of considerable difficulty, to perfect particular skills.

14.0K Stars 1.7K Forks Last release: Not found MIT License 601 Commits 0 Releases

Available items

No Items, yet!

The developer of this repository has not created any items for sale yet. Need a bug fixed? Help with integration? A different license? Create a request here:

Peter Norvig
MIT License
2015-2020

pytudes

"An étude (a French word meaning study) is an instrumental musical composition, usually short, of considerable difficulty, and designed to provide practice material for perfecting a particular musical skill." — Wikipedia

This project contains pytudes—Python programs, usually short, for perfecting particular programming skills. Many of the problems are difficult, but I hope that the solutions are easy to follow. Some programs are in Jupyter (

.ipynb
) notebooks, some in
.py
files. For each notebook you can: - Click on c to run the file on Colab - Click on d to run the notebook on DeepNote - Click on m to run the notebook on MyBinder - Click on n (or the title) to view the notebook on NBViewer - Click on g to view the notebook on github - Hover over the title to view a description.

Index of Jupyter (IPython) Notebooks

|Run|Year|Programming Examples| |---|---|---| | c d m n g | 2018 | Advent of Code 2018 | | c d m n g | 2017 | Advent of Code 2017 | | c d m n g | 2016 | Advent of Code 2016 | | c d m n g | 2018 | Beal's Conjecture Revisited | | c d m n g | 2020 | Bike Speed Versus Grade | | c d m n g | 2018 | Can't Stop | | c d m n g | 2019 | Chaos with Triangles | | c d m n g | 2017 | Conway's Game of Life | | c d m n g | 2018 | c d m n g | 2020 | Generating and Solving Mazes | | c d m n g | 2020 | Photo Focal Lengths | | c d m n g | 2018 | Pickleball Tournament | | c d m n g | 2017 | Project Euler Utilities | | c d m n g | 2020 | Tracking Trump: Electoral Votes |

|Run|Year|Logic and Number Puzzles| |---|---|---| | c d m n g | 2014 | Cryptarithmetic | | c d m n g | 2020 | Equilength Number Expressions | | c d m n g | 2020 | Making Numbers: Four 4s, Five 5s, and Countdowns | | c d m n g | 2019 | Pairing Socks | | c d m n g | 2018 | Sicherman Dice | | c d m n g | 2014 | Sol Golomb's Rectangle Puzzle | | c d m n g | 2020 | When is Cheryl's Birthday? (new: Mad Cheryl) | | c d m n g | 2015 | When Cheryl Met Eve: A Birthday Story | | c d m n g | 2015 | xkcd 1313: Regex Golf | | c d m n g | 2015 | xkcd 1313: Regex Golf (Part 2: Infinite Problems) |

|Run|Year|Word Puzzles| |---|---|---| | c d m n g | 2020 | Boggle / Inverse Boggle | | c d m n g | 2020 | Chemical Element Spelling | | c d m n g | 2017 | Gesture Typing | | c d m n g | 2017 | Ghost: A Word game | | c d m n g | 2018 | How to Do Things with Words: NLP in Python | | c d m n g | 2020 | Jotto: A Word Guessing Game | | c d m n g | 2015 | Let's Code About Bike Locks | | c d m n g | 2017 | Scrabble: Refactoring a Crossword Game Program | | c d m n g | 2020 | Spelling Bee | | c d m n g | 2017 | Translating English into Propositional Logic | | c d m n g | 2017 | World's Longest Palindrome | | c d m n g | 2020 | World's Shortest Portmantout Word | | c d m n g | 2018 | xkcd 1970: Name Dominoes |

|Run|Year|The Riddler (from 538)| |---|---|---| | c d m n g | 2017 | Riddler: Battle Royale | | c d m n g | 2020 | Riddler: Flipping Cards; A Guessing Game | | c d m n g | 2019 | Riddler: Lottery | | c d m n g | 2019 | Riddler: How Many Soldiers to Beat the Night King? | | c d m n g | 2018 | Riddler: Properly Ordered Card Hands | | c d m n g | 2017 | Riddler: The Puzzle of the Misanthropic Neighbors | | c d m n g | 2020 | Riddler: Tour de 538 | | c d m n g | 2020 | Riddler: War. What is it Good for? | | c d m n g | 2020 | Riddler: Weighing Twelve Balls |

|Run|Year|Probability, Uncertainty, and Counting| |---|---|---| | c d m n g | 2018 | A Concrete Introduction to Probability | | c d m n g | 2016 | Probability, Paradox, and the Reasonable Person Principle | | c d m n g | 2020 | Estimating Probabilities with Simulations | | c d m n g | 2019 | The Devil and the Coin Flip Game | | c d m n g | 2020 | Dice Baseball | | c d m n g | 2018 | Economics Simulation | | c d m n g | 2020 | How to Count Things | | c d m n g | 2020 | The Unfinished Game .... of Risk | | c d m n g | 2019 | WWW: Who Will Win (NBA Title)? |

|Run|Year|Computer Science Algorithms and Concepts| |---|---|---| | c d m n g | 2017 | Bad Grade, Good Experience | | c d m n g | 2017 | BASIC Interpreter | | c d m n g | 2017 | The Convex Hull Problem | | c d m n g | 2020 | The Stable Matching Problem | | c d m n g | 2017 | Symbolic Algebra, Simplification, and Differentiation | | c d m n g | 2018 | The Traveling Salesperson Problem |

Index of Python Files

| File | Description | Documentation | |---|---|---| |beal.py|Search for counterexamples to Beal's Conjecture|documentation| |docex.py|An obsolete framework for running unit tests, similar to

doctest
|| |ibol.py|An Exercise in Species Barcoding|documentation| |lettercount.py|Convert Google Ngram Counts to Letter Counts|documentation| |lis.py|Lisp Interpreter written in Python|documentation| |lispy.py|Even Better Lisp Interpreter written in Python|documentation| |lispytest.py|Tests for Lisp Interpreters|| |pal.py|Find long palindromes|documentation| |pal2.py|Find longer palindromes|documentation| |pal3.py|Find even longer palindromes|documentation| |pytudes.py|Pre-process text to generate this README.md file.|| |py2html.py|Pretty-printer to format Python files as html|| |SET.py|Analyze the card game SET|documentation| |spell.py|Spelling corrector|documentation| |sudoku.py|Program to solve sudoku puzzles|documentation| |testaccum.py|Tests for my failed Python
accumulation display
proposal
|documentation| |yaptu.py|Yet Another Python Templating Utility||

Etudes for Programmers

I got the idea for the "etudes" part of the name from this 1978 book by Charles Wetherell that was very influential to me when I was first learning to program. I still have my copy.

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.