If you have read this book thoroughly till now and practiced writing a lot of programs, then you must have become comfortable and familiar with Python. You have probably created some Python programs to try out stuff and to exercise your Python skills as well. If you have not done it already, you should. The question now is 'What Next?'.
I would suggest that you tackle this problem:
Create your own command-line address-book program using which you can browse, add, modify, delete or search for your contacts such as friends, family and colleagues and their information such as email address and/or phone number. Details must be stored for later retrieval.
This is fairly easy if you think about it in terms of all the various stuff that we have come across till now. If you still want directions on how to proceed, then here's a hint [^1].
Once you are able to do this, you can claim to be a Python programmer. Now, immediately send me an email thanking me for this great book ;-). This step is optional but recommended. Also, please consider buying a printed copy to support the continued development of this book.
If you found that program easy, here's another one:
Implement the replace command. This command will replace one string with another in the list of files provided.
The replace command can be as simple or as sophisticated as you wish, from simple string substitution to looking for patterns (regular expressions).
If you found above programs easy to create, then look at this comprehensive list of projects and try writing your own programs: https://github.com/thekarangoel/Projects#numbers (the same list is also at Martyr2's Mega Project List).
Also see:
The best way to learn a programming language is to write a lot of code and read a lot of code:
If you are stuck with a Python problem, and don't know whom to ask, then the python-tutor list is the best place to ask your question.
Make sure you do your homework by trying to solving the problem yourself first and ask smart questions.
If you want to learn what is the latest in the world of Python, then follow the Official Python Planet.
There are a huge number of open source libraries at the Python Package Index which you can use in your own programs.
To install and use these libraries, you can use pip.
Learn Flask to create your own website. Some resources to get started:
Suppose you want to create your own graphical programs using Python. This can be done using a GUI (Graphical User Interface) library with their Python bindings. Bindings are what allow you to write programs in Python and use the libraries which are themselves written in C or C++ or other languages.
There are lots of choices for GUI using Python:
Kivy
PyGTK
PyQt
wxPython
For more choices, see the GuiProgramming wiki page at the official python website.
Unfortunately, there is no one standard GUI tool for Python. I suggest that you choose one of the above tools depending on your situation. The first factor is whether you are willing to pay to use any of the GUI tools. The second factor is whether you want the program to run only on Windows or on Mac and GNU/Linux or all of them. The third factor, if GNU/Linux is a chosen platform, is whether you are a KDE or GNOME user on GNU/Linux.
For a more detailed and comprehensive analysis, see Page 26 of the 'The Python Papers, Volume 3, Issue 1' (PDF).
There are usually two parts a programming language - the language and the software. A language is how you write something. The software is what actually runs our programs.
We have been using the CPython software to run our programs. It is referred to as CPython because it is written in the C language and is the Classical Python interpreter.
There are also other software that can run your Python programs:
There are also others such as CLPython - a Python implementation written in Common Lisp and Brython which is an implementation on top of a JavaScript interpreter which could mean that you can use Python (instead of JavaScript) to write your web-browser ("Ajax") programs.
Each of these implementations have their specialized areas where they are useful.
When you start writing larger programs, you should definitely learn more about a functional approach to programming as opposed to the class-based approach to programming that we learned in the object-oriented programming chapter:
We have now come to the end of this book but, as they say, this is the the beginning of the end!. You are now an avid Python user and you are no doubt ready to solve many problems using Python. You can start automating your computer to do all kinds of previously unimaginable things or write your own games and much much more. So, get started!
[^1]: Create a class to represent the person's information. Use a dictionary to store person objects with their name as the key. Use the pickle module to store the objects persistently on your hard disk. Use the dictionary built-in methods to add, delete and modify the persons.