New Beginning

"Every new beginning comes from some other beginning's end." (Seneca)

The programming language Python is a new beginning. It's on top of "other beginning",
like C, C++, Perl, Lisp and other scripting and programming languages.
Python3 is a new beginning as well. It's still Python, but it's rectifying
some aberations and inconsistencies of previous versions. But essentially, it's
still Python!

Training

"Education is not the piling on of learning, information, data, facts, skills,
or abilities - that's training or instruction - but is rather making visible
what is hidden as a seed." (Thomas Moore)

Python 3

Training Classes

This website aims at providing you with educational material suitable for self-learning.
Nevertheless, it is faster and more efficient to attend a "real"
Python course in a classroom, with
an experienced trainer. So why not attend one of the live
Python courses in Strasbourg, Paris, London, Berlin, Munich, Hamburg, Frankfurt,
or Lake Constance by Bernd Klein, the author of this tutorial?

In-house Training Courses

If you like it, we will come to your company or institute and provide a special training for your employees, as we've done it many times in Amsterdam (The Netherlands), Berlin (Germany), Bern (Switzerland), Basel (Switzerland), Zurich (Switzerland), Frankfurt (Germany), Locarno (Switzerland), Den Haag (The Hague), Hamburg, Toronto (Canada), Edmonton (Canada), Munich (Germany) and many other cities.
We do training courses in England, Switzerland, Liechtenstein, Austria, Germany,
France, Belgium, the Netherlands, Luxembourg, Poland, UK, Italy and other locations in Europe and in Canada.

This way you will get a perfect training up to your needs and it will be extremely cost efficient as well.

Skilled Python Programmers

You are looking for experienced Python developers or programmers? We can help you, please
contact us.

Quote of the Day:

"Don't have good ideas if you aren't willing to be responsible for them. " (Alan Perlis)

Python3 Tutorial

Those who want to learn Python ask themselves quite often: "Which version should I use?"
If you are free to choose, i.e. if there are no restriction by previous code or company
standards, we think you should start with Python3. So, please go on with this tutorial,
which is meant to be a tutorial for beginners and programmers switching from other programming
languages to Python.

It's an introduction into Python for beginners and intermediate learners with lots of examples
and exercises! It's suitable and meant for self-study.

This online Python course was created and is maintained by Bernd Klein, an experienced Python trainer,
giving training classes all over the world.

March 2014:
We are currently completely revising the chapter on object oriented
programming. It's more or less complete rewrite. The
old version dealing with OOP
can still be accessed, though we recommend to work through the new ones.
The topic now comprises five instead of previously only one chapter:

Any Help is Welcome!

Though we do our best to prevent errors, we need your help to ensure that all the
information presented in this tutorial is correct and up to date.
If you find spelling and grammatical errors, it will be great if you will point them
out to us, so that we can fix them! We are continually improving this website and this
will assist us in making it the best tutorial! The same is true of course, if you
find logical problems or errors in the text or the code examples. We hope that there
are only few of them left in the text! But as the saying goes, nobody is perfect!
Please use the contact button!

Ads for training classes

This website is ad-free! There are no paid-for ads.
The only things advertised here are the book by Bernd Klein, the author of
this tutorial, and the training classes given by the author.

Tutorial in hard copy

There is no PDF version available, but you can create it yourself.
You can use the print functionality of your browser to do this.
Use "Print to File" and you will get a nicely formatted version of a chapter.

Thanks!

Thank you very much for using this tutorial! We hope that you will enjoy learning
Python with us!

Advanced Topics

System Programming with Python

Python has various modules to support system focused programming.
The sys module is introduced in the first chapter. A focal point are the data streams (stdin, stdout, stderr) and redirections of streams.
The interaction between is the focus in the following chapter of our course.
The interaction between Python and the Linux Shell is another
topic of our advanced section. This chapter is followed by Forks and Forking.

You can learn more about threads and threading in our Introduction into Threads.
We show how to find the active IP addresses in a local network by using forks.

We demonstrate in "Pipe, Pipes and '99 Bottles of Beer'" how to write a
program which is construing the famous American song "99 bottles of
beer" by using forked processes and Pipes. So, if you need a good example of pipes and forks working
together you will find it here.

Graph Theory

We have three chapters dealing with Graphs.

A general introduction into the Graph theory and the corresponding Python code can be found in
"Graphs in Python" You will also here the implementations of a graph
class with essential
functionalities for graph creation, manipulation and calculations.

Computer Science and Computer Linguistics

Finite State Machines are not only used in computer science but in
natural language processing as well. We cover the concept of the Finite State Machine in great
detail, so that even an amateur in Computer Science can understand the examples.
At least we hope so.

Alan Turing's Turing Machines and above all the underlying theory is a must
for every computer scientist. We show a simple implementation of a Turing Machine.

Numerical Computations with Python

If you want to get efficient and fast results with arrays and matrices,
the NumPy module of
Python is definitely the right tool collection for you. You will find answers to your questions in
our tutorial, i.e. in our chapters "NumPy Module" and "Matrix Arithmetic".

Databases with Python

"Games"

What you find are not real games! We show a recursive solution to
Towers of Hanoi and a game
Cows and Bulls better known in a commercial version called "Mastermind".

Classroom training Courses

This tutorial is, as we have already mentioned, intended for self-study!
But some people need to learn Python very quick or prefer to learn in a classroom
with an experienced trainer. You may consider visiting one of the courses by
Bernd Klein, the author of this tutorial.

Our next Training Courses

Our next open Python classes with Bernd Klein, the author of this website: