Inhaltsverzeichnis

Python & VSCode Setup

Im Grundlagenfach Informatik hast du die Basics der Programmierung in der Sprache Python bereits erlernt. Dazu hast du die Programmierumgebung (engl. IDE) TigerJyton verwendet. Für das Grundlagenfach ist TigerJython eine gute Wahl, da es sehr einfach ist. Für die TALIT ist es aber viel zu limitiert, weshalb wir mit richtigem Python arbeiten. Dazu musst du Python auf deinem Rechner installieren. Weiter brauchst du eine Programmierumgebung, mit der du deine Codes schreiben und ausführen kannst. Wir wählen dazu Visual Studio Code oder kurz VSCode.

Informationen zu Installation und Setup von Python und VSCode findest du in den beiden grossen Kapiteln unten. Bevor wir aber dazu kommen …

Meine Top-5 Tipps zum Python Programmieren in VSCode:

  1. Versuche Probleme zuerst selbst zu lösen: Tutorials, Foren, YouTube, …
  2. Hacke nicht blind drauf los, mache zuerst einen Plan, z.B. auf Papier. Stelle sicher, dass du die Algorithmen dahinter verstehst.
  3. Verwende beim Entwickeln ständig den Debugger
  4. Arbeite mit Git und GitHub. Committe und pushe regelmässig.
  5. Verwende die Command Palette in VSCode.

1. Python Setup

1.1 Python Versionen

Von Python gibt es viele verschiedenen Versionen und regelmässig kommen weitere dazu. Stand 2. Februar 2022 ist die aktuellste Version Python 3.10.2. Eine Python-Installation kann man nicht einfach updaten, stattdessen lädt man einfach die neuste herunter und installiert diese. Braucht man eine alte Version nicht mehr, so kann man diese löschen.

Neue Versionen bringen aber oft Probleme. Verwendest du in einem Projekt Python-Module von Drittanbietern, so kann es sein, dass diese noch nicht kompatibel sind mit den neueren Versionen. Beispiel: In der TALIT werden wir irgendwann mit dem Module PyGame arbeiten, mit welchem man Retro-Games programmieren kann. Dieses hinkt in der Entwicklung den neusten Python-Versionen immer hinterher. Aus diesem Grund habe ich auf meinem Computer immer noch eine Installation von Python 3.7.8, da mit dieser alles bestens funktioniert. Und dabei belasse ich es vorerst - never change a winning team!

Achtung: Es gibt immer noch Dinosaurier, die auf Python 2.7 schwören. Lasse die Finger davon, die Zeiten von Python 2 sind vorbei!

1.2 Installation

Python ist auf Macs bereits vorinstalliert, allerdings nicht die aktuellste Version (was kein Problem ist).

Um eine bestimmte Python-Version zu installieren, gehe auf https://www.python.org/downloads/, lade die gewünschte (wahrscheinlich die neuste?) Version von Python 3 hinunter und installiere diese. Wähle bei der Installation die Option Add Python 3… to PATH an.

Um sicherzustellen, dass Python korrekt installiert wurde, öffne das Terminal und tippe python. Du siehst dann, welche Version von Python genau installiert wurde und du kannst gleich im Terminal mit Programmieren loslassen. Möchtest du Python wieder schliessen, tippe exit().

Tipp für Pros: Du kannst Virtual Environments verwenden, um verschiedene Python-Installationen besser zu handeln.

1.3 Installation von Python Modulen

Für Python gibt es eine Vielzahl hervorragender Module von Drittanbietern für verschiedene Anwendungen wie: Mathematik, künstliche Intelligenz, statistische Auswertungen, Retro-Games, … Bisher hast du allerdings nur die Grundfunktionalitäten von Python installiert. Möchtest du weitere Module verwenden, so musst du diese explizit herunterladen. Dazu verwenden wir das Paketverwaltungsprogramm pip, was für pip installs packages steht (Das ist Informatikerhumor, ich kann da nichts dafür!).

