**Dies ist eine alte Version des Dokuments!**
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:
- Versuche Probleme zuerst selbst zu lösen: Tutorials, Foren, YouTube, …
- Hacke nicht blind drauf los, mache zuerst einen Plan, z.B. auf Papier. Stelle sicher, dass du die Algorithmen dahinter verstehst.
- Verwende beim Entwickeln ständig den Debugger
- Arbeite mit Git und GitHub. Committe und pushe regelmässig.
- 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
Falls dies nicht funktionieren sollte, kannst du auch den entsprechenden Pfad zur exe-Datei von Python angeben:
PATH\python.exe -m pip install numpy
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:
- Variablen & Funktionen:
snake_case
(lauter Kleinbuchstaben, keine Leerschläge, stattdessen Underlines) - Konstanten ('Variablen', deren Wert man nicht ändert, z.B. PI):
UPPER_CASE
- Klassen:
UpperCamelCase
- Leerzeichen vor und nach Operator:
if x == 42
anstelle vonif x==42
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:
- Continue [F5]: Code ausführen, weiter laufen lassen (bis zum nächsten Breakpoint)
- Step over [F10]: Führe Code einen Schritt weiter aus. Funktionen werden einfach ausgeführt, ohne dass in die Definition der Funktion hineingesprungen wird.
- Step into [F11]: Springe in Definition der Funktion
- Step out [Shift + F11]: Springe aus Definition der Funktion hinaus
- Restart [Ctrl + Shift + F5]: Starte Code neu
- Stop [Shift + F5]: Stoppe Code
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:
- Command Palette: Ctrl+Shift+P
- Zeige/Verstecke Sidebar: Ctrl+B
- Kommentieren: Ctrl+K Ctrl+C
- Kommentieren aufheben: Ctrl+K Ctrl+U
- 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:
- VSCode öffnen / Datei / Ordner Öffnen / zu Ordner navigieren und öffnen
- Terminal öffnen / mit cd in Ordner navigieren / VSCode öffnen mit code .
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 Weitere VSCode Dinge
2.7.1 Mehr zu Shortcuts
VS Code allgemein
- Neues Fenster von VS Code: Ctrl+Shift+N
- Einstellungen öffnen: Ctrl+, (Komma)
- Keyboard Shortcuts anzeigen: Ctrl+K Ctrl+S
- Zeige Explorer: Ctrl+Shift+E
- VS Code im Terminal öffnen: in Terminal:
code .
Coding
- Linie duplizieren: Shift+Alt+Up (duplizieren nach oben), Shift+Alt+Down (nach unten)
- Multi-line Edits: Bearbeite mehrere Zeilen gleichzeitig:
- Alt gedrückt: kann Cursor an mehreren Orten setzen $\rightarrow$ mehrere Zeilen gleichzeitig bearbeiten
- Shift+Alt+I: setzt Cursors an Ende aller selektierter Zeilen
- Shift+Alt+I 2x Home: setzt Cursors an Anfang aller selektierter Zeilen
- Esc: Multi-line Edit beenden
Weitere Tipps und Links
- Möchtest du weitere Shortcuts lernen, so kannst du dir hier eine Übersicht verschaffen:
- Mehr Infos zu Key Bindings findest du auch hier: https://code.visualstudio.com/docs/getstarted/keybindings
- Falls du die Key Bindings selbst editieren möchtest, öffne den Shortcut-Edior: Ctrl+K Ctrl+S
- Falls du dir einen anderen Editor wie Sublime Text gewohnt bist, kannst du eine entsprechende Extension installieren, die dessen Key Bindings übernimmt.
2.7.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:
- New global snippet file: Snippets für allen Projekte, kann Snippets für allen Programmiersprachen in einem File definieren
- New snippet file for '…': Snippets für das aktuelle Projekt
- wähle Programmiersprache aus: globale Snippets aber separates File für alle Programmiersprachen (empfohlen)
Sobald man eine dieser Möglichkeiten auswählt, wird ein entsprechendes File erstellt. Darin findet man Anweisungen, wie Snipptes zu definieren sind.