Artikel & Guides

Python Variablen

letzte Änderung: 29. August 2021

Was sind Python Variablen?

Wir benötigen für alle weiteren Beispiele aus den Python Grundlagen immer wieder Python Variablen. Aber was sind das genau?
Ganz einfach ausgedrückt sind sie wie ein Behälter mit irgendwas drin. Und auf diesen Inhalt können wir beliebig zugreifen.
So, das waren Variablen. Auf zum nächsten Thema…

Äh?! Nein? …. ok, dann etwas mehr dazu.
Vorab gesagt: Python Variablen verhalten sich etwas anders als man sie vielleicht von anderen Programmiersprachen her kennt. Diesen Unterschied möchte ich hier allerdings nicht so genau behandeln, da wir dieses Wissen eigentlich nicht für unsere Beispiele benötigen.

Es reicht zu wissen, dass Python Variablen einfach genial sind 😛

Hier muss nichts deklariert werden und es kann sich sogar der Typ der Variable im laufenden Prozess ändern. Etwas, dass in anderen Sprachen so nicht einfach funktioniert.
Wo wir dann direkt bei den Datentypen wären…

Datentypen kurz angerissen

Auch wenn wir in Python keine Datentypen für die Variablen speziell deklarieren müssen, sollte man sie dennoch kurz gelesen haben:
Für Zahlen nutzt Python z.B.

  • integer (int) für ganze Zahlen, z.B.: 1, 5, 2000, -100000 usw.
  • float wird für Gleitkommazahlen genutzt, z.B.: 4.99 , 1.99999 , -0.123456 – Achte darauf, dass hier der Punkt (.) aus dem englischen und nicht das im deutschen Raum benutzte Komma (,) genutzt werden muss.
  • complex für – ach – komplexe Zahlen…die aus einem Realteil und einem Imaginärteil bestehen. Hach, ich mag Mathe… nebenbei: hab ich in Python noch nie benötigt….

Dann gibt es noch die Strings (str) – nope! Nicht die, die kneifen… sondern Zeichenketten.
Was simpel gesagt alles das ist, womit man nicht so ohne weiteres Berechnungen durchführen könnte.
Es gibt natürlich noch weitere Datentypen, aber diese hier reichen jetzt erst einmal für den Zusammenhang mit Python Variablen.

Python Variablen erstellen

Nun wollen wir aber auch mal ein paar Variablen „sehen“ und erstellen uns welche.
Du kannst das Folgende auch selbst unter Python eingeben und musst dafür kein Script schreiben.
Unter Linux einfach mit python3 entsprechend die CLI starten. Unter Windows z.B. im Jupyter Notebook.
Zu Anfang steht… der Name deiner Variable…hier kannst du fast alles nutzen, allerdings sollte diese schon sinnvoll benannt werden. Macht es dann auch später leichter mit ihr im Script zu arbeiten, wenn man schon am Namen erkennt wofür diese gedacht war.
Weiterhin gibt es ein paar kleine Einschränkungen bei der Namensgebung von Python Variablen:

  • Nur Buchstaben (a-z, A-Z), Zahlen (0-9) sowie der Unterstrich _ ist erlaubt
  • Python achtet genau auf Groß und Kleinschreibung und reagiert echt zickig wenn man Print(Python) schreibt, aber eigentlich Print(python) meinte…
  • Du darfst auch keine Zahl am Anfang einer Variable schreiben. Also 2python geht nicht
  • Bestimmte Schlüsselwörter sind fest definiert und können nicht benutzt werden (z.B. else )

Fangen wir mit ein paar einfachen Beispielen an und definieren uns 6 Variablen. Von diesen möchten wir uns danach anzeigen lassen, welchen Datentyp Python genutzt hat. Dazu werden wir type(VARIABLE) benutzen.
Wie du erkennen wirst, kannst du eine Zeichenkette mit doppelten („) oder mit einem einfachen (‚) Anführungszeichen umschließen:

#Variablen definieren
a=1
b=2.2
c=1+2j
d="DarkWolfCave"
e='so gehts auch'
f="wo ist mein Anführungszeichen "

#Wenn wir jetzt wissen möchten, welchen Datentyp Python genommen hat (selbst deklarieren müssen wir ja nicht), dann kann man dies mit type(VARIABLE) herausfinden:
>>> type(a)
<class 'int'>
>>> type(b)
<class 'float'>
>>> type(c)
<class 'complex'>
>>> type(d)
<class 'str'>
>>> type(e)
<class 'str'>
>>> type(f)
<class 'str'>