Um Module wie z.B. numpy (für Mathe) zu Installieren, tippe im Terminal einfach

pip install numpy

Möchtest du alle installierten Module, sowie deren Version einsehen, tippe

pip freeze

Um ein Modul, z.B. numpy zu deinstallieren, tippe

pip uninstall numpy

Falls du mehrere Versionen von Python installiert hast und für eine bestimmte Version ein Modul (de)installieren möchtest, musst du noch die Python-Version angeben:

python -VERSION -m pip install PACKAGE # allgemeiner Befehl
python -3.7 -m pip install numpy # konkretes Programm

Probleme?

Falls dies nicht funktionieren sollte, kannst du auch den entsprechenden Pfad zur exe-Datei von Python oder die Python-Version angeben (einfach ausprobieren, etwas davon sollte funktionieren):

PATH\python.exe -m pip install numpy
py -3.10 -m pip install numpy

Es kann auch sein, dass man anstelle von pip etwas wie pip3.10 schreiben muss. Die Zahl (z.B. 3.10) entspricht der Python-Version, für welche man etwas installieren möchte.

1.4 Programmier-Konventionen

In jeder Programmiersprache gibt es Konventionen darüber, wie man Funktionen, Variablen usw. benennt. Halt dich an diese!

Die wichtigsten Konventionen sind folgende:

  1. Variablen, Funktionen, Methoden: snake_case (lauter Kleinbuchstaben, keine Leerschläge, stattdessen Underlines)
  2. Konstanten ('Variablen', deren Wert man nicht ändert, z.B. PI): UPPER_CASE
  3. Klassen: UpperCamelCase
  4. Leerzeichen vor und nach Operator: if x == 42: anstelle von if x==42:

Hier findest du ausführliche Erklärungen der Konventionen:

2. Visual Studio Code

Das Visual Studio Code oder kurz VSCode oder VSC ist ein mächtiger Editor, der gratis heruntergeladen werden kann. Durch das Installieren nützlicher Extensions wird er zu einer mächtigen Programmierumgebung - und dies nicht nur für Python, sondern für die meisten gängigen Programmiersprachen.

2.1 Installation

Downloade und installiere VS Code: https://code.visualstudio.com/. Achte dabei auf folgende Punkte: * Aktion „Mit Code öffnen“ dem Dateikontextmenu von Windows-Explorer hinzufügen * Aktion „Mit Code öffnen“ dem Verzeichniskontextmenu von Windows-Explorer hinzufügen * Zu PATH hinzufügen

Auch empfohlen ist die Option: * Code als Editor für unterstützte Dateitypen registrieren

Diese Option macht VS Code zu deinem Standardeditor. Entscheide selbst ob du dies möchtest. Mein Tipp: Mache es, VS Code ist wirklich toll!

2.2 Extensions

Extensions sind Tools, die einem das Leben erleichtern sollen. Entwickelt man Python Programme, so lohnt es sich, einige Python-Extensions zu installieren. Klicke links auf Extensions (Ctrl+Shift+X) und tippe einen Suchbegriff, z.B. Python ein. Programmiert man mit Python, sollte man auf jeden Fall die Extension Python (IntelliSense, Linting, Debugging …) von Microsoft installieren. Du kannst auch gerne weitere Extensions ausprobieren und recherchieren, was es für neue Extensions gibt.

2.3 Debugger

Man kann Breakpoints setzen, um den Code an beliebigen Punkten anzuhalten. Dies ist besonders geeignet, um Bugs ausfindig zu machen und zu beheben. Es ist auch sehr nützlich, um grosse und komplizierte Programme zu verstehen, in dem man deren Logik Schritt für Schritt folgt.

VS Code hat einen integrierten Debugger. Öffne diesen, in dem du links auf das Käfersymbol (bug) klickst.

