Wie ich mir Python beibringe und ein paar Skripte für Anfänger

13.2.2023 (zuletzt aktualisiert am 15.3.2023)

Um sich in Python einzuarbeiten, entsteht hier ein chronologisch geordnete Sammlung an Python-Skripten zum Üben. Es dient mir auch als Gedankenstütze. Bei dieser Gelegenheit möchte ich verraten, wie ich meine Lernumgebung eingerichtet habe und welcher Lernstil mir am besten liegt.

Jeder hat seinen persönlichen Lernstil. Man muss herausfinden, was einem liegt. Auch sind die  Anforderungen und Zielsetzungen individuell. Es kommt noch hinzu, dass ich unter Windows mir Python beibringe und die Python-Programme unter Linux laufen sollen. Das ist nicht optimal und ein paar Dinge sind dabei zu beachten.

Welche Tools verwende ich derzeit persönlich? Als Python Interpreter kommen zum Einsatz Python IDLE, dessen Installation unter https://www.python-lernen.de/python-installieren.htm beschrieben ist. Zum Üben ist er etwas umständlich in der Handhabung. Möchte man nur kleine Programmschnipsel testen, dann geht es mit dem Online-Intpreter auf https://pythontutor.com/python-debugger.html#mode=edit viel schneller. Meine  Codes schreibe ich aus alter Gewohnheit in Notepad++ https://notepad-plus-plus.org/downloads/ hinein, obwohl es bessere IDEs wie zum Beispiel PyCharm https://www.jetbrains.com/de-de/pycharm/ als kostenlose Version gibt, die ich aber noch nicht getestet habe. Für einen Anfänger sind sie vielleicht zu mächtig. Atom ist als IDE auch sehr beliebt.

Eine wirklich große Hilfe ist ChatGPT  https://chat.openai.com/chat mit seinem  Sprachverständnis. Wenn man die richtige Fragetechnik entwickelt, kommt man viel schneller zum Zuge, als wenn man sich durch die Foren angelt. ChatGPT beherrscht auch hervorragend Deutsch und hilft bei Übersetzungen.

Wer seine Codes unter Windows schreibt und auf Linux anwendet, sollte sich unbedingt https://elektronikbasteln.pl7.de/agi-skripte-fuer-asterisk-unter-windows-editieren-was-ist-zu-beachten durchlesen. Was dort zu AGI-Skripten steht, gilt ganz allgemein für jedes Skript, das von Windows auf Linux transferiert wird. Wer das nicht weiß, wirft leider viel zu früh das Handtuch.

Icons auf dem Windows-Desktop ermöglichen einen schnellen Zugriff auf die Werkzeuge, die ich für Python verwende.

Welchen Kurs verwende ich? Als Anfänger gefällt mir persönlich https://www.python-lernen.de/ sehr gut. Er ist in leicht aufrufbaren Lerneinheiten zum Lesen und Nachlesen untergliedert. Lesen geht viel schneller und viel flexibler als Videokurse, bei denen manchmal einschlafe. Videokurse können eher zur Wiederholung sinnvoll sein, wenn man ab und zu etwas Neues aufschnappen kann.

Dann hat mir noch folgender Kurs gut gefallen: Python for Everybody – Full University Python Course


Python for Everybody – Full University Python Course. Im März 2023 bereits 4,5 Millionen Aufrufe. Kein Wunder. Der Kurs ist didaktisch hervorragend gemacht. Unbedingt Youtube die Beschreibung durchlesen. Dort findet man Manuskripte in verschieden Sprachen als PDF,  Grafiken und in eine ZIP-Datei alle Python-Skripte des Kurses.

Das Video geht läuft 13  Stunden und ist auf leicht verständlichem US-Englisch gehalten. Ab 40 Minuten geht es mit der Programmierung erst richtig los. Der erste  Teil richtig sich mehr Anfänger, die keine Ahnung von Computern haben. Auf Youtube gibt es jede Menge Kurse für Python und viele andere Programmiersprachen. Für jeden Geschmack müsste etwas dabei sein. Leider sind die meisten Kurse auf Englisch. Als Programmierer sollte das aber keine unüberwindbare Hürde darstellen.

Zu diesem Videokurs gibt es übrigens als PDF-Datei ein deutschsprachiges Skript mit über 200 Seiten:

http://do1.dr-chuck.com/pythonlearn/DE_de/pythonlearn.pdf

Besten Dank an die Autoren und Übersetzer an dieser Stelle! Und alles kostenlos!

Ich glaube meinen Weg gefunden zu haben. So klappt das bei mir wunderbar mit dem Lernen. Zwei Bildschirme sind eine große Hilfe. Die Codes des Kurses teste ich mit dem Laptop im Python Tutor. Kopfhörer verhindern, dass ich abgelenkt werde. Jeden Tag ein Stündchen führt zum Erfolg. Der Lehrer bringt selbst die trockenen Grundlagen spannend herüber. Dazu trägt auch seine angenehme Stimme bei.

