Class Central is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

Exercism

Python

via Exercism

Overview

Coursera Flash Sale
40% Off Coursera Plus for 3 Months!
Grab it
Python is a dynamic and strongly typed object-oriented programming language. It employs both duck typing and gradual typing (via type hints). It supports multiple programming paradigms including imperative (object-oriented, procedural) and declarative (functional, concurrent) flavors. But do not be fooled: while programming across paradigms is fully supported, everything in Python is an object.

Syllabus

  • Hello World
    • Exercism's classic introductory exercise. Just say "Hello, World!".
  • Guido's Gorgeous Lasagna
    • Learn the basics of Python by cooking Guido's Gorgeous Lasagna.
  • Ghost Gobble Arcade Game
    • Learn about bools by setting up the rules for the Ghost Gobble arcade game.
  • Currency Exchange
    • Learn about numbers by solving Chandler's currency exchange conundrums.
  • Meltdown Mitigation
    • Learn about conditionals and avoid a meltdown by developing a simple control system for a Nuclear Reactor.
  • Black Jack
    • Learn about comparisons by implementing some Black Jack judging rules.
  • Little Sister's Essay
    • Learn about string methods while improving your little sister's school essay.
  • Little Sister's Vocabulary
    • Learn about strings by helping your little sister with her vocabulary homework.
  • Card Games
    • Learn about lists by tracking hands in card games.
  • Chaitana's Colossal Coaster
    • Learn useful list methods helping Chaitana manage the lines for her colossal roller coaster.
  • Making the Grade
    • Learn about loops by grading and organizing your students exam scores.
  • Tisbury Treasure Hunt
    • Learn about tuples by helping out competitors in the Tisbury Treasure Hunt.
  • Inventory Management
    • Learn about dicts by managing warehouse inventory.
  • Mecha Munch Management
    • Learn about dictionary methods by building a shopping cart MVP for the Mecha Munch grocery app.
  • Locomotive Engineer
    • Learn about unpacking and multiple assignment in Python while helping Linus with his train control system.
  • Cater Waiter
    • Learn about sets by managing the menus and ingredients for your catering company's event.
  • Ellen's Alien Game
    • Learn about classes by creating an Alien for Ellen's game.
  • Plane Tickets
    • Learn about generators by assigning seats to passengers on Anaconda Airlines.
  • Leap
    • Determine whether a given year is a leap year.
  • Triangle
    • Determine if a triangle is equilateral, isosceles, or scalene.
  • Grains
    • Calculate the number of grains of wheat on a chessboard given that the number on each square doubles.
  • Armstrong Numbers
    • Determine if a number is an Armstrong number.
  • Collatz Conjecture
    • Calculate the number of steps to reach 1 using the Collatz conjecture.
  • Bob
    • Bob is a lackadaisical teenager. In conversation, his responses are very limited.
  • Raindrops
    • Convert a number into its corresponding raindrop sounds - Pling, Plang and Plong.
  • Darts
    • Calculate the points scored in a single toss of a Darts game.
  • Perfect Numbers
    • Determine if a number is perfect, abundant, or deficient based on Nicomachus' (60 - 120 CE) classification scheme for positive integers.
  • Reverse String
    • Reverse a given string.
  • Pangram
    • Determine if a sentence is a pangram.
  • Isogram
    • Determine if a word or phrase is an isogram.
  • ISBN Verifier
    • Check if a given string is a valid ISBN-10 number.
  • Rotational Cipher
    • Create an implementation of the rotational cipher, also sometimes called the Caesar cipher.
  • RNA Transcription
    • Given a DNA strand, return its RNA complement.
  • Resistor Color
    • Convert a resistor band's color to its numeric representation.
  • Resistor Color Duo
    • Convert color codes, as used on resistors, to a numeric value.
  • Resistor Color Trio
    • Convert color codes, as used on resistors, to a human-readable label.
  • Resistor Color Expert
    • Convert color codes as used on resistors with different bands to a human-readable label.
  • Secret Handshake
    • Given a decimal number, convert it to the appropriate sequence of events for a secret handshake.
  • Anagram
    • Given a word and a list of possible anagrams, select the correct sublist.
  • House
    • Output the nursery rhyme 'This is the House that Jack Built'.
  • Binary Search
    • Implement a binary search algorithm.
  • Hamming
    • Calculate the Hamming distance between two DNA strands.
  • Flatten Array
    • Take a nested list and return a single list with all values except nil/null.
  • Line Up
    • Help lining up customers at YaÊ»qÅ«b's Deli.
  • Difference of Squares
    • Find the difference between the square of the sum and the sum of the squares of the first N natural numbers.
  • List Ops
    • Implement basic list operations.
  • ETL
    • Change the data format for scoring a game to more easily add other languages.
  • Space Age
    • Given an age in seconds, calculate how old someone is in terms of a given planet's solar years.
  • Sum of Multiples
    • Given a number, find the sum of all the multiples of particular numbers up to but not including that number.
  • Gigasecond
    • Given a moment, determine the moment that would be after a gigasecond has passed.
  • Two Fer
    • Create a sentence of the form "One for X, one for me.".
  • Square Root
    • Given a natural radicand, return its square root.
  • Pig Latin
    • Implement a program that translates from English to Pig Latin.
  • Matching Brackets
    • Make sure the brackets and braces all match.
  • Sublist
    • Write a function to determine if a list is a sublist of another list.
  • Atbash Cipher
    • Create an implementation of the Atbash cipher, an ancient encryption system created in the Middle East.
  • Diamond
    • Given a letter, print a diamond starting with 'A' with the supplied letter at the widest point.
  • Eliud's Eggs
    • Help Eliud count the number of eggs in her chicken coop by counting the number of 1 bits in a binary representation.
  • Protein Translation
    • Translate RNA sequences into proteins.
  • Prime Factors
    • Compute the prime factors of a given natural number.
  • Say
    • Given a number from 0 to 999,999,999,999, spell out that number in English.
  • Acronym
    • Convert a long phrase to its acronym.
  • Series
    • Given a string of digits, output all the contiguous substrings of length `n` in that string.
  • Run-Length Encoding
    • Implement run-length encoding and decoding.
  • Nth Prime
    • Given a number n, determine what the nth prime is.
  • Twelve Days
    • Output the lyrics to 'The Twelve Days of Christmas'.
  • Roman Numerals
    • Convert modern Arabic numbers into Roman numerals.
  • Word Count
    • Given a phrase, count the occurrences of each word in that phrase.
  • Scrabble Score
    • Given a word, compute the Scrabble score for that word.
  • Proverb
    • For want of a horseshoe nail, a kingdom was lost, or so the saying goes. Output the full text of this proverbial rhyme.
  • Luhn
    • Given a number determine whether or not it is valid per the Luhn formula.
  • D&D Character
    • Randomly generate Dungeons & Dragons characters.
  • Robot Name
    • Manage robot factory settings.
  • Phone Number
    • Clean up user-entered phone numbers so that they can be sent SMS messages.
  • Queen Attack
    • Given the position of two queens on a chess board, indicate whether or not they are positioned so that they can attack each other.
  • Transpose
    • Take input text and output it transposed.
  • Yacht
    • Score a single throw of dice in the game Yacht.
  • Conway's Game of Life
    • Implement Conway's Game of Life.
  • State of Tic-Tac-Toe
    • Determine the game state of a match of Tic-Tac-Toe.
  • Saddle Points
    • Detect saddle points in a matrix.
  • OCR Numbers
    • Given a 3 x 4 grid of pipes, underscores, and spaces, determine which number is represented, or whether it is garbled.
  • Robot Simulator
    • Write a robot simulator.
  • Grade School
    • Given students' names along with the grade that they are in, create a roster for the school.
  • Sieve
    • Use the Sieve of Eratosthenes to find all the primes from 2 up to a given number.
  • Pythagorean Triplet
    • Given an integer N, find all Pythagorean triplets for which a + b + c = N.
  • Circular Buffer
    • A data structure that uses a single, fixed-size buffer as if it were connected end-to-end.
  • Matrix
    • Given a string representing a matrix of numbers, return the rows and columns of that matrix.
  • High Scores
    • Manage a player's High Score list.
  • Kindergarten Garden
    • Given a diagram, determine which plants each child in the kindergarten class is responsible for.
  • Bottle Song
    • Produce the lyrics to the popular children's repetitive song: Ten Green Bottles.
  • Allergies
    • Given a person's allergy score, determine whether or not they're allergic to a given item, and their full list of allergies.
  • Simple Cipher
    • Implement the Vigenère cipher, a simple substitution cipher.
  • Poker
    • Pick the best hand(s) from a list of poker hands.
  • Wordy
    • Parse and evaluate simple math word problems returning the answer as an integer.
  • Crypto Square
    • Implement the classic method for composing secret messages called a square code.
  • Clock
    • Implement a clock that handles times without dates.
  • Rectangles
    • Count the rectangles in an ASCII diagram.
  • Simple Linked List
    • Write a simple linked list implementation that uses Elements and a List.
  • Tree Building
    • Refactor a tree building algorithm.
  • Connect
    • Compute the result for a game of Hex / Polygon.
  • All Your Base
    • Convert a number, represented as a sequence of digits in one base, to any other base.
  • Swift Scheduling
    • Convert delivery date descriptions to actual delivery dates.
  • Spiral Matrix
    • Given the size, return a square matrix of numbers in spiral order.
  • Variable Length Quantity
    • Implement variable length quantity encoding and decoding.
  • Change
    • Correctly determine change to be given using the least number of coins.
  • Killer Sudoku Helper
    • Write a tool that makes it easier to solve Killer Sudokus
  • Flower Field
    • Mark all the flowers in a garden.
  • Rail Fence Cipher
    • Implement encoding and decoding for the rail fence cipher.
  • Palindrome Products
    • Detect palindrome products in a given range.
  • Tournament
    • Tally the results of a small football competition.
  • Food Chain
    • Generate the lyrics of the song 'I Know an Old Lady Who Swallowed a Fly'.
  • Scale Generator
    • Generate musical scales, given a starting note and a set of intervals.
  • Largest Series Product
    • Given a string of digits, calculate the largest product for a contiguous substring of digits of length n.
  • Markdown
    • Refactor a Markdown parser.
  • Meetup
    • Calculate the date of meetups.
  • Pascal's Triangle
    • Compute Pascal's triangle up to a given number of rows.
  • Grep
    • Search a file for lines matching a regular expression pattern. Return the line number and contents of each matching line.
  • Linked List
    • Implement a doubly linked list.
  • Complex Numbers
    • Implement complex numbers.
  • Ledger
    • Refactor a ledger printer.
  • Hangman
    • Implement the logic of the hangman game using functional reactive programming.
  • Go Counting
    • Count the scored points on a Go board.
  • Forth
    • Implement an evaluator for a very simple subset of Forth.
  • Binary Search Tree
    • Insert and search for numbers in a binary tree.
  • Camicia
    • Simulate the card game and determine whether the match ends or enters an infinite loop.
  • Rational Numbers
    • Implement rational numbers.
  • Bowling
    • Score a bowling game.
  • Knapsack
    • Given a knapsack that can only carry a certain weight, determine which items to put in the knapsack in order to maximize their combined value.
  • Relative Distance
    • Given a family tree, calculate the degree of separation.
  • DOT DSL
    • Write a Domain Specific Language similar to the Graphviz dot language.
  • Custom Set
    • Create a custom set type.
  • Zebra Puzzle
    • Solve the zebra puzzle.
  • Affine Cipher
    • Create an implementation of the Affine cipher, an ancient encryption algorithm from the Middle East.
  • Word Search
    • Create a program to solve a word search puzzle.
  • Alphametics
    • Given an alphametics puzzle, find the correct solution.
  • Bank Account
    • Simulate a bank account supporting opening/closing, withdraws, and deposits of money. Watch out for concurrent transactions!
  • React
    • Implement a basic reactive system.
  • Zipper
    • Creating a zipper for a binary tree.
  • Two Bucket
    • Given two buckets of different size, demonstrate how to measure an exact number of liters.
  • Dominoes
    • Make a chain of dominoes.
  • Satellite
    • Rebuild binary trees from pre-order and in-order traversals.
  • Book Store
    • To try and encourage more sales of different books from a popular 5 book series, a bookshop has decided to offer discounts of multiple-book purchases.
  • SGF Parsing
    • Parsing a Smart Game Format string.
  • PaaS I/O
    • Report network IO statistics.
  • REST API
    • Implement a RESTful API for tracking IOUs.
  • POV
    • Reparent a graph on a selected node.

Reviews

Start your review of Python

Never Stop Learning.

Get personalized course recommendations, track subjects and courses with reminders, and more.

Someone learning on their laptop while sitting on the floor.