Deutsch / Englisch

Python Kurzversion (Cheat Sheet)

Allgemein nützliches für Textdateien (nicht nur in Python)

Teilweise sind die Tipps Windows-spezifisch aber analoges gilt für alle anderen Betriebssysteme

Folgende Tastaturkürzel helfen bei der Arbeit:

klammergriff
Mögliche Handhaltung

Strg+c Kopieren
Strg+v Einfügen
Strg+x Ausschneiden

Strg+z Letzten Schritt rückgängig machen

In den meisten Programmeditoren aber auch in anderen Anwendungen gilt:
Strg+s Speichern
Strg+f Suchen
Strg+coderStrg+q werden manchmal zum Abbrechen eines Vorgangs verwendet.

In Windows kann mit Alt+Tab kann zwischen Fenstern gewechselt werden.

Mit den Pfeiltasten kann man sich in Textdateien bewegen, zuerst muss aber eine Zeile vorhanden sein.
Man kann nicht in eine nicht existierende Zeile wechseln.
Eventuell muss diese vorher mit der Eingabetaste erzeugt werden.

Die Tasten Pos1, Ende springen zum Beginn oder Ende der Zeile.

Page up, Page down
helfen beim schnellen Durchlaufen einer größeren Datei.

Str+Pfeil rechts
Str+Pfeil links
springen um jeweils ein Wort weiter.

tastatur

Sehr empfehlenwert sind auch folgende Kürzel:
Fenster+e öffnet einen Datei-Expolorer.
Fenster+r öffnet den Run-Dialog und nach Eingabe von "cmd" und Enter öffnet sich die Windows-Kommandozeile.
Str++undStr+- Ein- und Auszoomen im Webbrowser.

Noch einfügen:
Markieren von Text mit der Maus.
Markieren von Text mit Pfeiltasten und Umschalt (Shift) Taste und Str-Taste.
Markieren von Text durch Doppelklick (Wort oder Zeile).
Einfügemarke: links oder rechts löschen.

Grundsätzliches

Python Programmdateien enden mit ".py"
Die Python Standard-Entwicklungsumgebung (IDE) heißt IDLE.
In IDLE startet man ein Programm mit F5.

Öffnet und startet man ein Pythonprogramm dann sind 3 Fenster vorhanden
  1. der Quellcode
  2. das Anwendungsfenster: hier läuft das Programm ab
  3. eine Python-Shell, wo alle print()-Ausgaben und eventuelle Fehlermeldungen angezeigt werden
Mit Alt+tab wechselt man zwischen den Fenstern. Schließen kann man sie unter Windows mit Alt+F4 oder mit dem "x" rechts oben..
(Für andere Betriebssysteme gibt es gleichbedeutende Shortcuts)

Achtung! Python-Programme dürfen nicht die gleichen Namen erhalten wie verwendete Python-Module.
Zum Beispiel führt eine selbst erstellte Programmdatei "turtle.py" zu einem Fehlerhalten.
Leider erhält man in dem Fall keine Fehlermeldung.

Die wichtigsten Eigenschaften von Python vorab in Kürze

Grundlegende Datentypen

Operatoren

Die wichtigsten Operatoren in absteigender "Operatorrangfolge" (Priorität).

**Potenz
*, /, //, %Multiplikation, Division, ganzzahlige Division, Modulo
+, -Addition, Subtraktion
<, <=, >, >=, !=, ==Vergleich
notlogisches "nicht"
andlogisches "und"
orlogisches "oder"

Achtung! Überladen von Operatoren (operator overloading):
Für verschiedenen Datentypen können Operatoren verschiedene Bedeutung haben.
Beispiele:
+: Addition bei Zahlen, Verkettung (Konkatenation) bei Zeichenketten und Listen
*: Multiplikation bei Zahlen, Duplizierung bei Zeichenketten
<: numerischer Vergleich bei Zahlen, alphabetischer Vergleich bei Zeichenketten

if

Die elif-Klausel darf mehrfach vorkommen: if <Bedingung>: <Anweisungsblock> oder: if <Bedingung>: <Anweisungsblock> elif <Bedingung>: <Anweisungsblock> oder: if <Bedingung>: <Anweisungsblock> [elif <Bedingung>: <Anweisungsblock>] else: <Anweisungsblock>
# Beispiel: temp = int(input("Wie kalt ist es heute?: ")) if temp < 0: print("Vorsicht Glatteis!") elif temp > 0: print("Heute sicher kein Glatteis.") else: print("Es hat genau Null Grad.")

for-Schleifen

for <Variable> in range(<Zahl>): <Anweisungsblock> oder: for <Variable> in <Liste>: <Anweisungsblock>
# Ausgabe der Zahlen 0,1,2,...,9: for i in range(10): print(i) # Ausgabe aller Listenelemente: fruechte = ["Apfel", "Orange", "Banane"] for element in fruechte: print(element)

while-Schleifen

while <Bedingung>: <Anweisungsblock>
# Beispiel: i = 0 while i < 10: # Schleifenbedingung print(i) i=i+1 # Wichtig für Abbruchbedingung # Endlosschleife: while True: print(".", end="")

