📗
Course Preparation
  • Introduction
  • What To Expect
  • Installation
  • Background Study
  • A Byte of Python
  • About Python
  • First Steps
  • Basics
  • Operators and Expressions
  • Control flow
  • Functions
  • Modules
  • Data Structures
  • Problem Solving
  • Object Oriented Programming
  • Input and Output
  • Exceptions
  • Standard Library
  • More
  • What Next
Powered by GitBook
On this page
  • Before the training course
  • After the training course
  • Projects
  • Example Code
  • Advice
  • Videos
  • Questions and Answers
  • Tutorials
  • Discussion
  • News
  • Installing libraries
  • Creating a Website
  • Graphical Software
  • Summary of GUI Tools
  • Various Implementations
  • Functional Programming (for advanced readers)
  • Summary

Was this helpful?

What Next

PreviousMore

Last updated 4 years ago

Was this helpful?

Before the training course

We would recommend reading at least the first few chapters of this book so you are comfortable and familiar with Python before your Python Charmers training course.

If you have read this book thoroughly till now and practiced writing some Python code, then you will be very well-placed to get the most out of the course.

We're sure you'll enjoy the course and learn a lot. Meanwhile, please if you have any questions!

After the training course

Here are some project suggestions and further resources for after the course.

Projects

If you have a work-related project, we recommend that you try applying Python to solve it as soon as possible after the course.

If you would like other project ideas, try these lists:

  • .

Example Code

The best way to learn a programming language is to write a lot of code and read a lot of code:

Advice

Videos

Questions and Answers

Tutorials

Discussion

News

Installing libraries

Creating a Website

Graphical Software

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

Summary of GUI Tools

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.

Various Implementations

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:

    • A Python implementation that runs on the Java platform. This means you can use Java libraries and classes from within Python language and vice-versa.

    • A Python implementation that runs on the .NET platform. This means you can use .NET libraries and classes from within Python language and vice-versa.

    • A Python implementation written in Python! This is a research project to make it fast and easy to improve the interpreter since the interpreter itself is written in a dynamic language (as opposed to static languages such as C, Java or C# in the above three implementations)

Each of these implementations have their specialized areas where they are useful.

Functional Programming (for advanced readers)

Summary

We have now come to the end of this book but, as they say, this is 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!

is an extremely valuable collection of recipes or tips on how to solve certain kinds of problems using Python. This is a must-read for every Python user.

is another excellent must-read guide to the .

(paid)

If you are stuck with a Python problem, and don't know whom to ask, then the is the best place to ask your question.

Make sure you do your homework by trying to solving the problem yourself first and .

If you want to learn what is the latest in the world of Python, then follow the .

There are a huge number of open source libraries at the which you can use in your own programs.

A nice human-curated list of Python packages is here: .

To install and use these libraries, you can use .

Learn to create your own website. Some resources to get started:

This is the Python binding for the GTK+ toolkit which is the foundation upon which GNOME is built. GTK+ has many quirks in usage but once you become comfortable, you can create GUI apps fast. The Glade graphical interface designer is indispensable. The documentation is yet to improve. GTK+ works well on GNU/Linux but its port to Windows is incomplete. You can create both free as well as proprietary software using GTK+. To get started, read the .

This is the Python binding for the Qt toolkit which is the foundation upon which the KDE is built. Qt is extremely easy to use and very powerful especially due to the Qt Designer and the amazing Qt documentation. PyQt is free if you want to create open source (GPL'ed) software and you need to buy it if you want to create proprietary closed source software. Starting with Qt 4.5 you can use it to create non-GPL software as well. To get started, read about .

This is the Python bindings for the wxWidgets toolkit. wxPython has a learning curve associated with it. However, it is very portable and runs on GNU/Linux, Windows, Mac and even embedded platforms. There are many IDEs available for wxPython which include GUI designers as well such as and the GUI builder. You can create free as well as proprietary software using wxPython. To get started, read the .

For more choices, see the .

For a more detailed and comprehensive analysis, see Page 26 of the .

There are also others such as - a Python implementation written in Common Lisp and 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.

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 :

Do to let us know how you go!

get in touch
Mega Project List
Exercises for Programmers: 57 Challenges to Develop Your Coding Skills
Intermediate Python Projects
Python Cookbook
The Hitchhiker's Guide to Python!
The Elements of Python Style
Python Big Picture
"Writing Idiomatic Python" ebook
Full Stack Web Development with Flask
PyVideo
Official Python Dos and Don'ts
Official Python FAQ
Norvig's list of Infrequently Asked Questions
Python Interview Q & A
StackOverflow questions tagged with python
Hidden features of Python
What's the one code snippet/python trick/etc did you wish you knew when you learned python?
Awaretek's comprehensive list of Python tutorials
python-tutor list
ask smart questions
Official Planet Python
Python Package Index
Awesome-Python
pip
Flask
Flask Official Quickstart
The Flask Mega-Tutorial
Example Flask Projects
http://kivy.org
PyGTK tutorial
PySide
SPE (Stani's Python Editor)
wxGlade
wxPython tutorial
GuiProgramming wiki page at the official python website
'The Python Papers, Volume 3, Issue 1' (PDF)
Jython
IronPython
PyPy
CLPython
Brython
Functional Programming Howto by A.M. Kuchling
Functional programming chapter in 'Dive Into Python' book
Functional Programming with Python presentation
Funcy library
PyToolz library
keep in touch
Python Module of the Week
Standard Library
object-oriented programming chapter