# Python Course

## Introduction

Although Python is an easy to learn and powerful programming language as it is known in common parlance, there is nevertheless need of a good introduction and tutorial on the Python language.
Why yet another documentation and tutorial on Python? Aren't there enough websites with tutorials and books dealing with Python? Isn't there already everything said about this great programming language?
These were the questions which came to our mind, when we started this website in June 2010. Yes, there are lots of tutorials and introductions, but we wanted to present a different approach, with other - more interesting - examples, better explanatory diagrams and so on. We had a lot to build on, above all the longstanding experience of Bernd Klein as a computer scientist and Python lecturer. Actually, this online course is based on the material from the classroom training courses of Bodenseo and his book on Python.

### Online Course

You will find a complete introduction into Python in our online tutorial:

- In our first chapter you learn how to use the Python Interactive Interpreter (in Python3)
- You will see how easy it is to Execute a Script in Python. (in Python3)
- Python differs from other programming languages in many ways, but the most striking one is obviously it's "Structuring with Indentation" (in Python3)
- Variables are easier to be used than in many other programming languages but still there are some things to point out about "Data Types and Variables" (in Python3).
- Though operators(in Python3) are more or less the same as in other languages, we have to cover them anyway.
- Assignments can be quite tricky in Python. When will an object be copied and when will we just have a reference? What's the difference between a shallow and a deep copy(in Python3)?
- Conditional statements(in Python3) are straightforward in Python
- The same is true for the (in Python3) while loops, but there is this special "else" part.
- The for loops (in Python3) seem to be quite strange if you are used to C but easy if you know the bash shell
- The different ways to format data (Only in our Python 3 tutorial).
- In this chapter of our course we will have a closer look at sequential data types (in Python3)
- Dictionaries (in Python3) are one of the best things Python has to offer
- It's possible to use sets in Pythons programs as well: We cover both sets and frozensets (in Python3)
- Programming without functions (in Python3) would be like cooking without salt and spices.
- And a very special spice for your "cooking" can be a recursive function (in Python3).
- To understand functions properly, you need a thorough understanding of arguments and parameter passing (in Python3).
- In the next chapter of our seminar you will find all you have to know about namespaces (in Python3).

### Further Topics

- Global and local variables (in Python3) is a topic, which can be different for beginners.
- A language without the ability to read and write data files would be. So we will introduce you in our course to the essentials of file management (in Python3).
- A program, especially a large one, shouldn't be called a program, if it isn't written in a modular way (in Python3).
- Memoisation is a technique used in computing to speed up programs by giving functions memory.
- Decorators belong to the most beautiful concepts of Python, but unjustly many Python programmers are afraid of them.
- Text processing without regular expressions is only piecemeal. That's why we present in our tutorial a detailed introduction into regular expressions under Python (in Python3), continued by a chapter with advanced regular expressions (in Python3).
- Something very controversial in Python: Lambda Operator (in Python3)
- It's no secret that Guido van Rossum doesn't like lambda Operators. Here we give you an introduction into his preferred way, i.e. List Comprehension (in Python3)
- Exception Handling (in Python3) is a concept which is comparatively new, i.e. it hasn't been known in programming languages like C and Fortran but in C++ and Java.
- Generators are not only good for producing electricity, in Python generators (in Python3) are the most powerful tool to create iterators.
- Yes, Python is a fully object oriented language! So we offer a complete online course into the details of OOP. You suggest working through the following chapters in this order:
  - General Introduction into Object Oriented Programming (OOP)
  - Class and Instance Attributes
  - Properties vs. Getters and Setters
  - Inheritance
  - Multiple Inheritance
  - Magic Methods and Operator Overloading

﻿

#### Our next Training Courses

Our next open Python classes with Bernd Klein, the author of this website:
Amsterdam:
Python Intensive Course
24 - 28 Oct 16 21 - 25 Nov 16
Django Python Web Application Framework Course
24 - 28 Oct 16
Python Text Processing and Computer Linguistics Course
8 - 12 Aug 16
Berlin:
Python Intensive Course
22 - 26 Aug 16 21 - 25 Nov 16
Django Python Web Application Framework Course
19 - 23 Sep 16
Python Text Processing and Computer Linguistics Course
19 - 23 Sep 16
Python Course: Level III
19 - 23 Sep 16
Hamburg:
Python Intensive Course
21 - 25 Sep 16 17 - 21 Oct 16
Python Course: Level I
4 - 8 Jul 16
Python Course: Extending and Embedding
17 - 21 Oct 16
Lake Constance / Zurich:
Python Intensive Course
8 - 12 Aug 16 5 - 9 Dec 16
Python Course: Extending and Embedding
18 - 22 Jul 16
Django Python Web Application Framework Course
17 - 21 Oct 16
Python Text Processing and Computer Linguistics Course
17 - 21 Oct 16
Python Course: Level III
18 - 22 Jul 16
London:
Python Intensive Course
22 - 26 Aug 16
Django Python Web Application Framework Course
12 - 16 Dec 16
Python Text Processing and Computer Linguistics Course
21 - 25 Sep 16
Luxembourg / Brussels:
Python Intensive Course
19 - 23 Sep 16 28 Nov - 2 Dec 16
Django Python Web Application Framework Course
19 - 23 Sep 16
Python Course: Extending and Embedding
28 Nov - 2 Dec 16
Munich / München:
Python Intensive Course
15 - 19 Aug 16
Python Course: Level II
28 Nov - 2 Dec 16
Django Python Web Application Framework Course
12 - 16 Dec 16
Python Text Processing and Computer Linguistics Course
12 - 16 Dec 16
Python Course: Extending and Embedding
28 Nov - 2 Dec 16
Paris:
Python Course: Level II
4 - 8 Jul 16
Python Text Processing and Computer Linguistics Course
21 - 25 Sep 16
The Hague / Den Haag:
Python Intensive Course
29 Aug - 2 Sep 16
Toronto:
Python Intensive Course
11 - 15 Jul 16 24 - 28 Oct 16
Python Course: Level II
5 - 9 Sep 16
Vienna / Wien:
Python Intensive Course
31 Oct - 4 Nov 16
Python Course: Level II
26 - 30 Sep 16
Django Python Web Application Framework Course
31 Oct - 4 Nov 16
Python Text Processing and Computer Linguistics Course
24 - 28 Oct 16
Python Course: Extending and Embedding
24 - 28 Oct 16

#### A Course is not a Course

The question is ambiguous. First we want to explain, why this website is called "A Python Course". This website is seen all over the world and the expression "course" has varying meanings in the English speaking world. Both in the United States and Canada, a course is a teaching unit, which might last e.g. one academic term. The students normally get a grade or some academic credit for attending the course, usually after having passed an exam.
In the United Kingdom and Australia the term "course" usually defines the complete programme of studies required to complete a major or a study path leading to a university degree. The word "unit" is used in the UK to refer to an academic course in the North American sense.
On the one hand, we had the US and Canadian sense in mind: Our Python is one teaching unit and when you have successfully passed it, you are capable of programming in Python. On the other hand, we had the original meaning of the word in mind: A "course of instruction" as it might be used in book titles like "A Course in Programming Python".