Mein Lernstil: Ich bin leider nicht der brave Schüler, der schön ordentlich sich von einer Übungsaufgabe zur anderen durchquält. Mir liegt das nicht, auch wenn das  Vorteile mit sich führt, wenn man zum Beispiel eine  Prüfung bestehen muss. Bei mir ist das nicht das Fall. Ich gehe ganz anders vor. Ich setze mir erst einmal ein Ziel, zum Beispiele ein kleines Programm zur Berechnung einer Transistorgrundschaltung. Dann gehe ich im Kurs die Grundlagen im Schnelldurchgang durch, um zu sehen, was es gibt und was ich benötige. Und dann fange ich an Schritt für Schritt zu programmieren, wobei mir immer mehr Dinge einfallen, die ich einbauen und verbessern könnte. Schließlich kopiere ich als Nachschlagewerk alle Codeschnipsel hier herein. Dann haben auch andere was davon.

Wenn ich etwas nicht kapiert habe, frage ich ChatGPT. Er erklärt mir, wie ein Codeschnipsel funktioniert, wie man ihn anders schreiben könnte und findet Fehler im Skript. Er kann mir sogar Lösungen anbieten, die ich schriftlich formuliert habe, wobei es auf eine genaue Formulierung ankommt, da ChatGPT im Gegensatz zu einem Menschen kaum fähig ist sich in meine Lage hineinzuversetzen. Trotzdem gibt er sich große Mühe ein Lösung zu finden. Er scheint von Woche zu Woche besser werden und kann im Gegensatz zu früher einem Gesprächsfaden besser folgen und lernt aus der gesamten Diskussion zu verstehen, was die Ziele des Anwenders sind. Wenn er dabei falsch liegt, was nicht selten passiert, hilft die gemeinsame Fehlersuche zum besseren Verständnis von Python. Es ist die Interaktion, die zusätzlich motiviert. ChatGPT ist ein KI-System ohne Geschlecht. Trotzdem gehe ich davon aus, er sei männlich. Natürlich ist das eine Illusion. Das kann aber jeder für sich selbst entscheiden. Man darf aber dabei nicht vergessen, dass es sich um eine Maschine handelt, die menschliches Verhalten nachahmt.

Es gibt mehrere gute Gründe, warum Python eine ausgezeichnete Wahl für Anfänger in der Programmierung ist:

  1. Einfache Syntax: Python ist bekannt für seine einfache und leicht verständliche Syntax. Im Vergleich zu anderen Programmiersprachen ist es weniger zeitaufwändig, Python-Code zu schreiben und zu lesen. Das macht Python für Anfänger attraktiv.
  2. Vielseitigkeit: Python ist eine vielseitige Sprache, die für viele Anwendungsbereiche eingesetzt werden kann. Von Webentwicklung über Data Science bis hin zur künstlichen Intelligenz – Python kann für viele Zwecke eingesetzt werden.
  3. Große Community: Python hat eine große und aktive Community von Entwicklern auf der ganzen Welt. Dadurch stehen Anfängern viele Ressourcen zur Verfügung, wie z.B. Tutorials, Foren und Bibliotheken.
  4. Breite Verfügbarkeit: Python ist in der Regel auf den meisten Betriebssystemen vorinstalliert oder kann schnell und einfach heruntergeladen werden. Dadurch ist es für Anfänger einfach, mit dem Programmieren in Python zu beginnen.
  5. Jobmöglichkeiten: Python ist eine der gefragtesten Programmiersprachen auf dem Arbeitsmarkt. Einige der größten Tech-Unternehmen setzen auf Python, was bedeutet, dass es für Anfänger einfacher sein kann, in die Branche einzusteigen, wenn sie Python beherrschen.

Alles in allem bietet Python eine ausgezeichnete Kombination aus Einfachheit, Vielseitigkeit und Karrieremöglichkeiten. Daher ist es eine hervorragende Wahl für Anfänger in der Programmierung.

******

Das Skript mit dem fast jeder Programmierkurs anfängt: Man sieht nur “Hallo Welt!” auf der Konsole. Dieses Skript gibt eine einfache Textausgabe mit dem Inhalt “Hallo Welt!” auf dem Bildschirm aus. Die erste Zeile #!/usr/bin/env python ist eine shebang-Zeile, die angibt, welches Programm verwendet werden soll, um das Skript auszuführen. In diesem Fall wird Python verwendet. Die zweite Zeile ist ein Kommentar, der mit einem Rautezeichen (#) beginnt und beschreibt, was das Skript tut. Kommentare werden vom Interpreter ignoriert und dienen nur zur besseren Verständlichkeit des Codes.