Einen Breakpoint setzen geht wie folgt: Klicke im Code links von der Zeilennummer. Der Breakpoint wird mit einem roten Punkt gekennzeichnet.

Wichtige Key-Commands:

2.4 Key Bindings / Shortcuts

Top-5 Shortcuts

Es lohnt sich sehr, die wichtigsten Key Bindings (auch Shortcuts oder Key commands) eines Editors zu lernen. Die Top-5 Shortcuts sind folgende, du musst sie auswendig können:

  1. Command Palette: Ctrl+Shift+P
  2. Zeige/Verstecke Sidebar: Ctrl+B
  3. Kommentieren: Ctrl+K Ctrl+C
  4. Kommentieren aufheben: Ctrl+K Ctrl+U
  5. Word Wrap ein/aus: Alt+Z (lange Linien auf mehreren Zeilen anzeigen)

Command Palette

Der allerwichtigste Befehl ist der erste für die Command Palette! Vergisst du diesen, so verlierst du deine Ehre als TALIT. Diese kann nur mit einer feinen Tafel Schoggi an die Lehrperson zurückgekauft werden! Über die Command Palette kannst du auf sämtlichen Funktionalitäten von VSCode zugreifen. Möchtest du die Einstellugen (Settings) anpassen? Öffne die Command Palette und tippe die ersten Buchstaben von 'Settings'. Mit den Pfeiltasten und Enter kannst du dann die Einstellungen auswählen, die du editieren möchtest.

Falls du weitere Shortcuts lernen möchtest (gute Idee!), so studiere doch das Kapitel dazu weiter unten.

2.5 Globale Einstellungen

In VSCode kann praktisch alles an deine Bedürfnisse und an deinen Workflow eingestellt und angepasst werden. Öffne dazu über die Command Palette die globalen Settings Einstellungen: Einstellungen öffnen (JSON). Dies ist ein einfaches Textfile im JSON-Format, in welches du deine Einstellungen hineinschreiben kannst. Stelle die Einstellungen hier so ein, dass sie optimal zu deinem Workflow passen.

Ich kann die folgenden Empfehlungen empfehlen:

{
    // EDITOR SETTINGS
    "editor.mouseWheelZoom": true,
    "editor.tabSize": 4,
    "editor.insertSpaces": true,
    "editor.fontSize": 12,
    "editor.renderWhitespace": "none",
    "editor.wordWrap": "on",
 
    // TELEMETRY: USER DATA
    "telemetry.enableCrashReporter": false,
    "telemetry.enableTelemetry": false,
 
    // PYTHON
    // set path do default python installation, relevant if have multiple versions installed
    "python.pythonPath": "path/to/python/installation",
}   

2.6 Python-Code ausführen

Erstelle einen Ordner, in den du dein Python-File ablegen möchtest. Öffne den Ordner in VSCode, dazu hast du zwei Optionen:

Im Explorer auf der linken Seite kannst du nun ein File erstellen (Icon mit Blatt und Plus). Nenne das File z.B. hello_world.py. Wichtig: .py Extension für Python-Code!

Schreibe deinen Python-Code in dieses File, z.B.

print("Hello World!")

Nun möchten wir das Programm ausführen. Klicke dazu in der Sidebar (CTRL+B) auf das Symbol mit dem Dreieck und dem Bug (Ausführen und Debuggen). Klicke auf erstellen Sie eine launch.json Datei und wähle Python File. In deinem Ordner hat es einen versteckten Ordner .vscode mit der Datei launch.json drin erstellt, welches folgenden Inhalt hat:

{
    // Verwendet IntelliSense zum Ermitteln möglicher Attribute.
    // Zeigen Sie auf vorhandene Attribute, um die zugehörigen Beschreibungen anzuzeigen.
    // Weitere Informationen finden Sie unter https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Python: Aktuelle Datei",
            "type": "python",
            "request": "launch",
            "program": "${file}",
            "console": "integratedTerminal"
        }
    ]
}