break

Eine break-Anweisung verlässt eine aktive Schleife und setzt hinter der Schleife weiter fort. Befindet sich die Ausführung in einer geschachtelten Schleife, so wird nur die innere Schleife verlassen.
# Das Programm bildet die Summe der eingegebenen Zahlen sum = 0 while True: input_text = input("Bitte gib eine ganze Zahl ein ('q' für Ende): ") if input_text == "q": break sum = sum + int(input_text) print("Summe:", sum)

Listen

Listen sind ein wichtiger höherer Datentyp Listenliteral: [<Elementliste>] Zugriff auf Elemente über Index. Achtung: erstes Element hat Index 0. Letztes Element kann mit Index -1 angesprochen werden, vorletztes mit -2, ... Die Länge der Liste kann mit der eingebauten Funktion len() ermittelt werden. list.append(x) Fügt ein Element am Ende der Liste hinzu. list.insert(i, x) Fügt ein Element an der Postition i hinzu. Zum Beispiel insert(0, x) fügt an der ersten Stelle hinzu. list.remove(x) Entfernt das Element mit dem Wert x von der Liste. Führt zu Fehler wenn dieses Element nicht vorhanden list.pop(i) Entferne das Element an Position i und liefere es zurück. Ohne i bezieht sich die Methode auf das letzte Element. list.index(x) Liefert die Postition des Elements mit dem Wert x. Führt zu Fehler wenn dieses Element nicht vorhanden list.count(x) Liefert als Ergebnis wie oft das Element mit dem Wert x in der Liste vorkommt. list.sort(cmp=None, key=None, reverse=False) Sortiert die Liste. list.reverse() Kehrt die Liste um. Gemischte Listen sind erlaubt: ["abc", 3, 3.14, True] Insbesondere auch geschachtelte Listen: [[1,3], [2,4,1], [5]]
haustiere = ["Katze","Hund","Hamster","Goldfisch","Hase"] print(haustiere[2]) for haustier in haustiere: print(haustier) print(len(haustiere)) haustiere.append("Kaninchen") haustiere.insert(0, "Schildkröte") print(haustiere) haustiere.remove("Schildkröte") print(haustiere) haustiere.pop() print(haustiere) print(haustiere.index("Hamster")) print(haustiere.count("Hamster")) haustiere.sort() print(haustiere) haustiere.reverse() print(haustiere)
Ausgabe:
>>> Hamster Katze Hund Hamster Goldfisch Hase 5 ['Schildkröte', 'Katze', 'Hund', 'Hamster', 'Goldfisch', 'Hase', 'Kaninchen'] ['Katze', 'Hund', 'Hamster', 'Goldfisch', 'Hase', 'Kaninchen'] ['Katze', 'Hund', 'Hamster', 'Goldfisch', 'Hase'] 2 1 ['Goldfisch', 'Hamster', 'Hase', 'Hund', 'Katze'] ['Katze', 'Hund', 'Hase', 'Hamster', 'Goldfisch'] >>>

Funktionen

Man unterscheidet zwischen Funktionen mit oder ohne Übergabeparameter und zwischen Funktionen mit oder ohne Rückgabewert. Funktionen mit Rückgabewert enthalten eine return-Anweisung. def <Funktionsname>(<Parameterliste>): <Anweisungsblock>
def squared(x): return x * x

Modulimport

Im Wesentlichen gibt es 2 Arten des Modulimports Im ersten Fall muss der Modulname bei Verwendung der Methode nicht vorangestellt werden. Das verkürzt den Programmcode etwas. Im zweiten Fall muss der Modulname bei Verwendung der Methode vorangestellt werden. Dadurch kann es zu keinen Namenskollisionen (mit eigenem Code oder anderen Modulen) kommen.
# '*' importiert alle Methoden, man kann aber auch Methoden # selektiv (Namen getrennt durch Komma) importieren from random import * print(randrange(0, 10)) # Liefert eine Zahl von 0 bis 9
oder
import random print(random.randrange(0, 10)) # Liefert eine Zahl von 0 bis 9

Zufallszahlen

Das random-Modul stellt Funktionalität für Zufallszahlen zur Verfügung: random.randrange(stop) Liefert eine Zufallszahl zwischen 0 (inklusive) und stop (exklusive). random.randrange(start, stop) Liefert eine Zufallszahl zwischen start (inklusive) und stop (exklusive). etwas veraltet: random.randint(x, y) gleichbedeutend wie random.randrange(x, y + 1) random.random() Liefert eine Fließkommazahl im Bereich [0.0, 1.0). (inkl. 0 exkl. 1) random.uniform(a, b) Liefert eine Fließkommazahl aus dem Bereich [a, b). (inkl. a exkl. b) random.choice(seq) Liefert ein zufälliges Element aus der nicht-leeren Folge "seq". Übergabe einer leeren Folge führt zu einem Fehler. ...
from random import * print(random()) # Liefert eine Fließkommazahl x, 0.0 <= x < 1.0 print(uniform(1, 10)) # Liefert eine Fließkommazahl x, 1.0 <= x < 10.0 print(randint(1, 10)) # Liefert eine ganze Zahl von 1 bis 10 inklusive print(randrange(0, 10)) # Liefert eine Zahl von 0 bis 9 print(randrange(0, 101, 2)) # Liefert eine gerade Zahl von 1 bis 100 print(choice('abcdefghij')) # Liefert ein zufälliges Element items = [1, 2, 3, 4, 5, 6, 7] shuffle(items) # Mischt die Liste print(items)
Ausgabe
>>> 0.8737058464500848 7.585665303116635 4 7 0 c [2, 3, 5, 1, 4, 7, 6] >>>

