2020-04-14 19:57:30 +02:00
2017-03-01 06:48:14 +01:00
# pytudes
2017-11-21 19:51:14 +01:00
"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 ](https://en.wikipedia.org/wiki/%C3%89tude )
2017-03-25 02:57:19 +01:00
2019-09-24 22:39:59 +02:00
This project contains **pytudes** — Python programs, usually short, for perfecting programming skills.
2017-10-23 19:48:04 +02:00
2020-04-14 19:57:30 +02:00
Some programs are in Jupyter (`.ipynb`) notebooks, some in `.py` files. For each notebook you can click on:
- [CO ](https://colab.research.google.com ) to **run** the file on Colab
- [DN ](https://deepnote.com ) to **run** the notebook on DeepNote
- [MY ](https://mybinder.org ) to **run** the notebook on MyBinder
- [NB ](https://nbviewer.jupyter.org/ ) to **view** the notebook on NBViewer
- **The title** to **view** the notebook on github, and **download** or **fork** it.
2018-11-14 17:43:09 +01:00
2017-12-02 19:53:35 +01:00
# Index of Jupyter (IPython) Notebooks
2017-03-25 02:57:19 +01:00
2020-04-14 19:57:30 +02:00
|Run|Programming Examples|
|---|--|
| [CO ](https://colab.research.google.com/github/googlecolab/colabtools//blob/master/ipynb/Advent-2018.ipynb ) [DN ](https://beta.deepnote.org/launch?template=python_3.6&url=https%3A%2F%2Fgithub.com%2Fnorvig%2Fpytudes%2F%2Fblob%2Fmaster%2Fipynb%2FAdvent-2018.ipynb ) [MY ](https://mybinder.org/v2/gh/norvig/pytudes/master ) [NB ](https://nbviewer.jupyter.org/github/norvig/pytudes//blob/master/ipynb/Advent-2018.ipynb ) | [Advent of Code 2018 ](/blob/master/ipynb/Advent-2018.ipynb ) |
| [CO ](https://colab.research.google.com/github/googlecolab/colabtools//blob/master/ipynb/Advent%202017.ipynb ) [DN ](https://beta.deepnote.org/launch?template=python_3.6&url=https%3A%2F%2Fgithub.com%2Fnorvig%2Fpytudes%2F%2Fblob%2Fmaster%2Fipynb%2FAdvent%202017.ipynb ) [MY ](https://mybinder.org/v2/gh/norvig/pytudes/master ) [NB ](https://nbviewer.jupyter.org/github/norvig/pytudes//blob/master/ipynb/Advent%202017.ipynb ) | [Advent of Code 2017 ](/blob/master/ipynb/Advent%202017.ipynb ) |
| [CO ](https://colab.research.google.com/github/googlecolab/colabtools//blob/master/ipynb/Advent%20of%20Code.ipynb ) [DN ](https://beta.deepnote.org/launch?template=python_3.6&url=https%3A%2F%2Fgithub.com%2Fnorvig%2Fpytudes%2F%2Fblob%2Fmaster%2Fipynb%2FAdvent%20of%20Code.ipynb ) [MY ](https://mybinder.org/v2/gh/norvig/pytudes/master ) [NB ](https://nbviewer.jupyter.org/github/norvig/pytudes//blob/master/ipynb/Advent%20of%20Code.ipynb ) | [Advent of Code 2016 ](/blob/master/ipynb/Advent%20of%20Code.ipynb ) |
| [CO ](https://colab.research.google.com/github/googlecolab/colabtools//blob/master/ipynb/Project%20Euler%20Utils.ipynb ) [DN ](https://beta.deepnote.org/launch?template=python_3.6&url=https%3A%2F%2Fgithub.com%2Fnorvig%2Fpytudes%2F%2Fblob%2Fmaster%2Fipynb%2FProject%20Euler%20Utils.ipynb ) [MY ](https://mybinder.org/v2/gh/norvig/pytudes/master ) [NB ](https://nbviewer.jupyter.org/github/norvig/pytudes//blob/master/ipynb/Project%20Euler%20Utils.ipynb ) | [Project Euler Utilities ](/blob/master/ipynb/Project%20Euler%20Utils.ipynb ) |
| [CO ](https://colab.research.google.com/github/googlecolab/colabtools//blob/master/ipynb/PropositionalLogic.ipynb ) [DN ](https://beta.deepnote.org/launch?template=python_3.6&url=https%3A%2F%2Fgithub.com%2Fnorvig%2Fpytudes%2F%2Fblob%2Fmaster%2Fipynb%2FPropositionalLogic.ipynb ) [MY ](https://mybinder.org/v2/gh/norvig/pytudes/master ) [NB ](https://nbviewer.jupyter.org/github/norvig/pytudes//blob/master/ipynb/PropositionalLogic.ipynb ) | [Translating English Sentences into Propositional Logic Statements ](/blob/master/ipynb/PropositionalLogic.ipynb ) |
| [CO ](https://colab.research.google.com/github/googlecolab/colabtools//blob/master/ipynb/Beal.ipynb ) [DN ](https://beta.deepnote.org/launch?template=python_3.6&url=https%3A%2F%2Fgithub.com%2Fnorvig%2Fpytudes%2F%2Fblob%2Fmaster%2Fipynb%2FBeal.ipynb ) [MY ](https://mybinder.org/v2/gh/norvig/pytudes/master ) [NB ](https://nbviewer.jupyter.org/github/norvig/pytudes//blob/master/ipynb/Beal.ipynb ) | [Beal's Conjecture Revisited ](/blob/master/ipynb/Beal.ipynb ) |
| [CO ](https://colab.research.google.com/github/googlecolab/colabtools//blob/master/ipynb/WWW.ipynb ) [DN ](https://beta.deepnote.org/launch?template=python_3.6&url=https%3A%2F%2Fgithub.com%2Fnorvig%2Fpytudes%2F%2Fblob%2Fmaster%2Fipynb%2FWWW.ipynb ) [MY ](https://mybinder.org/v2/gh/norvig/pytudes/master ) [NB ](https://nbviewer.jupyter.org/github/norvig/pytudes//blob/master/ipynb/WWW.ipynb ) | [WWW: Who Will Win (NBA Title)? ](/blob/master/ipynb/WWW.ipynb ) |
| [CO ](https://colab.research.google.com/github/googlecolab/colabtools//blob/master/ipynb/Pickleball.ipynb ) [DN ](https://beta.deepnote.org/launch?template=python_3.6&url=https%3A%2F%2Fgithub.com%2Fnorvig%2Fpytudes%2F%2Fblob%2Fmaster%2Fipynb%2FPickleball.ipynb ) [MY ](https://mybinder.org/v2/gh/norvig/pytudes/master ) [NB ](https://nbviewer.jupyter.org/github/norvig/pytudes//blob/master/ipynb/Pickleball.ipynb ) | [Pickleball Tournament ](/blob/master/ipynb/Pickleball.ipynb ) |
| [CO ](https://colab.research.google.com/github/googlecolab/colabtools//blob/master/ipynb/Dice%20Baseball.ipynb ) [DN ](https://beta.deepnote.org/launch?template=python_3.6&url=https%3A%2F%2Fgithub.com%2Fnorvig%2Fpytudes%2F%2Fblob%2Fmaster%2Fipynb%2FDice%20Baseball.ipynb ) [MY ](https://mybinder.org/v2/gh/norvig/pytudes/master ) [NB ](https://nbviewer.jupyter.org/github/norvig/pytudes//blob/master/ipynb/Dice%20Baseball.ipynb ) | [Dice Baseball ](/blob/master/ipynb/Dice%20Baseball.ipynb ) |
| [CO ](https://colab.research.google.com/github/googlecolab/colabtools//blob/master/ipynb/Life.ipynb ) [DN ](https://beta.deepnote.org/launch?template=python_3.6&url=https%3A%2F%2Fgithub.com%2Fnorvig%2Fpytudes%2F%2Fblob%2Fmaster%2Fipynb%2FLife.ipynb ) [MY ](https://mybinder.org/v2/gh/norvig/pytudes/master ) [NB ](https://nbviewer.jupyter.org/github/norvig/pytudes//blob/master/ipynb/Life.ipynb ) | [Conway's Game of Life ](/blob/master/ipynb/Life.ipynb ) |
| [CO ](https://colab.research.google.com/github/googlecolab/colabtools//blob/master/ipynb/Sierpinski.ipynb ) [DN ](https://beta.deepnote.org/launch?template=python_3.6&url=https%3A%2F%2Fgithub.com%2Fnorvig%2Fpytudes%2F%2Fblob%2Fmaster%2Fipynb%2FSierpinski.ipynb ) [MY ](https://mybinder.org/v2/gh/norvig/pytudes/master ) [NB ](https://nbviewer.jupyter.org/github/norvig/pytudes//blob/master/ipynb/Sierpinski.ipynb ) | [A Chaos Game with Triangles ](/blob/master/ipynb/Sierpinski.ipynb ) |
| [CO ](https://colab.research.google.com/github/googlecolab/colabtools//blob/master/ipynb/Maze.ipynb ) [DN ](https://beta.deepnote.org/launch?template=python_3.6&url=https%3A%2F%2Fgithub.com%2Fnorvig%2Fpytudes%2F%2Fblob%2Fmaster%2Fipynb%2FMaze.ipynb ) [MY ](https://mybinder.org/v2/gh/norvig/pytudes/master ) [NB ](https://nbviewer.jupyter.org/github/norvig/pytudes//blob/master/ipynb/Maze.ipynb ) | [Generating Mazes ](/blob/master/ipynb/Maze.ipynb ) |
| [CO ](https://colab.research.google.com/github/googlecolab/colabtools//blob/master/ipynb/TwelveBalls.ipynb ) [DN ](https://beta.deepnote.org/launch?template=python_3.6&url=https%3A%2F%2Fgithub.com%2Fnorvig%2Fpytudes%2F%2Fblob%2Fmaster%2Fipynb%2FTwelveBalls.ipynb ) [MY ](https://mybinder.org/v2/gh/norvig/pytudes/master ) [NB ](https://nbviewer.jupyter.org/github/norvig/pytudes//blob/master/ipynb/TwelveBalls.ipynb ) | [Weighing Twelve Balls ](/blob/master/ipynb/TwelveBalls.ipynb ) |
| [CO ](https://colab.research.google.com/github/googlecolab/colabtools//blob/master/ipynb/Cant-Stop.ipynb ) [DN ](https://beta.deepnote.org/launch?template=python_3.6&url=https%3A%2F%2Fgithub.com%2Fnorvig%2Fpytudes%2F%2Fblob%2Fmaster%2Fipynb%2FCant-Stop.ipynb ) [MY ](https://mybinder.org/v2/gh/norvig/pytudes/master ) [NB ](https://nbviewer.jupyter.org/github/norvig/pytudes//blob/master/ipynb/Cant-Stop.ipynb ) | [Can't Stop ](/blob/master/ipynb/Cant-Stop.ipynb ) |
| [CO ](https://colab.research.google.com/github/googlecolab/colabtools//blob/master/ipynb/Bike%20Speed%20versus%20Grade.ipynb ) [DN ](https://beta.deepnote.org/launch?template=python_3.6&url=https%3A%2F%2Fgithub.com%2Fnorvig%2Fpytudes%2F%2Fblob%2Fmaster%2Fipynb%2FBike%20Speed%20versus%20Grade.ipynb ) [MY ](https://mybinder.org/v2/gh/norvig/pytudes/master ) [NB ](https://nbviewer.jupyter.org/github/norvig/pytudes//blob/master/ipynb/Bike%20Speed%20versus%20Grade.ipynb ) | [Bike Speed Versus Grade ](/blob/master/ipynb/Bike%20Speed%20versus%20Grade.ipynb ) |
| [CO ](https://colab.research.google.com/github/googlecolab/colabtools//blob/master/ipynb/Orderable%20Cards.ipynb ) [DN ](https://beta.deepnote.org/launch?template=python_3.6&url=https%3A%2F%2Fgithub.com%2Fnorvig%2Fpytudes%2F%2Fblob%2Fmaster%2Fipynb%2FOrderable%20Cards.ipynb ) [MY ](https://mybinder.org/v2/gh/norvig/pytudes/master ) [NB ](https://nbviewer.jupyter.org/github/norvig/pytudes//blob/master/ipynb/Orderable%20Cards.ipynb ) | [Properly Ordered Card Hands ](/blob/master/ipynb/Orderable%20Cards.ipynb ) |
| [CO ](https://colab.research.google.com/github/googlecolab/colabtools//blob/master/ipynb/Electoral%20Votes.ipynb ) [DN ](https://beta.deepnote.org/launch?template=python_3.6&url=https%3A%2F%2Fgithub.com%2Fnorvig%2Fpytudes%2F%2Fblob%2Fmaster%2Fipynb%2FElectoral%20Votes.ipynb ) [MY ](https://mybinder.org/v2/gh/norvig/pytudes/master ) [NB ](https://nbviewer.jupyter.org/github/norvig/pytudes//blob/master/ipynb/Electoral%20Votes.ipynb ) | [Tracking Trump: Electoral Votes ](/blob/master/ipynb/Electoral%20Votes.ipynb ) |
2018-07-08 06:25:38 +02:00
|Logic and Number Puzzles|
|---|
2020-04-14 19:57:30 +02:00
| [CO ](https://colab.research.google.com/github/googlecolab/colabtools//blob/master/ipynb/Cheryl.ipynb ) [DN ](https://beta.deepnote.org/launch?template=python_3.6&url=https%3A%2F%2Fgithub.com%2Fnorvig%2Fpytudes%2F%2Fblob%2Fmaster%2Fipynb%2FCheryl.ipynb ) [MY ](https://mybinder.org/v2/gh/norvig/pytudes/master ) [NB ](https://nbviewer.jupyter.org/github/norvig/pytudes//blob/master/ipynb/Cheryl.ipynb ) | [When is Cheryl's Birthday? ](/blob/master/ipynb/Cheryl.ipynb ) |
| [CO ](https://colab.research.google.com/github/googlecolab/colabtools//blob/master/ipynb/Cheryl-and-Eve.ipynb ) [DN ](https://beta.deepnote.org/launch?template=python_3.6&url=https%3A%2F%2Fgithub.com%2Fnorvig%2Fpytudes%2F%2Fblob%2Fmaster%2Fipynb%2FCheryl-and-Eve.ipynb ) [MY ](https://mybinder.org/v2/gh/norvig/pytudes/master ) [NB ](https://nbviewer.jupyter.org/github/norvig/pytudes//blob/master/ipynb/Cheryl-and-Eve.ipynb ) | [When Cheryl Met Eve: A Birthday Story ](/blob/master/ipynb/Cheryl-and-Eve.ipynb ) |
| [CO ](https://colab.research.google.com/github/googlecolab/colabtools//blob/master/ipynb/RiddlerLottery.ipynb ) [DN ](https://beta.deepnote.org/launch?template=python_3.6&url=https%3A%2F%2Fgithub.com%2Fnorvig%2Fpytudes%2F%2Fblob%2Fmaster%2Fipynb%2FRiddlerLottery.ipynb ) [MY ](https://mybinder.org/v2/gh/norvig/pytudes/master ) [NB ](https://nbviewer.jupyter.org/github/norvig/pytudes//blob/master/ipynb/RiddlerLottery.ipynb ) | [Riddler Lottery ](/blob/master/ipynb/RiddlerLottery.ipynb ) |
| [CO ](https://colab.research.google.com/github/googlecolab/colabtools//blob/master/ipynb/NightKing.ipynb ) [DN ](https://beta.deepnote.org/launch?template=python_3.6&url=https%3A%2F%2Fgithub.com%2Fnorvig%2Fpytudes%2F%2Fblob%2Fmaster%2Fipynb%2FNightKing.ipynb ) [MY ](https://mybinder.org/v2/gh/norvig/pytudes/master ) [NB ](https://nbviewer.jupyter.org/github/norvig/pytudes//blob/master/ipynb/NightKing.ipynb ) | [How Many Soldiers Do You Need to Beat the Night King? ](/blob/master/ipynb/NightKing.ipynb ) |
| [CO ](https://colab.research.google.com/github/googlecolab/colabtools//blob/master/ipynb/Coin%20Flip.ipynb ) [DN ](https://beta.deepnote.org/launch?template=python_3.6&url=https%3A%2F%2Fgithub.com%2Fnorvig%2Fpytudes%2F%2Fblob%2Fmaster%2Fipynb%2FCoin%20Flip.ipynb ) [MY ](https://mybinder.org/v2/gh/norvig/pytudes/master ) [NB ](https://nbviewer.jupyter.org/github/norvig/pytudes//blob/master/ipynb/Coin%20Flip.ipynb ) | [The Devil and the Coin Flip Game ](/blob/master/ipynb/Coin%20Flip.ipynb ) |
| [CO ](https://colab.research.google.com/github/googlecolab/colabtools//blob/master/ipynb/Mean%20Misanthrope%20Density.ipynb ) [DN ](https://beta.deepnote.org/launch?template=python_3.6&url=https%3A%2F%2Fgithub.com%2Fnorvig%2Fpytudes%2F%2Fblob%2Fmaster%2Fipynb%2FMean%20Misanthrope%20Density.ipynb ) [MY ](https://mybinder.org/v2/gh/norvig/pytudes/master ) [NB ](https://nbviewer.jupyter.org/github/norvig/pytudes//blob/master/ipynb/Mean%20Misanthrope%20Density.ipynb ) | [The Puzzle of the Misanthropic Neighbors ](/blob/master/ipynb/Mean%20Misanthrope%20Density.ipynb ) |
| [CO ](https://colab.research.google.com/github/googlecolab/colabtools//blob/master/ipynb/Countdown.ipynb ) [DN ](https://beta.deepnote.org/launch?template=python_3.6&url=https%3A%2F%2Fgithub.com%2Fnorvig%2Fpytudes%2F%2Fblob%2Fmaster%2Fipynb%2FCountdown.ipynb ) [MY ](https://mybinder.org/v2/gh/norvig/pytudes/master ) [NB ](https://nbviewer.jupyter.org/github/norvig/pytudes//blob/master/ipynb/Countdown.ipynb ) | [Four 4s, Five 5s, and Countdown to 2016 ](/blob/master/ipynb/Countdown.ipynb ) |
| [CO ](https://colab.research.google.com/github/googlecolab/colabtools//blob/master/ipynb/Sicherman%20Dice.ipynb ) [DN ](https://beta.deepnote.org/launch?template=python_3.6&url=https%3A%2F%2Fgithub.com%2Fnorvig%2Fpytudes%2F%2Fblob%2Fmaster%2Fipynb%2FSicherman%20Dice.ipynb ) [MY ](https://mybinder.org/v2/gh/norvig/pytudes/master ) [NB ](https://nbviewer.jupyter.org/github/norvig/pytudes//blob/master/ipynb/Sicherman%20Dice.ipynb ) | [Sicherman Dice ](/blob/master/ipynb/Sicherman%20Dice.ipynb ) |
| [CO ](https://colab.research.google.com/github/googlecolab/colabtools//blob/master/ipynb/Golomb-Puzzle.ipynb ) [DN ](https://beta.deepnote.org/launch?template=python_3.6&url=https%3A%2F%2Fgithub.com%2Fnorvig%2Fpytudes%2F%2Fblob%2Fmaster%2Fipynb%2FGolomb-Puzzle.ipynb ) [MY ](https://mybinder.org/v2/gh/norvig/pytudes/master ) [NB ](https://nbviewer.jupyter.org/github/norvig/pytudes//blob/master/ipynb/Golomb-Puzzle.ipynb ) | [Sol Golomb's Rectangle Puzzle ](/blob/master/ipynb/Golomb-Puzzle.ipynb ) |
| [CO ](https://colab.research.google.com/github/googlecolab/colabtools//blob/master/ipynb/Cryptarithmetic.ipynb ) [DN ](https://beta.deepnote.org/launch?template=python_3.6&url=https%3A%2F%2Fgithub.com%2Fnorvig%2Fpytudes%2F%2Fblob%2Fmaster%2Fipynb%2FCryptarithmetic.ipynb ) [MY ](https://mybinder.org/v2/gh/norvig/pytudes/master ) [NB ](https://nbviewer.jupyter.org/github/norvig/pytudes//blob/master/ipynb/Cryptarithmetic.ipynb ) | [Cryptarithmetic ](/blob/master/ipynb/Cryptarithmetic.ipynb ) |
| [CO ](https://colab.research.google.com/github/googlecolab/colabtools//blob/master/ipynb/Riddler%20Battle%20Royale.ipynb ) [DN ](https://beta.deepnote.org/launch?template=python_3.6&url=https%3A%2F%2Fgithub.com%2Fnorvig%2Fpytudes%2F%2Fblob%2Fmaster%2Fipynb%2FRiddler%20Battle%20Royale.ipynb ) [MY ](https://mybinder.org/v2/gh/norvig/pytudes/master ) [NB ](https://nbviewer.jupyter.org/github/norvig/pytudes//blob/master/ipynb/Riddler%20Battle%20Royale.ipynb ) | [The Riddler: Battle Royale ](/blob/master/ipynb/Riddler%20Battle%20Royale.ipynb ) |
|Run|Word Games|
|---|--|
| [CO ](https://colab.research.google.com/github/googlecolab/colabtools//blob/master/ipynb/SpellingBee.ipynb ) [DN ](https://beta.deepnote.org/launch?template=python_3.6&url=https%3A%2F%2Fgithub.com%2Fnorvig%2Fpytudes%2F%2Fblob%2Fmaster%2Fipynb%2FSpellingBee.ipynb ) [MY ](https://mybinder.org/v2/gh/norvig/pytudes/master ) [NB ](https://nbviewer.jupyter.org/github/norvig/pytudes//blob/master/ipynb/SpellingBee.ipynb ) | [Spelling Bee ](/blob/master/ipynb/SpellingBee.ipynb ) |
| [CO ](https://colab.research.google.com/github/googlecolab/colabtools//blob/master/ipynb/ElementSpelling.ipynb ) [DN ](https://beta.deepnote.org/launch?template=python_3.6&url=https%3A%2F%2Fgithub.com%2Fnorvig%2Fpytudes%2F%2Fblob%2Fmaster%2Fipynb%2FElementSpelling.ipynb ) [MY ](https://mybinder.org/v2/gh/norvig/pytudes/master ) [NB ](https://nbviewer.jupyter.org/github/norvig/pytudes//blob/master/ipynb/ElementSpelling.ipynb ) | [Chemical Element Spelling ](/blob/master/ipynb/ElementSpelling.ipynb ) |
| [CO ](https://colab.research.google.com/github/googlecolab/colabtools//blob/master/ipynb/Boggle.ipynb ) [DN ](https://beta.deepnote.org/launch?template=python_3.6&url=https%3A%2F%2Fgithub.com%2Fnorvig%2Fpytudes%2F%2Fblob%2Fmaster%2Fipynb%2FBoggle.ipynb ) [MY ](https://mybinder.org/v2/gh/norvig/pytudes/master ) [NB ](https://nbviewer.jupyter.org/github/norvig/pytudes//blob/master/ipynb/Boggle.ipynb ) | [Boggle / Inverse Boggle ](/blob/master/ipynb/Boggle.ipynb ) |
| [CO ](https://colab.research.google.com/github/googlecolab/colabtools//blob/master/ipynb/Portmantout.ipynb ) [DN ](https://beta.deepnote.org/launch?template=python_3.6&url=https%3A%2F%2Fgithub.com%2Fnorvig%2Fpytudes%2F%2Fblob%2Fmaster%2Fipynb%2FPortmantout.ipynb ) [MY ](https://mybinder.org/v2/gh/norvig/pytudes/master ) [NB ](https://nbviewer.jupyter.org/github/norvig/pytudes//blob/master/ipynb/Portmantout.ipynb ) | [Portmantout Words ](/blob/master/ipynb/Portmantout.ipynb ) |
| [CO ](https://colab.research.google.com/github/googlecolab/colabtools//blob/master/ipynb/xkcd-Name-Dominoes.ipynb ) [DN ](https://beta.deepnote.org/launch?template=python_3.6&url=https%3A%2F%2Fgithub.com%2Fnorvig%2Fpytudes%2F%2Fblob%2Fmaster%2Fipynb%2Fxkcd-Name-Dominoes.ipynb ) [MY ](https://mybinder.org/v2/gh/norvig/pytudes/master ) [NB ](https://nbviewer.jupyter.org/github/norvig/pytudes//blob/master/ipynb/xkcd-Name-Dominoes.ipynb ) | [xkcd 1970: Name Dominoes ](/blob/master/ipynb/xkcd-Name-Dominoes.ipynb ) |
| [CO ](https://colab.research.google.com/github/googlecolab/colabtools//blob/master/ipynb/Ghost.ipynb ) [DN ](https://beta.deepnote.org/launch?template=python_3.6&url=https%3A%2F%2Fgithub.com%2Fnorvig%2Fpytudes%2F%2Fblob%2Fmaster%2Fipynb%2FGhost.ipynb ) [MY ](https://mybinder.org/v2/gh/norvig/pytudes/master ) [NB ](https://nbviewer.jupyter.org/github/norvig/pytudes//blob/master/ipynb/Ghost.ipynb ) | [Ghost ](/blob/master/ipynb/Ghost.ipynb ) |
| [CO ](https://colab.research.google.com/github/googlecolab/colabtools//blob/master/ipynb/pal3.ipynb ) [DN ](https://beta.deepnote.org/launch?template=python_3.6&url=https%3A%2F%2Fgithub.com%2Fnorvig%2Fpytudes%2F%2Fblob%2Fmaster%2Fipynb%2Fpal3.ipynb ) [MY ](https://mybinder.org/v2/gh/norvig/pytudes/master ) [NB ](https://nbviewer.jupyter.org/github/norvig/pytudes//blob/master/ipynb/pal3.ipynb ) | [World's Longest Palindrome ](/blob/master/ipynb/pal3.ipynb ) |
| [CO ](https://colab.research.google.com/github/googlecolab/colabtools//blob/master/ipynb/Scrabble.ipynb ) [DN ](https://beta.deepnote.org/launch?template=python_3.6&url=https%3A%2F%2Fgithub.com%2Fnorvig%2Fpytudes%2F%2Fblob%2Fmaster%2Fipynb%2FScrabble.ipynb ) [MY ](https://mybinder.org/v2/gh/norvig/pytudes/master ) [NB ](https://nbviewer.jupyter.org/github/norvig/pytudes//blob/master/ipynb/Scrabble.ipynb ) | [Refactoring a Crossword Game Program ](/blob/master/ipynb/Scrabble.ipynb ) |
| [CO ](https://colab.research.google.com/github/googlecolab/colabtools//blob/master/ipynb/xkcd1313.ipynb ) [DN ](https://beta.deepnote.org/launch?template=python_3.6&url=https%3A%2F%2Fgithub.com%2Fnorvig%2Fpytudes%2F%2Fblob%2Fmaster%2Fipynb%2Fxkcd1313.ipynb ) [MY ](https://mybinder.org/v2/gh/norvig/pytudes/master ) [NB ](https://nbviewer.jupyter.org/github/norvig/pytudes//blob/master/ipynb/xkcd1313.ipynb ) | [xkcd 1313: Regex Golf ](/blob/master/ipynb/xkcd1313.ipynb ) |
| [CO ](https://colab.research.google.com/github/googlecolab/colabtools//blob/master/ipynb/xkcd1313-part2.ipynb ) [DN ](https://beta.deepnote.org/launch?template=python_3.6&url=https%3A%2F%2Fgithub.com%2Fnorvig%2Fpytudes%2F%2Fblob%2Fmaster%2Fipynb%2Fxkcd1313-part2.ipynb ) [MY ](https://mybinder.org/v2/gh/norvig/pytudes/master ) [NB ](https://nbviewer.jupyter.org/github/norvig/pytudes//blob/master/ipynb/xkcd1313-part2.ipynb ) | [xkcd 1313: Regex Golf (Part 2: Infinite Problems) ](/blob/master/ipynb/xkcd1313-part2.ipynb ) |
| [CO ](https://colab.research.google.com/github/googlecolab/colabtools//blob/master/ipynb/Fred%20Buns.ipynb ) [DN ](https://beta.deepnote.org/launch?template=python_3.6&url=https%3A%2F%2Fgithub.com%2Fnorvig%2Fpytudes%2F%2Fblob%2Fmaster%2Fipynb%2FFred%20Buns.ipynb ) [MY ](https://mybinder.org/v2/gh/norvig/pytudes/master ) [NB ](https://nbviewer.jupyter.org/github/norvig/pytudes//blob/master/ipynb/Fred%20Buns.ipynb ) | [Let's Code About Bike Locks ](/blob/master/ipynb/Fred%20Buns.ipynb ) |
| [CO ](https://colab.research.google.com/github/googlecolab/colabtools//blob/master/ipynb/Gesture%20Typing.ipynb ) [DN ](https://beta.deepnote.org/launch?template=python_3.6&url=https%3A%2F%2Fgithub.com%2Fnorvig%2Fpytudes%2F%2Fblob%2Fmaster%2Fipynb%2FGesture%20Typing.ipynb ) [MY ](https://mybinder.org/v2/gh/norvig/pytudes/master ) [NB ](https://nbviewer.jupyter.org/github/norvig/pytudes//blob/master/ipynb/Gesture%20Typing.ipynb ) | [Gesture Typing ](/blob/master/ipynb/Gesture%20Typing.ipynb ) |
| [CO ](https://colab.research.google.com/github/googlecolab/colabtools//blob/master/ipynb/How%20to%20Do%20Things%20with%20Words.ipynb ) [DN ](https://beta.deepnote.org/launch?template=python_3.6&url=https%3A%2F%2Fgithub.com%2Fnorvig%2Fpytudes%2F%2Fblob%2Fmaster%2Fipynb%2FHow%20to%20Do%20Things%20with%20Words.ipynb ) [MY ](https://mybinder.org/v2/gh/norvig/pytudes/master ) [NB ](https://nbviewer.jupyter.org/github/norvig/pytudes//blob/master/ipynb/How%20to%20Do%20Things%20with%20Words.ipynb ) | [How to Do Things with Words, or Statistical Natural Language Processing in Python ](/blob/master/ipynb/How%20to%20Do%20Things%20with%20Words.ipynb ) |
|Run|Math Concepts|
|--|--|
| [CO ](https://colab.research.google.com/github/googlecolab/colabtools//blob/master/ipynb/Probability.ipynb ) [DN ](https://beta.deepnote.org/launch?template=python_3.6&url=https%3A%2F%2Fgithub.com%2Fnorvig%2Fpytudes%2F%2Fblob%2Fmaster%2Fipynb%2FProbability.ipynb ) [MY ](https://mybinder.org/v2/gh/norvig/pytudes/master ) [NB ](https://nbviewer.jupyter.org/github/norvig/pytudes//blob/master/ipynb/Probability.ipynb ) | [A Concrete Introduction to Probability ](/blob/master/ipynb/Probability.ipynb ) |
| [CO ](https://colab.research.google.com/github/googlecolab/colabtools//blob/master/ipynb/ProbabilityParadox.ipynb ) [DN ](https://beta.deepnote.org/launch?template=python_3.6&url=https%3A%2F%2Fgithub.com%2Fnorvig%2Fpytudes%2F%2Fblob%2Fmaster%2Fipynb%2FProbabilityParadox.ipynb ) [MY ](https://mybinder.org/v2/gh/norvig/pytudes/master ) [NB ](https://nbviewer.jupyter.org/github/norvig/pytudes//blob/master/ipynb/ProbabilityParadox.ipynb ) | [Probability, Paradox, and the Reasonable Person Principle ](/blob/master/ipynb/ProbabilityParadox.ipynb ) |
| [CO ](https://colab.research.google.com/github/googlecolab/colabtools//blob/master/ipynb/ProbabilitySimulation.ipynb ) [DN ](https://beta.deepnote.org/launch?template=python_3.6&url=https%3A%2F%2Fgithub.com%2Fnorvig%2Fpytudes%2F%2Fblob%2Fmaster%2Fipynb%2FProbabilitySimulation.ipynb ) [MY ](https://mybinder.org/v2/gh/norvig/pytudes/master ) [NB ](https://nbviewer.jupyter.org/github/norvig/pytudes//blob/master/ipynb/ProbabilitySimulation.ipynb ) | [Estimating Probabilities with Simulations ](/blob/master/ipynb/ProbabilitySimulation.ipynb ) |
| [CO ](https://colab.research.google.com/github/googlecolab/colabtools//blob/master/ipynb/Differentiation.ipynb ) [DN ](https://beta.deepnote.org/launch?template=python_3.6&url=https%3A%2F%2Fgithub.com%2Fnorvig%2Fpytudes%2F%2Fblob%2Fmaster%2Fipynb%2FDifferentiation.ipynb ) [MY ](https://mybinder.org/v2/gh/norvig/pytudes/master ) [NB ](https://nbviewer.jupyter.org/github/norvig/pytudes//blob/master/ipynb/Differentiation.ipynb ) | [Symbolic Algebra, Simplification, and Differentiation ](/blob/master/ipynb/Differentiation.ipynb ) |
| [CO ](https://colab.research.google.com/github/googlecolab/colabtools//blob/master/ipynb/Economics.ipynb ) [DN ](https://beta.deepnote.org/launch?template=python_3.6&url=https%3A%2F%2Fgithub.com%2Fnorvig%2Fpytudes%2F%2Fblob%2Fmaster%2Fipynb%2FEconomics.ipynb ) [MY ](https://mybinder.org/v2/gh/norvig/pytudes/master ) [NB ](https://nbviewer.jupyter.org/github/norvig/pytudes//blob/master/ipynb/Economics.ipynb ) | [Economics Simulation ](/blob/master/ipynb/Economics.ipynb ) |
| [CO ](https://colab.research.google.com/github/googlecolab/colabtools//blob/master/ipynb/How%20To%20Count%20Things.ipynb ) [DN ](https://beta.deepnote.org/launch?template=python_3.6&url=https%3A%2F%2Fgithub.com%2Fnorvig%2Fpytudes%2F%2Fblob%2Fmaster%2Fipynb%2FHow%20To%20Count%20Things.ipynb ) [MY ](https://mybinder.org/v2/gh/norvig/pytudes/master ) [NB ](https://nbviewer.jupyter.org/github/norvig/pytudes//blob/master/ipynb/How%20To%20Count%20Things.ipynb ) | [How to Count Things ](/blob/master/ipynb/How%20To%20Count%20Things.ipynb ) |
| [CO ](https://colab.research.google.com/github/googlecolab/colabtools//blob/master/ipynb/Socks.ipynb ) [DN ](https://beta.deepnote.org/launch?template=python_3.6&url=https%3A%2F%2Fgithub.com%2Fnorvig%2Fpytudes%2F%2Fblob%2Fmaster%2Fipynb%2FSocks.ipynb ) [MY ](https://mybinder.org/v2/gh/norvig/pytudes/master ) [NB ](https://nbviewer.jupyter.org/github/norvig/pytudes//blob/master/ipynb/Socks.ipynb ) | [Pairing Socks ](/blob/master/ipynb/Socks.ipynb ) |
| [CO ](https://colab.research.google.com/github/googlecolab/colabtools//blob/master/ipynb/Euler's%20Conjecture.ipynb ) [DN ](https://beta.deepnote.org/launch?template=python_3.6&url=https%3A%2F%2Fgithub.com%2Fnorvig%2Fpytudes%2F%2Fblob%2Fmaster%2Fipynb%2FEuler's%20Conjecture.ipynb ) [MY ](https://mybinder.org/v2/gh/norvig/pytudes/master ) [NB ](https://nbviewer.jupyter.org/github/norvig/pytudes//blob/master/ipynb/Euler's%20Conjecture.ipynb ) | [Euler's Sum of Powers Conjecture ](/blob/master/ipynb/Euler's%20Conjecture.ipynb ) |
|Run|Computer Science Algorithms and Concepts|
|--|--|
| [CO ](https://colab.research.google.com/github/googlecolab/colabtools//blob/master/ipynb/Convex%20Hull.ipynb ) [DN ](https://beta.deepnote.org/launch?template=python_3.6&url=https%3A%2F%2Fgithub.com%2Fnorvig%2Fpytudes%2F%2Fblob%2Fmaster%2Fipynb%2FConvex%20Hull.ipynb ) [MY ](https://mybinder.org/v2/gh/norvig/pytudes/master ) [NB ](https://nbviewer.jupyter.org/github/norvig/pytudes//blob/master/ipynb/Convex%20Hull.ipynb ) | [The Convex Hull Problem ](/blob/master/ipynb/Convex%20Hull.ipynb ) |
| [CO ](https://colab.research.google.com/github/googlecolab/colabtools//blob/master/ipynb/TSP.ipynb ) [DN ](https://beta.deepnote.org/launch?template=python_3.6&url=https%3A%2F%2Fgithub.com%2Fnorvig%2Fpytudes%2F%2Fblob%2Fmaster%2Fipynb%2FTSP.ipynb ) [MY ](https://mybinder.org/v2/gh/norvig/pytudes/master ) [NB ](https://nbviewer.jupyter.org/github/norvig/pytudes//blob/master/ipynb/TSP.ipynb ) | [The Traveling Salesperson Problem ](/blob/master/ipynb/TSP.ipynb ) |
| [CO ](https://colab.research.google.com/github/googlecolab/colabtools//blob/master/ipynb/StableMatching.ipynb ) [DN ](https://beta.deepnote.org/launch?template=python_3.6&url=https%3A%2F%2Fgithub.com%2Fnorvig%2Fpytudes%2F%2Fblob%2Fmaster%2Fipynb%2FStableMatching.ipynb ) [MY ](https://mybinder.org/v2/gh/norvig/pytudes/master ) [NB ](https://nbviewer.jupyter.org/github/norvig/pytudes//blob/master/ipynb/StableMatching.ipynb ) | [The Stable Matching Problem ](/blob/master/ipynb/StableMatching.ipynb ) |
| [CO ](https://colab.research.google.com/github/googlecolab/colabtools//blob/master/ipynb/BASIC.ipynb ) [DN ](https://beta.deepnote.org/launch?template=python_3.6&url=https%3A%2F%2Fgithub.com%2Fnorvig%2Fpytudes%2F%2Fblob%2Fmaster%2Fipynb%2FBASIC.ipynb ) [MY ](https://mybinder.org/v2/gh/norvig/pytudes/master ) [NB ](https://nbviewer.jupyter.org/github/norvig/pytudes//blob/master/ipynb/BASIC.ipynb ) | [BASIC Interpreter ](/blob/master/ipynb/BASIC.ipynb ) |
| [CO ](https://colab.research.google.com/github/googlecolab/colabtools//blob/master/ipynb/Snobol.ipynb ) [DN ](https://beta.deepnote.org/launch?template=python_3.6&url=https%3A%2F%2Fgithub.com%2Fnorvig%2Fpytudes%2F%2Fblob%2Fmaster%2Fipynb%2FSnobol.ipynb ) [MY ](https://mybinder.org/v2/gh/norvig/pytudes/master ) [NB ](https://nbviewer.jupyter.org/github/norvig/pytudes//blob/master/ipynb/Snobol.ipynb ) | [Bad Grade, Good Experience ](/blob/master/ipynb/Snobol.ipynb ) |
2017-03-25 02:57:19 +01:00
2017-12-02 19:53:35 +01:00
# Index of Python Files
2017-03-01 09:47:56 +01:00
| **File** | **Description** | **Documentation** |
|:--------|:-------------------|----|
2020-04-14 19:57:30 +02:00
|[SET.py](/blob/master/py/SET.py)|*Analyze the card game SET*|[documentation](http://norvig.com/SET.html)|
|[beal.py](/blob/master/py/beal.py)|*Search for counterexamples to Beal's Conjecture*|[documentation](http://norvig.com/beal.html)|
|[docex.py](/blob/master/py/docex.py)|*A framework for running unit tests, similar to `doctest` *||
|[ibol.py](/blob/master/py/ibol.py)|*An Exercise in Species Barcoding*|[documentation](http://norvig.com/ibol.html)|
|[lettercount.py](/blob/master/py/lettercount.py)|*Convert Google Ngram Counts to Letter Counts*|[documentation](http://norvig.com/mayzner.html)|
|[lis.py](/blob/master/py/lis.py)|*Lisp Interpreter written in Python*|[documentation](http://norvig.com/lispy.html)|
|[lispy.py](/blob/master/py/lispy.py)|*Even Better Lisp Interpreter written in Python*|[documentation](http://norvig.com/lispy2.html)|
|[lispytest.py](/blob/master/py/lispytest.py)|*Tests for Lisp Interpreters*||
|[pal.py](/blob/master/py/pal.py)|*Find long palindromes*|[documentation](http://norvig.com/palindrome.html)|
|[pal2.py](/blob/master/py/pal2.py)|*Find longer palindromes*|[documentation](http://norvig.com/palindrome.html)|
|[pal3.py](/blob/master/py/pal3.py)|*Find even longer palindromes*|[documentation](http://norvig.com/palindrome.html)|
|[py2html.py](/blob/master/py/py2html.py)|*Pretty-printer to format Python files as html*||
|[spell.py](/blob/master/py/spell.py)|*Spelling corrector*|[documentation](http://norvig.com/spell-correct.html)|
|[sudoku.py](/blob/master/py/sudoku.py)|*Program to solve sudoku puzzles*|[documentation](http://norvig.com/sudoku.html)|
|[testaccum.py](/blob/master/py/testaccum.py)|*Tests for my failed Python `accumulation display` proposal*|[documentation](http://norvig.com/pyacc.html)|
|[yaptu.py](/blob/master/py/yaptu.py)|*Yet Another Python Templating Utility*||
2017-08-24 10:30:18 +02:00
# Etudes for Programmers
2020-04-14 19:57:30 +02:00
I got the idea for the *"etudes"* part of the name from
2018-11-14 17:43:09 +01:00
this [1978 book ](https://books.google.com/books/about/Etudes_for_programmers.html?id=u89WAAAAMAAJ )
2020-04-14 19:57:30 +02:00
by [Charles Wetherell ](http://demin.ws/blog/english/2012/08/25/interview-with-charles-wetherell )
2017-12-28 00:05:21 +01:00
that was very influential to me when I was first learning to program.
2017-08-24 10:30:18 +02:00
