close
The Wayback Machine - https://web.archive.org/web/20230330011444/https://github.com/man-group/PythonTrainingExercises
Skip to content

man-group/PythonTrainingExercises

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Python Exercises
===================

In all cases the problem is stated in the top of the code which is for you to
edit. A solution is given, usually in the solution sub-package.

Requirements
------------
These should all work with any modern version of Python (2.7 of 3.2+).

It is best if you have pytest [http://pytest.org/latest/] installed but it is not essential.

Beginners:
---------

Strings:
In the strings/strings.py there are a series of string manipulation problems.
The solutions are in strings/solution/strings.py

Functions:
Create an equivalent of the builtin functions filter and map.
The problem is stated in Functions/Functions.py
A solution is given in Functions/solution/Functions.py

Classes:
Create a class that represents a distance that can be coverted form one measure
of units to another.
The problem is stated in ClassLength/Length.py
A solution is given in ClassLength/solution/Length.py

Dictionaries
Given a dictionary that maps state name to state capital how do you do the
reverse i.e. state capital to state name.
The problem is stated in DictOfStateCapitals/StateCapitals.py
A solution is given in DictOfStateCapitals/solution/StateCapitals.py

Intermediate:
-------------

Files:
Find duplicate files on the file system.
The problem is stated in DuplicateFiles/DuplicateFiles.py
A solution is given in DuplicateFiles/solution/DuplicateFiles.py

Dictionaries:
Use a dictionary to create a histogram of floating point numbers and print it
out in a visual way.
The problem is stated in Histogram/DictHistogram.py
A solution is given in Histogram/solution/DictHistogram.py

Generators:
Create a generator that creates the infinite geometric series:
1, 1/2, 1/4, 1/8... then sums the first N values or the values
until they are smaller than epsilon.
The problem is stated in Generators/Generator.py
A solution is given in Generators/solution/Generator.py

Markov Chain:
Create a class that can represent a MarkovChain
https://en.wikipedia.org/wiki/Markov_chain
The problem is stated in MarkovChain/MarkovChain.py
A solution is given in MarkovChain/solution/MarkovChain.py

Random Words:
Write a function that randomises letters in words after the first N letters.
The problem is stated in RandomWords/RandomWords.py
A solution is given in RandomWords/solution/RandomWords.py

Regular Expressions:
Parse a list of lines and use regular expressions to process
them differently according to what they contain.
The problem is stated in RegexMapping/RegexMap.py
A solution is given in RegexMapping/solution/RegexMap.py


Advanced:
---------

Co-routines:
Write a co-routine that is sent words and maintains a sorted list of them.
The problem is stated in Generators/CoRoutine.py
A solution is given in Generators/solution/CoRoutine.py

Decorators:
Write a decorator that makes sure that only a particular type of exception is
raised by the function.
The problem is stated in Decorators/Decorators.py
A solution is given in Decorators/solution/Decorators.py

Create a strategy:
Given the text for Romeo and Juliet can you predict which actor is next to speak?
The problem is stated in RomeoAndJuliet/romeo_and_juliet.py
A solution is given in RomeoAndJuliet/solution/romeo_and_juliet.py


Created by Paul Ross <[email protected]>

2015-11-04

Licence: BSD3 # Source: https://opensource.org/licenses/BSD-3-Clause

About

Code to exercise your Python knowledge.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages