These challenges are aimed at people who've already learned the basics of Python. They're meant to encourage you to use some of the more interesting features of Python, and help you to write more "Pythonic" code...
magic methods and duck typing - learn how to make your classes Pythonic using magic methods like __len__
and more
decorators - decorators, a pretty way of transforming functions using other functions. functional programming! functions.
context managers - aka the with
statement. What's it for, and how does it help to make your code look nicer?
generators - more efficient iterators with python and the yield
statement.
The Game of Life - a programming classic. Try it out using OO and functional paradigms in Python.
Check out the great tutorials at newcoder.io and learn how to use:
- Matplotlib to plot charts
- GEOJson to parse geographical data
- requests to get data off the internet
- scrapy for web scraping
- postgres as a database
- Tk for graphics and GUI stuff
and lots more...
- If you fancy something mathematical, try out Project Euler or the Matasano Crypto Challenges
- If you fancy learning TDD and good web development practices, check out www.obeythetestinggoat.com
- Python Epiphanies! http://swilliams.ca/Python-Epiphanies.pdf
- an excellent intermediate book: Fluent Python http://shop.oreilly.com/product/0636920032519.do (use code AUTHD)
- head on back to the tutorials page for some science resources