I've just learned the basics of python, and I suppose that, for becoming a perfectionist, practice and coding is the best way.
So what kind of contribution can I make to a project written in python, though I may not understand it fully.
Most mature Python projects will have unit tests, and most of those will be incomplete / broken. Reading the tests will help you understand the use-cases of the program, learn some Python along the way, and then contribution by your own additions.
Python has a great community and Github makes it super easy to contribute.<p>Step 1: Create a github account
Step 2: Look at other projects you find interesting, clone them and try them out. If you have a hard time installing it or using it, improve something about it and submit a pull request. Even if it is just improving the README.
Step 3: Repeat.<p>You can always tear apart my projects and improve them if you are interested. <a href="http://github.com/mcotton" rel="nofollow">http://github.com/mcotton</a>