Un diesem File kannst du nun den Debugger konfigurieren und zwar für das aktuelle Projekt. Zum Beispiel kannst du hier einstellen, ob du ein integriertes oder ein externes Terminal haben möchtest:

Integrated vs. external Terminal

Von TigerJython bist du dir ein integrated Terminal gewohnt, das heisst das Terminal ist ein fixes Fenster, welches Teil der Entwicklungsumgebung ist. Per default ist auch VSCode so eingestellt. Je nach Projekt ist aber ein external Terminal praktischer. Hier wird jedes Mal, wenn der Code ausgeführt wird, ein neues Terminal geöffnet, welches dann wieder geschlossen werden muss. Passe dazu das launch.json File an:

    ...
    "console":"externalTerminal"
    ....
Lokale Einstellungen für Arbeitsbereich

Oben haben wir gesehen, wie man globale Einstellungen vornehmen kann. Ähnlich kann man auch lokale Einstellungen vornehmen, also Einstellungen, die nur für den jeweiligen Ordner gelten. Auf diese greifst du wie folgt zu: Command Palette / Einstellungen: Arbeitsbereicheinstellungen öffnen (JSON). Dies erstellt dir parallel zu launch.json ein File settings.json im Ordner .vscode hinzu.

Python Pfad

Zum Beispiel kannst du angeben, welche Python Version für das aktuelle Projekt verwendet werden soll. Füge dazu folgende Zeile dem settings.json File hinzu:

    ....
    "python.pythonPath": "path/to/python/installation"
    ....

Diese Arbeit kann aber auch VSCode für dich übernehmen: Klicke dazu unten linke in VSCode auf Python [VERSION-NR] 64-Bit. Nun sollten dir alle installierten Python Versionen angezeigt werden. Wähle eine aus. Diese sollte dann automatisch in settings.json hineingeschrieben worden sein.

Konkretes Beispiel: Du arbeitest parallel an zwei Projekten in zwei separaten Ordnern: Für dein Mathe-Projekt möchtest du die neuere Version Python 3.10 verwenden. Für dein Retro-Game-Projekt mit PyGame möchtest du Python 3.7.8 verwenden. In beiden Ordnern hat es ein eigenes launch.json File, welche den Pfad zur jeweiligen Python-Installation beinhaltet.

Ausführende Python-Version anzeigen

Falls du dir nicht sicher bist, ob obige Einstellungen zur richtigen Python-Version richtig funktioniert haben, kannst du ausgeben, mit welcher Version ein Python-Programm ausgeführt wird. Füge dazu oben in deinem Code die folgenden zwei Zeilen hinzu:

import sys
print(sys.executable)
...

2.7 Jupyter in VSCode

# %% [markdown]
"""
# Jupyter in VSCode
"""
# %%
x = 7
print(2*x)
# %%

2.8 Weitere VSCode Dinge

2.8.1 Mehr zu Shortcuts

VS Code allgemein
Coding

2.8.2 Code Snippets

Code Snippets sind kleine Code Templates (also Vorlagen), die man immer wieder braucht.

Vordefinierte Snippets

Viele Snippets kommen bereits mit installierten Extensions daher. Hat man Python eingerichtet und tippt z.B. ifel, so erscheint ein Hinweis, dass ein if/else Snippet existiert. Mit Ctrl+Space kann man das Snippet dann anzeigen und mit Enter einfügen. Im Code wird dann die Struktur eines if-else Blocks eingefügt:

snippet.python
if condition:
    pass
else:
    pass

Diesen kann man dann entsprechend anpassen.

Selbst definierte Snippets

Man kann auch selbst Snipptes definieren:

CP / Preferences: Configure User Snippets

Dann muss man sich für den Snippet-Typ entscheiden:

Sobald man eine dieser Möglichkeiten auswählt, wird ein entsprechendes File erstellt. Darin findet man Anweisungen, wie Snipptes zu definieren sind.