Uhrzeit, time-Module

Siehe auch: http://strftime.org/ https://docs.python.org/2/library/datetime.html time.gmtime() Liefert die aktuelle Zeit bezogen auf Greenwich Mean Time. Zur Ausgabe muss diese Zeit erst mit strftime() in eine Zeichenkette umgewandelt werden. time.localtime() So wie gmtime() aber die Zeitangabe entspricht der lokalen Zeitzone und berücksichtigt auch Sommerzeit. time.strftime(format[, t])¶ Konvertiert eine Uhrzeit t (so wie sie von gmtime() oder localtime() zurückgeliefert wurde) in eine Zeichenkette (gemäß der übergebenen Zeichenkette format). Wenn t nicht übergeben wurde, wird die lokale Systemzeit verwendet.
from time import strftime, gmtime, localtime # selektiver Import # GMT, 24-Stunden-Format print("aktuelle Zeit:", strftime("%d.%m.%Y %H:%M", gmtime())) # Lokale Zeit, 24-Stunden-Format print("aktuelle Zeit:", strftime("%d.%m.%Y %H:%M", localtime())) # Lokale Zeit, 12-Stunden-Format print("aktuelle Zeit:", strftime("%d.%m.%Y %I:%M", localtime()))
Ausgabe
>>> aktuelle Zeit: 11.10.2018 17:35 aktuelle Zeit: 11.10.2018 19:35 aktuelle Zeit: 11.10.2018 07:35 >>>

math-Modul

Hier finden sich eine Reihe von nützlichen mathematischen Funktionen und Konstanten. Quadratwurzel von x: math.sqrt(x) Umwandlung: radians(), degrees() Kreiszahl pi, Eulersche Zahl e sin(), cos(), tan(), asin(), acos(), atan(), log(), log10(), pow(), ...
from math import * print(sqrt(9)) print(pi) print(sin(pi/2)) print(sin(radians(90)))
Ausgabe:
>>> 3.0 3.141592653589793 1.0 1.0 >>>

Turtle Programmierung

Die wichtigsten Turtle-Befehle:
setup(Breite,Höhe)Legt ein Fenster dieser Größe an
fd(Strecke) (forward)Die Schildkröte bewegt sich um "Strecke" nach vorne.
bk(Strecke) (back)Die Schildkröte bewegt sich um "Strecke" rückwärts.
lt(Winkel) (left)Die Schildkröte dreht sich um "Winkel" nach links.
rt(Winkel) (right)Die Schildkröte dreht sich um "Winkel" nach rechts.
pu() (pen up)Die Schildkröte hebt den Zeichenstift an (und schreibt nicht mehr).
pd() (pen down)Die Schildkröte senkt den Zeichenstift (und schreibt wieder).
pensize(Breite)setzt die Stiftdicke auf "Breite".
pencolor(Farbe)setzt die Stiftfarbe auf "Farbe".
shape(Form)setzt die Form der Schildkröte (‘arrow’,‘classic’,‘turtle’,‘circle’).
home()Schildkröte kehrt nach (0,0) zurück (Mitte des Zeichenblatts).
clear()Löschen der Zeichnung, Schildkröte ändert Zustand nicht.
reset()Löschen der Zeichnung, Schildkröte geht in Ausgangszustand.
setup(Breite, Hoehe)Fenster mit "Breite", "Hoehe" erzeugen.
heading()In welche Richtung schaut die Schildkröte? (3-Uhr-Position = 0)
setheading(Winkel)Drehe die Schildkröte in Richtung "Winkel" (3-Uhr-Position=0).
goto(x, y)Bewege die Turtle zur Position x, y.
(Falls pen=down wird auch gezeichnet. Ändert die Orientierung nicht.)
dot(size, color)Zeichnet einen Kreis der Größe "size" und der Farbe "color"
an der aktuellen Position.
from turtle import * setup(400,400) # Legt ein Fenster dieser Größe an shape('turtle') # Zeigt die Schildkröte fd(50) # 50 Einheiten nach vorn lt(90) # Dreht um 90 Grad nach links pencolor('red') # Stiftfarbe ist ab jetzt "rot" fd(70) lt(90) fd(110) pencolor('blue') # Stiftfarbe ist ab jetzt "blau" rt(90) # Dreht um 90 Grad nach rechts bk(100) # Fährt 100 Einheiten zurück pu() # pen up: Hebt den Stift ab lt(45) bk(50) pd() # pen down: Senkt den Stift ab pensize(5) # Ändert Stiftgröße auf 5 bk(70) pensize(1) home() # Geht zum Ursprung