Diese Lektion beinhaltet ein paar Fakten über die Sprache Python, die wir in früheren Lektionen ausgelassen haben.
print
Optionen
Bis jetzt haben wir als einzige Möglichkeit zur Ausgabe die print()
Funktion kennengelernt. Sie gibt normalerweise mehrere Elemente in einer Zeile aus und trennt die Elemente durch Leerzeichen. Es ist aber so, dass print()
ein paar Schlüsselwort-Argumente akzeptiert, die du nutzen kannst, um dieses Verhalten nach deinen Bedürfnissen zu modifizieren.
- Um die Elemente nicht mit einem Leerzeichen sondern mit einem anderen String
S
zu trennen, gib das Argumentsep = «S»
an. - Um nach der Ausgabe aller Elemente statt eines Zeilenwechsels einen anderen String
S
auszugeben, verwende das Argumentend = «S»
.
Diese neue Eigenschaft, die wir Schlüsselwort-Argumente nennen (engl: keyword arguments), ist am einfachsten mit ein paar Beispielen zu demonstrieren.
Diese Schlüsselwort-Argumente müssen am Ende der Argumentliste stehen, oder ein error wird auftreten. Die Reihenfolge der Schlüsselwort-Argumente untereinander ist aber egal.
Zulässige Variablen-/Funktionennamen
- Namen können Buchstaben, Zahlen und den Unterstrich (
_
) enthalten. - Das erste Zeichen jedes Namen muss ein Buchstabe sein.
- Python unterscheidet zwischen Groß- und Kleinbuchstaben.
So ist my_3rd_int
ein zulässiger Variablenname, aber 3rd_int
ist keiner.
Absteigende for
Schleifen & andere Abstufungen
Erinnere dich daran, dass wir gezeigt haben, wie for
Schleifen Zahlen in aufsteigender Reihenfolge durchgehen können:
Oft ist es notwendig, eine for
Schleife zu schreiben, die die Zahlen in absteigender Reihenfolge durchläuft (von der größten zur kleinsten Zahl). Um dies zu machen, rufen wir range
auf, zusammen mit einem dritten Argument, das step genannt wird:
Wenn du kurz nachdenkst, fällt dir sicher auf, dass range(0, 5)
das gleiche ist wie range(0, 5, 1)
: die Standardabstufung ist 1. In beiden Fällen solltest du sicher stellen, dass range(start, stop, step)
nur gerade so weit geht, bis kurz bevor es den Wert stop
erreicht. Wenn du mehr Informationen brauchst, schaust du dir am besten das Python manual an.
In ähnlicher Weise kannst du string[x:y:-1]
verwenden, um einen umgekehrten Teil eines Strings zu erhalten, oder string[x:y:2]
, für den Substring mit den Zeichen x, x+2, x+4, ...
Mit einer for
Schleife ist reversed(range(x, y))
eine andere Möglichkeit, eine absteigende Reichweite zu erreichen, die von y-1
bis x
in absteigender Reihenfolge geht.
Kleineren Code schreiben
Python bietet unterschiedliche Möglichkeiten, um kürzeren Code zu schreiben; wir führen hier ein paar davon ein.
Auf dieser Seite werden wir nicht immer diese Eigenschaften benutzen, da es manchmal dazu führt, dass Code schwerer zu lesen ist. |
Übertragungs-Operatoren
Python erlaubt es dir, "x += 1
" zu schreiben, was bedeutet "füge eins zu x
hinzu." Es ist gleichwertig mit "x = x + 1
" wie wir unten zeigen:
Gleichermaßen gibt es Operatoren für die Division von ganzen Zahlen (//=
), Teilungsrest (%=
), und Potenz (**=
).
Inline Blöcke
Wir haben mehrere Statements gesehen, auf die eingerückte "Blöcke" von Code folgen: for
, if
, else
, elif
, while
, und def
, zum Beispiel:
if x==y: «block» #indented, multilineIm Sonderfall. dass
«block»
nur eine Zeile lang ist, erlaubt es Python, die folgende alternative Syntax zu verwenden:
if x==y: «block» #single lineHier ist ein Beispiel:
Dies hat allerdings Grenzen: ein zusammenhängender Block mit einem Doppelpunkt (if
, for
, etc) kann nicht als Inline Block verwendet werden. Zum Beispiel, if 2>1: if 4>3: print()
ergibt einen Syntaxfehler.
Mehrere Aufgaben
Python erlaubt es dir, zwei Statements mit Aufgaben zu einem einzigen Statement zu kombinieren:
Beachte, dass dies es dir erlaubt, unsere Übung mit dem Tausch mit einer einzigen Zeile zu lösen!
Verkettungen von Vergleichen
Python erlaubt es dir auch, mehrere Vergleiche zu einem einzigen zu kombinieren:
v1 c1 v2 c2 v3 ...
bei der v
Werte sind und c
Vergleiche, wird genauso behandelt wie (v1 c1 v2) and (v2 c2 v3) and...
Normale Werte für [:]
und range()
Du kannst einen oder beide der start/end-Werte weglassen, wenn du den sub-string-Operator [:]
benutzt.
(Dies gilt auch für Listen, wie wir sie in der nächsten Lektion sehen werden.)
Der normale Wert des ersten Index ist 0
(Anfang des strings)
und der normale Wert des letzten Index ist die Länge des strings. Ebenso ist range(n)
kurz für range(0, n)
.
None
Einige Funktionen sind hauptsächlich dazu da, einen Wert auszugeben, wie z.B. abs(x)
. Andere Funktionen, die nützlicher sind in ihren Auswirkungen, wie zum Beispiel print()
, geben dennoch den 'Standardwert' None
aus:
Hier ist None
ein besonderer Wert, der von Python als Platzhalter verwendet wird. Wenn du type(None) aufrufst, wirst du herausfinden, dass None
sogar seine eigene Type hat, NoneType
. Und wenn wir schon dabei sind, lass uns herausfinden, was der Typ einer Typenvariable ist:
In der nächsten Übung bitten wir dich, die Ergebnisse eines langen Befehls zu überprüfen, bei dem sowohl type
als auch print
verwendet wird.
print(type(print(type(type(print(print()))))))
besteht aus 4 Zeilen. Ordne sie in der richtigen Reihenfolge.- <class 'type'>
- <class 'NoneType'>
- «blank line»
- None
Das sind erstmal alle Tipps. Du bist jetzt soweit, zur nächsten Lektion zu gehen!