Damit die auf Windows erstellten Codes auch auf Linux laufen, fangen  Sie bei mir immer wie folgt an:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

Und hier das Hallo-Welt-Programm für den allerersten Programmiererfolg:

#!/usr/bin/env python # Muss am Anfang stehen, damit der Code ausführbar ist.
# -*- coding: utf-8 -*-
print("Hallo Welt!")
# So fängt wohl jeder mal an. Kommentarzeilen mit Raute einleiten.

Verwendung von Variablen für die Eingabe von Texten (Strings): Dieses Skript fragt den Benutzer nach seinem Namen, Alter und Wohnort und speichert diese Informationen in den Variablen myName, myAge und myHome. Dann werden diese Variablen verwendet, um ein paar Nachrichten auszugeben, die bestätigen, dass die Informationen erfasst wurden und wie sie aussehen. Am Ende werden die Informationen zusammengeführt und ausgegeben, um eine kurze Zusammenfassung zu erhalten.

myName = input("Wie heißt Du? ")
myAge = input("Wie alt bist Du? ")
print("")
print("Danke!")
print("")
myHome = input("Wo wohnst Du? ")
print("")
print("Mein Name ist", myName)
print("Ich bin", myAge, "Jahre alt.")
print(myHome, "ist mein Wohnort.")
print("")
print("Also, ich heiße",myName,"und bin",myAge,"alt","und ich komme aus",myHome,".")

Kleines Rechenbeispiel mit Integerzahlen (ganzen Zahlen): Dieses Skript fragt den Benutzer nach zwei Zahlen und speichert die Eingaben in den Variablen num1 und num2. Dann werden die Zahlen addiert und das Ergebnis in der Variablen result gespeichert. Schließlich wird das Ergebnis mit print ausgegeben.

# Eingabe von zwei Zahlen für die Addition
num1 = int(input("Gib die erste Zahl ein: "))
num2 = int(input("Gib die zweite Zahl ein: "))

# Addition der Zahlen
result = num1 + num2

# Ausgabe des Ergebnisses
print("Das Ergebnis der Addition ist:", result)

Eingabe einer Ganzzahl (Integer): int ist eine Abkürzung für “integer”, was auf Deutsch “ganze Zahl” bedeutet. In Python ist int ein Datentyp, der ganze Zahlen repräsentiert, also Zahlen ohne Nachkommastellen.

Das int-Keyword wird oft in Verbindung mit der input-Funktion verwendet, um die Eingabe des Benutzers als ganze Zahl zu interpretieren. Die input-Funktion liest standardmäßig einen String von der Konsole ein, aber durch die Verwendung von int(input(...)) wird der eingelesene String in eine ganze Zahl umgewandelt.

num = int(input("Gib eine ganze Zahl ein: "))
print("Du hast die Zahl", num, "eingegeben.")

Fließkommazahlen verwenden: Wenn Sie Fließkommazahlen (also Zahlen mit Nachkommastellen) eingeben möchten, müssen Sie den Datentyp float anstelle von int verwenden.

In den meisten Ländern wird ein Dezimalpunkt (.) verwendet, um Nachkommastellen in Zahlen anzugeben. Beispielsweise: 3.14 ist eine Fließkommazahl, die den Wert Pi repräsentiert.

In einigen Ländern wird stattdessen ein Dezimalkomma (,) verwendet. Python unterstützt beide Schreibweisen, aber es ist am besten, einen einheitlichen Stil innerhalb Ihres Codes zu verwenden, um Verwirrung zu vermeiden.

# Eingabe von zwei Fließkommazahlen für die Addition
num1 = float(input("Gib die erste Zahl ein: "))
num2 = float(input("Gib die zweite Zahl ein: "))

# Addition der Zahlen
result = num1 + num2

# Ausgabe des Ergebnisses
print("Das Ergebnis der Addition ist:", result)

Fehlerhafte Eingabe von Zahlen: Hier würde 5 plus 3 das Ergebnis 53 liefern. Würde man Schweine und braten eingeben, würde das Ergebnis Schweinebraten lauten. Dieses Programm macht einen Fehler, da bei der Eingabe der Zahlen num1 und num2 die Datentypen der Variablen als Strings gespeichert werden, anstatt als Zahlen. Dies führt dazu, dass bei der Ausgabe die Strings “concateniert” (ohne Abstand hintereinander ausgegeben) werden, anstatt die Zahlen zu addieren.

# Fehlerhafte Eingabe zur Addition von
# zwei Zahlen. Die Variablen sind nicht
# als Zahlen definiert, sondern als 
# Strings.
num1 = input("Gib die erste Zahl ein: ")
num2 = input("Gib die zweite Zahl ein: ")

# Addition der Zahlen
result = num1 + num2

# Ausgabe des Ergebnisses
print("Das Ergebnis der Addition ist:", result)