Jetzt wird vielleicht auch der Zusammenhang einer Python Variablen zu dem Datentyp etwas klarer.
Aber wie schon erwähnt, erledigt Python das für uns ganz automatisch. Im schlimmsten Fall bekommst du eine Fehlermeldung…teste doch mal bitte folgendes nachdem du die oben genannten Variablen definiert hast:
print (d-a) (du willst also versuchen von der Variable ‚d‘ (DarkWolfCave) die Variable ‚a‘ (1) abzuziehen…. Was meinst du? Klappt das?
TypeError: unsupported operand type(s) for -: 'str' and 'int'
Genau, es geht nicht. Mit print(b-a) würdest du schon eher ein Ergebnis erhalten.

Mit Zeichenketten spielen (str)

Schauen wir uns jetzt einmal die Variable ‚d‘ etwas genauer an.
Mit print(d) wird uns der Inhalt komplett zurückgegeben:

>>> print(d)
DarkWolfCave

Wir können aber auch auf die einzelnen Elemente direkt zugreifen.
print(d[2]) – oder auch einen Bereich angeben: print(d[2:4]).

>>> print(d[2])
r
>>> print(d[2:4])
rk
>>>

Wichtig dabei ist zu wissen, dass das erste Zeichen bei 0 anfängt. Das erste ‚D‘ würden wir also mit print(d[0]) erhalten.
Bei einer Angabe des Bereichs ist die erste Zahl inklusiv und die letzte Zahl exklusiv. Möchten wir also ‚Wolf‘ erhalten, müssen wir print(d[4:8]) ausführen.

>>> print(d[4:8])
Wolf
>>>

Strings lassen sich auch durch ein ‚+‘ miteinander verbinden, und einer neuen Python Variablen zuweisen, oder direkt ausgeben.

>>> neu=d+e
>>> print(neu)
DarkWolfCaveso gehts auch
>>>
>>> print (d+e)
DarkWolfCaveso gehts auch
>>>

#mit einem Leerzeichen würde dies natürlich besser aussehen. Auch das ist kein Problem:

>>> print (d + ' ' + e)
DarkWolfCave so gehts auch
>>>

Du kannst sogar den Inhalt einer Zeichenkette mehrfach durch ‚* ANZAHL‘ ausgeben:

>>> print (d*3)
DarkWolfCaveDarkWolfCaveDarkWolfCave
>>>

Manchmal kann es wichtig sein, die Anzahl/Länge des Inhalts zu wissen. Hierfür gibt es len():

>>> len(d)
12
>>>

Sonderzeichen / Steuerzeichen

Wenden wir uns jetzt der ‚f‘-Variable zu ( f=“wo ist mein Anführungszeichen “ ).
Wir möchten eigentlich ein Anführungszeichen in unserer Variable habe. Du könntest jetzt auf die Idee kommen, am Ende einfach nochmal ein “ zu setzen. Probiere dies ruhig einmal aus.
Dann solltest du einen Fehler erhalten: SyntaxError: EOL while scanning string literal

Damit wir das Anführungszeichen in unsere Zeichenkette bekommen, ‚escapen‘ wir dieses mit \“ :

>>> f="wo ist mein Anführungszeichen \" "
>>> print(f)
wo ist mein Anführungszeichen "
>>>
ZeichenErklärung
\\Backslash
\tTabulator
\nZeilenumbruch (new line)
\rWagenrücklauf (carriage return)
\‘einfaches Anführungszeichen
\“doppeltes Anführungszeichen
\xnnSonderzeichen aus der ASCII Tabelle, zweistellig z.B. \x91 in Dezimal

Noch ein Beispiel, indem es recht deutlich gezeigt wird dass ein Backslash ‚\‚ eine escape-Sequenz startet, und man wirklich daran denken sollte.
Nehmen wir an, ein Script soll auf einen bestimmten Ordner zugreifen. Also müssen wir dessen Pfad angeben. Und da wir uns keine tollen Namen ausdenken, nennen wir diesen Ordner ‚temp‘. Jetzt schauen wir was passiert, wenn wir uns die Variable mit diesem Pfad, mit print anzeigen lassen wollen:

>>> print('C:\temp')
C:      emp
>>>

Sieht nicht so schön aus, richtig? Was ist passiert?
Wenn du dir die Tabelle etwas weiter oben anschaust, dann erkennst du, dass ein \t das Steuerzeichen für einen Tabulator ist. Was für eine Pfadangabe natürlich nicht nützlich ist. Um wirklich einen Backslash zu erhalten, nehmen wir den entsprechenden Eintrag aus der Tabelle: \\ .

Wenn unser Ordner jetzt ‚memp‘ heißen würde, dann hätten wir zwar grundsätzlich den Backslash in unserer Printausgabe, aber bei ‚remp‘ zum Beispiel wieder nicht.
Teste es ruhig aus, indem du das gezeigte Beispiel entsprechend änderst.
Ich kann dir nur dazu raten, dass du dir es direkt angewöhnst einen Backslash immer mit \\ zu erzeugen 😉

Globale Python Variablen

Wann immer wir eine Variable in unserem Script erstellen, ist diese ‚global‘ und kann in aufgerufenen Funktionen genutzt werden.

x = "Python Grundlagen"

def dwc_funktion():
        print("DarkWolfCave zeigt " + x)

dwc_funktion()

DarkWolfCave zeigt Python Grundlagen
>>>

Sollten wir aber IN einer Funktion eine Variable definieren, so ist diese lediglich lokal – also nur für diese Funktion – abrufbar.
Wir können demnach auch keine globale Variable durch eine Funktion einfach so überschreiben:

x = "Python Grundlagen"

def dwc_funktion():
        x = "lokale Variablen"
        print("DarkWolfCave zeigt " + x)

dwc_funktion()
print(x)

DarkWolfCave zeigt lokale Variablen
>>> print(x)
Python Grundlagen
>>>

Wir haben zweimal ‚x‘ einen jeweils anderen Wert zugewiesen. Da wir unsere Funktion mit dwc_funktion() aufrufen, erhalten wir den Inhalt aus der x-Variable innerhalb der Funktion angezeigt.
Mit print(x) außerhalb der Funktion, bekommen wir deren Wert.

Es gibt Umstände, in denen man auch in einer Funktion, eine Variable global nutzen möchte.
Dazu definiert man diese in der Funktion einfach als global x

x = "Python Grundlagen"

def dwc_funktion():
        global x
        x = "globale Variablen"
        print("DarkWolfCave zeigt " + x)

dwc_funktion()
print(x)

DarkWolfCave zeigt globale Variablen
>>> print(x)
globale Variablen
>>>

Du kannst damit also bereits globale Variablen außerhalb einer Funktion überschreiben.
Allerdings gibt es nicht wirklich viele Situationen in denen es tatsächlich notwendig wäre. Oft verursacht so eine Variante auch eher Probleme, vor allem wenn man nicht daran denkt welche Variablen schon definiert wurden und man – weil es scheinbar einfacher ist – alle weiteren in Funktionen generell global setzt.

Schau dir diesen Artikel über Funktionen an, dort erkläre ich unter anderem wie du Werte aus einer Funktion zurückgeben kannst ohne sie global definieren zu müssen.

Weitere Python Grundlagen Themen

Python Webseiten Prüfung Erweitern (Teil 2)

Erstellt am: 16. Januar 2022

Im zweiten Teil unserer „Python Webseiten Prüfung“ geht es um die Erweiterung des Basis-Scripts mit einigen nützlichen Funktionen. Weiterhin gilt natürlich alles aus dem ersten Teil. Also die Abfrage ob eine Seite erreichbar ist oder einen Fehler zurück gibt (40x/50x).Bisher konnten wir das Script direkt mit einem Parameter (einer URL) aufrufen und uns das Ergebnis ... Weiterlesen ...




Python IF Then Abfrage

Erstellt am: 25. September 2021

Du hast bereits ein wenig getestet und dich durch andere Beispiele gewühlt, fragst dich aber noch immer was eigentlich diese komischen Python IF THEN Abfragen so sind?!Wozu man sie benötigt oder wie man diese eigentlich anwendet?!Dann ließ weiter und du wirst deine Fragen beantworten können. Inhaltsverzeichnis anzeigen Python IF THEN Abfrage Der Aufbau AND / ... Weiterlesen ...




Python Grundlagen - einfache Webseiten Prüfung

letzte Änderung: 31. Oktober 2021

In diesem Teil der Python Grundlagen werden wir zusammen ein sehr einfaches Script erstellen, welches prüft ob eine Webseite erreichbar ist. Hierfür solltest du bereits die Python 3 Umgebung fertig installiert haben. Wie dies genau funktioniert kannst du in diesem Artikel nachlesen.Ich beziehe mich hier immer auf eine Python Installation die auf meinem Raspberry Pi ... Weiterlesen ...




Python Funktionen

Erstellt am: 29. August 2021

Wozu Funktionen Inhaltsverzeichnis anzeigen Wozu Funktionen Ein Beispiel ohne Python Funktionen Das Beispiel mit Python Funktionen Wie erstellt man Python Funktionen? Werte zurückgeben / return / print 1. Möglichkeit: Wir setzen eine Variable innerhalb von Python Funktionen auf ‚global‘ 2. Möglichkeit: Der ‚print‘ Befehl 3. Möglichkeit: Der ‚return‘ Befehl Weitere Python Grundlagen Themen In vielen ... Weiterlesen ...




Python Grundlagen - die Umgebung

letzte Änderung: 29. August 2021

Einrichtung einer Umgebung für alle weiteren Python Grundlagen Themen auf deinem Raspberry Pi Inhaltsverzeichnis anzeigen Einrichtung einer Umgebung für alle weiteren Python Grundlagen Themen auf deinem Raspberry Pi Was wir benötigen Python3 und notwendige Bibliotheken installieren Alias einrichten für Python3 Wie man eine Python Umgebung startet Wie man ein Python Script erstellt und ausführt Weitere ... Weiterlesen ...




Python praktische Grundlagen auf dem Raspberry Pi

Erstellt am: 21. August 2021

Du hast einen Raspberry PI und möchtest ein wenig mit Python experimentieren oder hast sogar schon genaue Vorstellungen was du machen möchtest, aber weißt nicht genau wie du anfangen könntest? Oder du brauchst eher praktische Grundlagen und nicht nur die ganzen theoretischen? Dann zeige ich dir hier ein paar Dinge die dir hoffentlich ein wenig ... Weiterlesen ...




Schreibe einen Kommentar