We're sorry but this page doesn't work properly without JavaScript enabled. Please enable it to continue.
Feedback

data.PREP #Python – Variables and Assignments

00:00

Formal Metadata

Title
data.PREP #Python – Variables and Assignments
Title of Series
Number of Parts
17
Author
License
CC Attribution 4.0 International:
You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal purpose as long as the work is attributed to the author in the manner specified by the author or licensor.
Identifiers
Publisher
Release Date
Language

Content Metadata

Subject Area
Genre
Abstract
Dieses Video zeigt, wie man Variablen speichert und benennt und wie man ihnen Werte zuweist. Dieses Selbstlernvideo ist Teil des data.PREP #Python-Kurses des Projekts data.RWTH der RWTH Aachen University. Alle Materialien des data.RWTH-Projekts wurden für die interdisziplinäre Vermittlung von grundlegenden Datenkompetenzen an Studierende erstellt. Zu diesem Kurs finden Sie auf ORCA.nrw weitere Materialien. Präsentation und Übung sind auf Englisch, die Lehrenden im Video sprechen Deutsch. Es stehen Untertitel in englischer Sprache zur Verfügung.
Keywords
German
German
English
English
Lecture/ConferenceMeeting/Interview
Computer animation
Computer animationLecture/Conference
Computer animationLecture/Conference
Transcript: German(auto-generated)
Herzlich willkommen zu dieser Session Data Prep mit Python. In dieser Session wollen wir Ihnen einen neuen Grundbaustein einführen und das sind Variablen. Nachdem Sie die Session bearbeitet haben, können Sie erklären, was Variablen sind.
Sie können Variablen Werte zuweisen und auch auf diese Werte zugreifen, indem Sie dann die Variablen in Ausdrücken verwenden. Und Sie können entscheiden, wie Variablen korrekt und sinnvoll benannt werden können.
Schauen wir uns dazu ein paar Codebeispiele an. Hier weisen wir einer Variablen einen Wert zu. Dieser Wert hier, 12.345, kann zum Beispiel durch eine komplexe Rechnung ermittelt worden sein.
Und wenn ich diesen Wert dann später in weiteren Rechnern weiterverwenden möchte, dann kann ich ihn mir merken, indem er in eine Speicherzelle auf dem Rechner geschrieben wird. Das geht dadurch, dass ich eine Variable definiere, die nenne ich Zwischenresultat, und weise dann den Wert zu, indem ich ein Gleichheitszeichen verwende und eben den Wert, der durch diese Berechnung zustande gekommen ist, zuweise.
Sie kennen schon, wenn wir einen Ausdruck als letzten Ausdruck in einer Zelle schreiben, dann wird eben entsprechend der Wert ausgegeben. In dem Fall sehen wir hier, die Variable Zwischenresultat hat jetzt also den Wert 12.345, den wir zugewiesen haben.
Ich möchte auf eine Stelle hinweisen, weil hier das Gleichheitszeichen verwendet wird, das Sie ja auch aus der Mathematik kennen. In der Mathematik bedeutet immer, dass die linke Seite gleich der rechten Seite ist. Das heißt, das ist immer gleich. Das heißt, das würde hier bedeuten, mathematisch gesehen als mathematische Formel, das Zwischenresultat immer den Wert 12.345 hat.
Hier ist bei Programmieren, bei Programmiersprachen ist das etwas anderes, das Gleichheitszeichen. Hier wollen wir einen Wert in die Variable oder in die Speicherzelle, die durch diesen Namen benannt wird, speichern.
Und das bedeutet, dass wir, wenn wir zum Beispiel weitere Rechnungen durchgeführt haben, dann auch in dieser Variable einen anderen Wert speichern können. Das heißt, das ist dann nicht mehr gleich, sondern das ist dann ein anderer Wert. Hier habe ich durch eine neue Berechnung einen großen Wert berechnet. Ich kann es gar nicht lesen, 3.248.000, so etwas in der Richtung.
Das heißt, wir sehen, wir können im Laufe eines Programms einer Variablen immer wieder unterschiedliche Werte zuweisen, so wie unsere Rechnung im Programm fortschreitet. Nehmen wir also an, wir haben eine weitere Berechnung durchgeführt, zum Beispiel hier weitere Berechnung 4, die merken wir uns auch wieder in einer Variablen.
Dann können wir sehen, dass wir jetzt, so wie wir es zuvor einfach mit Werten gemacht haben, also dass wir ein Jupyter Notebook als Taschenrechner benutzt haben, so können wir jetzt diese Variablen auch anstelle dieser Werte benutzen. Also zum Beispiel kann ich sagen, wir können jetzt auf das Zwischenresultat den Wert der jetzt weiter erfolgten Berechnung zuweisen.
Das geht wieder mit, oder zunächst mal hier die Berechnung, also ich addiere einfach Zwischenresultat und weitere Berechnungen. Ich könnte hier das auch, wenn ich das Resultat wieder mir merken will, dann kann ich das wiederum einer Variablen zuweisen
und eben dann den Wert dieser Variablen, die ich jetzt einfach mal merken genannt habe, ausgeben und dann haben wir eben diese Berechnung durchgeführt. Wir hatten eine Aufgabe gestellt, indem Sie die Aufgabe hatten, eben für ein rechtwinkliges Dreieck die Hypotenuse zu berechnen.
Und hier zeige ich Ihnen jetzt, wie das Beispiel mit Variablen funktioniert. Wir hatten zum Beispiel die beiden Schenkel des rechtwinkligen Dreiecks hier den Wert 3,5 und 6,7. Und wir wissen schon, dass die Formel so aussieht, dass wir die Wurzel der beiden Quadrate berechnen müssen.
Und das Ganze kann ich jetzt mit Variablen machen. Das heißt, ich weiß erst der Variablen A einen Wert zu, dann der Variable B und kann jetzt hier in der Formel eben die Hypotenuse ausrechnen. Wenn wir das tun, dann sehen wir hier, es kommt ein Wert 7,5,5,9 raus. Wir hatten in dem ursprünglichen Beispiel die eine Länge der einen Seite gleich 3 und die andere Länge der anderen Seite gleich 4.
Und dann kommt hier der Wert 5 raus. Und jetzt sehen wir hier auch schon den Vorteil, wenn wir Variablen verwenden, wenn das in Programmcode ausgeführt wird, dann kann es immer an unterschiedlichen Stellen eben auch unterschiedliche Werte in diesen Variablen sein.
Und es ändert sich immer nur der Wert in den Variablen. Ich kann aber die gleiche Formel wieder anwenden und kann die Berechnung erneut durchführen. Das ist eben der Vorteil, dass ich eben Formeln aufschreiben kann, in denen Variablen stehen, die dann eben mehrfach ausgewertet werden und damit eben auch mehrfach ausgewertet werden können.
Noch ein wichtiger Hinweis ist, dass Variablen in Python case-sensitive sind. Das heißt, Groß- und Kleinschreibung wird unterschieden. Das ist nicht in allen Programmiersprachen so, deshalb wollen wir das hier so betonen. Wir haben ja jetzt hier zuletzt ausgeführt A, der Wert 5, B, der Wert 12.
Wir würden also erwarten, wenn es nicht unterschieden würde, dass eben hier der Wert 5 plus 12 berechnet wird. Das passiert nicht. Wir sehen hier wieder eine Fehlermeldung unseres Interpreters, der eben sagt, die Variable A, der Name, ist nicht definiert. Das liegt daran, dass eben Klein- und Großschreibung unterschieden wird.
Wenn wir die Variable Kleinschreiben und das Ganze erneut ausführen, sehen wir, dass das Erwartete passiert. Das ist also ein wesentlicher Hinweis. Groß- und Kleinschreibung müssen unterschieden werden. So, jetzt haben Sie schon gesehen, wir können Variablen benennen. Das sind also einfach Namen, die ich vergebe.
Die Frage ist, wie konstruiert man diese Namen? Gibt es dafür Regeln? Und das ist der Fall. Zum einen gibt es sogenannte Konventionen. Das heißt, wir sollten immer versuchen, Variablen so zu benennen, dass sie auch erläutern, wofür sie stehen. Also wenn wir eine Simulation haben, in dem Verkehrswege berechnet werden, Züge fahren und so weiter,
und wir müssen auch rechnen, wie schnell die fahren und so weiter, dann sollte ich eine Variable so benennen, wenn ich die Geschwindigkeit in einer Variablen mir merke für den Zug X, der fährt gerade 120,5 Stundenkilometer, dann weise ich das einer variablen Speed zu.
Wenn ich sage, so und jetzt kann der Zug langsam beschleunigen, dann kann ich mir eine Variable merken, okay, ich will um 15 Prozent beschleunigen, also Acceleration ist gleich 1,15, das ist also 115 Prozent. Und so kann ich dann die neue Geschwindigkeit, Beschleunigung um 15 Prozent berechnen in dem Ausdruck Speed mal Acceleration
und erhalte dann für meine Simulation den Wert, dass wenn der Zug um 15 Prozent beschleunigt hat, dass der dann eben 138 Stundenkilometer fährt. So, das ist eine Empfehlung, sinnvolle Namen sich auszudenken. Das zweite ist, dass es auch Regeln gibt, die vom Python-Interpreter kontrolliert werden.
Es gibt also ein paar wenige Einschränkungen, was korrekte Variablennamen sind und was nicht korrekte sind. Da habe ich ein paar Beispiele vorbereitet, die wir einfach der Reihe nach betrachten können und dann kann ich Ihnen die Regeln dazu nennen.
Also wir haben schon gesehen, wir können Variablen Speed benennen, was ist denn, kann ich das auch mit einer Zahl? Und wir sehen jetzt hier zumindest keine Fehlermeldung. Das sehen wir daran, dass die Interpretation hier erfolgreich ausgeführt ist. Das war die vierzehnte Interpretation für diese Session hier. Ich kann also mit anderen Worten Zahlen in Variablen nehmen. Wie sieht es denn aus mit To Speed?
Hier erhalten wir eine Fehlermeldung und der Grund hierfür ist, dass Variablennamen nie mit einer Zahl oder nie mit einer Ziffer beginnen können. Sie müssen also mit einem Buchstaben und wir sehen gleich noch ein weiteres Zeichen beginnen. Ein sinnvoller Name ist dann zum Beispiel Car Speed.
Das heißt, ich habe jetzt hier zwei Namen zusammengesetzt. Wir haben vorhin in der Simulation von Geschwindigkeiten von Zügen gesprochen. Jetzt wollen wir vielleicht mal betrachten, wie schnell hier die Autos fahren. Und insofern unterscheide ich das von der vorherigen Variable dadurch, dass ich sage, das ist die Geschwindigkeit eines Autos. Wenn ich also mehrere Begriffe zusammensetzen möchte, dann kann ich das tun.
Und in Python wird das in der Regel oder so ist die Konvention über den sogenannten Underscore, den Unterstrich durchgeführt. Also Car Speed 130 ist eine korrekte Zuweisung. So jetzt hatten wir gesehen, Ziffern können wir reinnehmen, aber nicht am Anfang. Wie sieht es denn mit diesem Underscore aus?
Und wir sehen, tatsächlich ist das syntaktisch richtig. Das heißt, der Variablename ist korrekt. Allerdings hat das in Python oft eine Sonderbedeutung. Das heißt, wenn wir uns eigene Namen ausdenken, verwenden wir in der Regel keine Namen, die mit dem Unterstrich beginnen.
Wenn wir aber jetzt unbedingt Two-Cent als Variablenamen brauchen, weil das ein Markenname ist oder weil das ein spezieller Ausdruck ist, dann können wir das zum Beispiel dadurch erreichen, dass wir das Underscore, das Unterstrich davor stellen. Dann gibt es auch noch die Möglichkeit, Punkte zu verwenden. Wir sehen, ein Punkt am Anfang funktioniert nicht.
Oder wir könnten uns überlegen, wir können ja auch Car Speed vielleicht nicht mit dem Unterstrich trennen, sondern mit dem Bindestrich auf Deutsch. Aber wenn wir das versuchen, sehen wir auch hier, dass hier ein Fehler entsteht. Der Grund ist dafür, für diese beiden Einschränkungen, dass diese Zeichen hier eine spezielle Bedeutung haben.
Wir haben ja schon gesehen, wir können Variablen A minus B schreiben. Das können wir gerade nochmal tun. Ich hatte ja die Variablen A und B eingeführt. Also wenn ich den Ausdruck A minus B rechne, dann war das, glaube ich, 5 minus 12.
Und das kann ich ja auch so schreiben, dass ich das ohne die Blanks, das ist auch häufig so der Fall, schreibe. Also A minus B. Und dann wird hier eben eine Subtraktion ausgeführt. Und genau deshalb können wir natürlich Namen nicht durch Bindestriche trennen, weil dann Car Speed hier interpretiert wird als die Subtraktion zwischen der Variablen K und der Variablen Speed.
So, das heißt zusammenfassend, Variablen fangen mit einem Buchstaben an oder einer Ziffer oder mit dem Underscore, mit dem Unterstrich. Sie können keine Operatoren enthalten. Und was ich nicht gezeigt habe im Beispiel,
weil wir das noch nicht eingeführt haben, aber ich mache mal ein Beispiel. Wir dürfen eine Variable nicht true nennen. Und das sind sogenannte reservierte Worte. Das heißt Python kennt bestimmte Namen, bestimmte Namen oder Bezeichnungen, die eine vordefinierte Bedeutung haben.
Sie sehen es hier angedeutet in unserem Interpreter, in unserer Jupyter Notebook, dass true hier auch hervorgehoben in grün dasteht. Das heißt, unser Interpreter hat schon erkannt, das ist ein besonderer Name, das ist kein variablen Name. Und deshalb kann ich hier diese Zuweisung nicht ausführen.
Das sind so die Einschränkungen und die Conventions habe ich Ihnen zum Teil schon genannt. Sie sollen unbedingt Sinn machen. Das heißt, wenn ich eine Studie mache und ich will jetzt die Anzahl der teilnehmenden Patienten an meiner Studie in einer Variable speichern, dann sollte ich das nicht einfach n nennen, sondern am besten Number of Patients oder
NumPatients, wenn man das etwas abkürzen will, weil man das Ganze ja auch immer schreiben muss. Das ist eine Konvention. Die andere Konvention ist, dass wir in Python Variablen immer mit Kleinbuchstaben schreiben. Das macht im Englischen sowieso Sinn. Wenn man deutschen Namen verwendet, dann ist
das manchmal ein komisches Gefühl, weil wir dann auch eben Substantive plötzlich klein schreiben. Aber die Konvention in Python ist, dass sie kleingeschrieben werden. Und das andere, wenn wir mehrere Begriffe kombinieren, so wie Number of Patients, dass wir die dann hier durch Underscores erläutern. Das ist die sogenannte Snake Case Convention.
Es gibt in Programmiersprachen drei, vier verschiedene Möglichkeiten, wie man zusammengesetzte Begriffe in variablen Namen formt. Und die kann man in verschiedenen Sprachen unterschiedlich anwenden. Die Konvention in Python ist es, dass wir eben Snake Case verwenden.
Snake deshalb, weil sozusagen die mehreren Begriffe sich in einem variablen Namen so wie in einer Schlange anordnen. Wir haben hier sozusagen Scharniere und so schlängeln sich die verschiedenen Begriffe dann eben zusammen zu einem Begriff, deshalb Snake Case.
So, jetzt haben wir Variablen kennengelernt. Und ich möchte Ihnen jetzt nochmal zeigen, wie Werte zugewiesen werden. Und dass es eben auch noch Möglichkeiten gibt, während der Berechnung von Ausdrücken auch noch sogenannte Assignment Operations oder Operators anzufinden.
Wir haben hier ein Beispiel. Das erste schauen wir erstmal auf das Speed gleich 100, weise ich zu. Also die Geschwindigkeit 100, die Beschleunigung 20%. Ich gebe diese Geschwindigkeit aus und also zunächst mal bevor der Beschleunigung stattfindet. Und dann will ich eben jetzt die neue Geschwindigkeit dadurch berechnen,
dass ich die gerade aktuelle Geschwindigkeit mit dem Faktor der Beschleunigung multipliziere. Das heißt, hier wird jetzt dieser Ausdruck ausgewertet auf der rechten Seite. Welchen Wert hat Speed momentan? Das ist zunächst mal 100. Das geben wir direkt vorher aus.
Dann multiplizieren wir es mit der Beschleunigung 20%. Und diesen Wert, der hier berechnet wird, der wird jetzt neu der Variablen Speed zugewiesen. Hier sehen Sie auch nochmal, dass diese Assignment etwas ganz anderes ist als das mathematische Gleichheitszeichen. Weil jeder Mathematiker würde sagen, das Ganze, diese Gleichung hier stimmt immer nur dann, wenn Acceleration 1 ist.
Ansonsten kann Speed nie gleich Speed mal etwas anderes sein. Hier ist es aber so, dass es ein Assignment ist. Das heißt, wir weisen eben den neuen Wert zu. Ich führe diese Zelle mal aus. Wir sehen die Speed, die am Anfang ausgegeben wird, ist 100.
Dann kommt die Berechnung 20% erhöhen. Das heißt, anschließend, was wir am Ende ausgeben, ist, dass der Wert 120 die neue Geschwindigkeit ist. Genau das Gleiche, was wir eben angesehen haben, haben wir hier. Ich weise nochmal wieder 100 zu. Die Beschleunigung 20%.
Ich gebe das wieder aus. Der eine Unterschied ist der, den wir hier sehen. Das macht es auch etwas klarer. Es ist jetzt nicht mehr wie eine mathematische Gleichung geschrieben, sondern hier wird etwas berechnet, das in der Variablen Speed steht. Es wird multipliziert und das Ergebnis wird wieder Speed zugewiesen.
Also, wenn immer wir eine Variable neu berechnen und auf der rechten Seite für den Ausdruck wieder die Variable selbst benötigen, dann können wir das auch über diesen sogenannten Assignment Operator, in dem Fall Multiplikations Assignment, zuweisen.
Wir führen das Ganze aus und wir sehen, dass genau das Gleiche wie oben passiert. Das heißt, hier haben wir diese Assignment Operator mit der Multiplikation und ich kann jetzt als nächstes zum Beispiel auch dividieren. Das heißt, hier kann ich Speed wieder durch die ursprüngliche Beschleunigung dividieren und dann kommen wir wieder 100 an.
Ich kann auch die Geschwindigkeit um 20 zurücknehmen, also minusgleich zuweisen. Sie sehen, es gibt die verschiedenen Assignment Operators. Das haben wir Ihnen in einer Tabelle in den Lecture Notebooks, die begleitend zur Vorlesung existieren, zusammengefasst. So und damit haben Sie die wesentlichen Konzepte von Variablen kennengelernt und vor
allen Dingen kennengelernt, wie man sie sinnvoll benennt, welche Konventionen man in Python einhält. Und damit können Sie zur Challenge of the Session übergehen, Chaos, indem Sie die Ausdrücke, die Sie vorher ohne Variablen schon mal berechnet haben, so Konversionen zwischen verschiedenen Einheiten, jetzt mit Variablen definieren.