if-else-Anweisung (Wenn-Dann-Anweisung): In diesem Beispiel wird abhängig davon, ob die eingegebene Zahl größer als Null ist oder nicht, eine entsprechende Ausgabe auf dem Bildschirm gemacht.

# Eingabe einer Zahl
num = float(input("Gib eine Zahl ein: "))

# Verzweigung
if num > 0:
    print("Die Zahl ist positiv.")
else:
    print("Die Zahl ist negativ oder Null.")

if-elif-else-Anweisung:

num = float(input("Gib eine Zahl ein: "))

# Verzweigung
if num > 0:
 print("Die Zahl ist größer als Null.")
elif num == 0:
 print("Die Zahl ist Null.")
else:
 print("Die Zahl ist kleiner als Null.")

For-Schleife: Hier ist ein einfaches Beispiel einer for-Schleife in Python, die die Zahlen von 1 bis 5 ausgibt. Die range()-Funktion erzeugt eine Sequenz von Zahlen, die in der Schleife verwendet werden. In diesem Fall erzeugt sie eine Sequenz von Zahlen von 1 bis 5. Die Schleife wird dann durchlaufen, und bei jedem Durchlauf wird die aktuelle Zahl mit print() ausgegeben.

for i in range(1, 6):
    print(i)

While-Schleife: In diesem Beispiel wird die while-Schleife so lange durchlaufen, wie count kleiner als 5 ist. Bei jedem Durchlauf der Schleife wird der aktuelle Wert von count ausgegeben und die Variable um 1 erhöht. Sobald count den Wert 5 erreicht, wird die Schleife beendet und die Nachricht “Schleife beendet.” ausgegeben.

# Initialisierung einer Variablen
count = 0

# while-Schleife
while count < 5:
    print("Aktueller Wert von count ist:", count)
    count += 1

print("Schleife beendet.")

Funktionen: Beispiel Addition zweier Zahlen a und b

def addieren(a, b):
    ergebnis = a + b
    return ergebnis

Die Anwendung dieser Funktion:

ergebnis = addieren(3, 5)
print(ergebnis)

Einfache  While-Schleife: Die Ausgabe lautet 5 4 3 2 1 Ende.

n = 5
while n > 0 :
    print(n)
    n = n - 1
print ("Ende")

Dieses Python-Skript gibt eine Abfolge von Zahlen aus, beginnend bei 5 und endend bei 1. Es verwendet eine while-Schleife, um diese Zahlenfolge zu generieren.

Das Skript initialisiert eine Variable n mit dem Wert 5 und gibt die Zahl aus. Dann wird die while-Schleife verwendet, um die Zahl um 1 zu reduzieren und die nächste Zahl auszugeben, bis n gleich 0 ist.

Nachdem die Schleife beendet ist, wird der Text “Ende” ausgegeben. Das Ergebnis der Ausführung dieses Skripts wäre:

Den größten Wert in einer For-Schleife finden:

# Den größten Wert in einer Schleife (loop) finden
# Python for Everybody 2:39:22

anfangswert = -1
print("Vorher", anfangswert)
for nummer in [9, 41, 12, 3, 74, 15] :
    if nummer > anfangswert :
        anfangswert = nummer
    print(anfangswert, nummer)
print("Nachher", anfangswert)

Dieses Python-Skript findet den größten Wert in einer Liste von Zahlen und gibt ihn aus. Es verwendet eine Schleife (for-Schleife) und eine bedingte Anweisung (if-Anweisung), um den größten Wert zu finden.

Das Skript initialisiert eine Variable anfangswert mit dem Wert -1 und gibt diesen Wert zu Beginn aus. Dann wird die for-Schleife verwendet, um jede Zahl in der Liste [9, 41, 12, 3, 74, 15] zu durchlaufen.

Innerhalb der Schleife wird überprüft, ob die aktuelle Zahl größer ist als der anfangswert. Wenn ja, wird der Wert der Variablen anfangswert durch den Wert der aktuellen Zahl ersetzt.

Nachdem die Schleife beendet ist, wird der größte Wert in der Liste ausgegeben.

Ähnliches Thema:

Ausführen eines Python-Programms direkt aus Notepad++ auf Windows
Notepad++ für Python anpassen und Python direkt aus Notepad++ ausführen – 22.03.2023: Notepad++ ist ein kostenloser Texteditor, der universell als IDE für viele Programmiersprachen genutzt werden kann, um damit Skripte zu erstellen. Er lässt sich speziell für Python anpassen. Zudem lässt sich der Python-Interpreter mit einer Tastenkombination direkt aus Notepad++ aufrufen. Insbesondere wird darauf eingegangen, was alles zu beachten ist, damit auf Windows editierte Python-Skripte auch auf Linux laufen. – weiter