3 Eine kurze Tour durch Variablen und Datentypen in Python
Dieses Tutorial ist das zweite einer Reihe zur Einführung in die Programmierung und Datenanalyse mit der Python-Programmiersprache. Diese Tutorials basieren auf einem praktischen, programmbasierten Ansatz. Der beste Weg, das Material zu erlernen, besteht darin, den Code auszuführen und mit den Beispielen zu experimentieren.
Die folgenden Themen werden in diesem Tutorial behandelt:
3.1 Informationen mithilfe von Variablen speichern
Computer sind für zwei Zwecke nützlich: zum Speichern von Informationen und zum Durchführen von Operationen an gespeicherten Informationen. Beim Arbeiten mit einer Programmiersprache wie Python werden Informationen in Variablen gespeichert. Sie können sich Variablen als Container zum Speichern von Daten vorstellen. Die in einer Variablen gespeicherten Daten werden als Wert bezeichnet.
Eine Variable wird mit einer Zuweisungsanweisung erstellt, die mit dem Namen der Variablen beginnt, gefolgt vom Zuweisungsoperator = (anders als der Gleichheitsvergleichsoperator ==), gefolgt vom zu speichernden Wert innerhalb der Variablen.
Sie können in einer einzigen Anweisung auch Werte für mehrere Variablen angeben, indem Sie die Variablennamen und -werte durch Kommas trennen.
Sie können mehreren Variablen denselben Wert zuweisen, indem Sie mehrere Zuweisungsvorgänge in einer einzigen Anweisung verketten.
Sie können den in einer Variablen gespeicherten Wert einfach ändern, indem Sie ihr mithilfe einer anderen Zuweisungsanweisung einen neuen Wert zuweisen. Seien Sie beim Neuzuweisen von Variablen vorsichtig: Wenn Sie der Variablen einen neuen Wert zuweisen, geht der alte Wert verloren und ist nicht mehr zugänglich.
Während Sie einer Variablen einen neuen Wert zuweisen, können Sie auch den vorherigen Wert der Variablen verwenden, um den neuen Wert zu bestimmen.
Das Muster var = var op x (wobei op ein arithmetischer Operator wie +, -, * oder / ist) wird sehr häufig verwendet.
Variablennamen können kurz (a, x, y usw.) oder beschreibend (my_favorite_color, profit_margin usw.). Sie müssen jedoch beim Benennen von Python-Variablen die folgenden Regeln befolgen:
- Der Name einer Variablen muss mit einem Buchstaben oder dem Unterstrichzeichen
_beginnen. Es darf nicht mit einer Zahl beginnen. - Ein Variablenname darf nur Klein- oder Großbuchstaben, Ziffern oder Unterstriche enthalten (
a-z,A-Z,0-9und_). - Bei Variablennamen wird die Groß-/Kleinschreibung beachtet, d. h. a_variable, A_variable und A_VARIABLE sind allesamt unterschiedliche Variablen.
Hier sind einige gültige Variablennamen:
Versuchen wir auch, einige Variablen mit ungültigen Namen zu erstellen. Python gibt einen Syntaxfehler aus, wenn der Name Ihrer Variablen ungültig ist.
Syntax: Die Syntax einer Programmiersprache bezieht sich auf die Regeln, die bestimmen, wie eine gültige Anweisung (ein Statement) in der Sprache aussehen soll. Wenn eine Anweisung diesen Regeln nicht entspricht, stoppt Python die Ausführung und informiert Sie darüber, dass ein Syntaxfehler vorliegt. Sie können sich Syntax als die Grammatikregeln einer Programmiersprache vorstellen.
Cell In[21], line 1 is_today_$aturday = False ^ SyntaxError: invalid syntax
Cell In[22], line 1 my-favorite-car = "Delorean" ^ SyntaxError: cannot assign to expression here. Maybe you meant '==' instead of '='?
Cell In[23], line 1 3_musketeers = ["Athos", "Porthos", "Aramis"] ^ SyntaxError: invalid decimal literal
3.2 Integrierte Datentypen in Python
Alle in einer Python-Variablen gespeicherten Daten oder Informationen haben einen Datentyp. Der Datentyp der in einer Variablen gespeicherten Daten kann mit der Funktion type überprüft werden.
Python hat mehrere built-in Datentypen zur Speicherung verschiedener Arten von Informationen in Variablen. Hier sind einige häufig verwendete Datentypen:
- Integer
- Float
- Boolean
- None
- String
- List
- Tuple
- Dictionary
Integer, Float, Boolean, None und String sind primitive Datentypen, weil sie einen einzelnen Wert darstellen. Andere Datentypen wie List, Tuple und Dictionary werden oft als Datenstrukturen oder Container bezeichnet, weil sie mehrere Daten zusammenhalten.
3.2.1 Integer
Ganzzahlen stellen positive oder negative ganze Zahlen dar, von negativ unendlich bis unendlich. Beachten Sie, dass Ganzzahlen keine Dezimalstellen enthalten sollten. Ganzzahlen haben den Typ int.
Im Gegensatz zu einigen anderen Programmiersprachen können ganze Zahlen in Python beliebig groß (oder klein) sein. Es gibt keinen niedrigsten oder höchsten Wert für Ganzzahlen und nur einen int Datentyp.
3.2.2 Float
Floats (oder Gleitkommazahlen) sind Zahlen mit einem Dezimalpunkt. Es gibt keine Begrenzung für den Wert einer Gleitkommazahl oder die Anzahl der Stellen vor oder nach dem Dezimalpunkt. Gleitkommazahlen haben den Datentyp float.
Beachten Sie, dass eine ganze Zahl als Gleitkommazahl behandelt wird, wenn sie mit einem Dezimalpunkt geschrieben wird, auch wenn der Dezimalteil der Zahl Null ist.
Gleitkommazahlen können auch in der wissenschaftlichen Schreibweise geschrieben werden, wobei ein „e“ die Zehnerpotenz angibt.
Floats können mit den Funktionen float und int in Ganzzahlen umgewandelt werden und umgekehrt. Die Umwandlung in einen anderen Datentyp wird als Casting bezeichnet.
Bei der Durchführung arithmetischer Operationen werden Ganzzahlen automatisch in Gleitkommazahlen umgewandelt, wenn einer der Operanden eine Gleitkommazahl ist. Außerdem gibt der Divisionsoperator / immer eine Gleitkommazahl zurück, auch wenn beide Operanden Ganzzahlen sind. Verwenden Sie den Operator //, wenn das Ergebnis der Division ein int sein soll.
3.2.3 Boolean
Boolesche Werte stellen einen von zwei Werten dar: True und False. Boolesche Werte haben den Datentyp bool.
Boolesche Werte werden im Allgemeinen als Ergebnis einer Vergleichsoperation zurückgegeben (z. B. ==, >= usw.).
Boolesche Werte werden bei der Verwendung in arithmetischen Operationen automatisch in int umgewandelt. True wird in 1 umgewandelt und False wird in 0 umgewandelt.
Jeder Wert in Python kann mit der bool Funktion in einen Boolean umgewandelt werden.
Nur die folgenden Werte ergeben False (sie werden oft als falsy Werte bezeichnet):
- Der Wert
Falseselbst - Die ganze Zahl
0 - Die Fließkommazahl
0.0 - Der leere Wert
None - Der leere Text
"" - Die leere Liste
[] - Das leere Tupel
() - Das leere Wörterbuch
{} - Die leere Menge
set() - Der leere Bereich
range(0)
Alles andere ergibt True (ein Wert, der zu True ausgewertet wird, wird oft als truthy Wert bezeichnet).
(True, True, True, True, True, True, True)
3.2.4 None
Der None-Typ enthält einen einzigen Wert None, der dazu dient, das Fehlen eines Wertes anzuzeigen. None hat den Typ NoneType. Es wird oft verwendet, um eine Variable zu deklarieren, deren Wert später zugewiesen werden kann.
3.2.5 String
Eine Zeichenfolge wird verwendet, um Text (eine Zeichenfolge) in Python darzustellen. Zeichenfolgen müssen in Anführungszeichen gesetzt werden (entweder das einfache Anführungszeichen ' oder das doppelte Anführungszeichen “). Zeichenfolgen haben den Datentyp str.
Sie können einfache Anführungszeichen innerhalb einer mit doppelten Anführungszeichen geschriebenen Zeichenfolge verwenden und umgekehrt.
Um ein doppeltes Anführungszeichen innerhalb einer mit doppelten Anführungszeichen geschriebenen Zeichenfolge zu verwenden, maskieren Sie die inneren Anführungszeichen, indem Sie ihnen das Zeichen \ voranstellen.
'The first time I got a universal remote control, I thought to myself "This changes everything".'
Mit einfachen oder doppelten Anführungszeichen erstellte strings müssen in derselben Zeile beginnen und enden. Um mehrzeilige strings zu erstellen, verwenden Sie drei einfache Anführungszeichen ''' oder drei doppelte Anführungszeichen “““, um den string zu beginnen und zu beenden. Zeilenumbrüche werden durch das Zeilenumbruchzeichen \n dargestellt.
Mehrzeilige Zeichenfolgen werden am besten mit der Funktion print angezeigt.
Two windmills are standing in a field and one asks the other,
"What kind of music do you like?"
The other says,
"I'm a big metal fan."
Sie können die Länge einer Zeichenfolge mit der Funktion len überprüfen.
Beachten Sie, dass Sonderzeichen wie \n und Escapezeichen wie \" als ein einzelnes Zeichen zählen, auch wenn sie als zwei Zeichen geschrieben und manchmal ausgegeben werden.
Mit der Funktion list kann eine Zeichenfolge in eine Liste von Zeichen umgewandelt werden.
Strings unterstützen auch mehrere Listenoperationen, die im nächsten Abschnitt besprochen werden. Wir werden uns hier einige Beispiele ansehen.
Mit der Indexierungsnotation [] können Sie auf einzelne Zeichen innerhalb einer Zeichenfolge zugreifen. Beachten Sie, dass die Zeichenindizes von 0 bis n-1 reichen, wobei n die Länge der Zeichenfolge ist.
Sie können auf einen Teil einer Zeichenfolge zugreifen, indem Sie einen Start:End-Bereich anstelle eines einzelnen Indexes in [] angeben.
Sie können auch mit dem „in“-Operator überprüfen, ob eine Zeichenfolge Text enthält.
Zwei oder mehr Zeichenfolgen können mit dem Operator + verbunden oder verkettet werden. Seien Sie beim Verketten von Zeichenfolgen vorsichtig. Manchmal müssen Sie möglicherweise ein Leerzeichen " " zwischen Wörtern einfügen.
Strings in Python verfügen über viele integrierte Methoden, mit denen sie manipuliert werden können. Probieren wir einige gängige String-Methoden aus.
Methoden: Methoden sind Funktionen, die Datentypen zugeordnet sind und auf die mit der „.“-Notation zugegriffen wird, z. B.
variable_name.method()oder"a string".method(). Methoden sind eine leistungsstarke Technik, um allgemeine Vorgänge mit Werten bestimmter Datentypen zu verknüpfen.
Die Methoden .lower(), .upper() und .capitalize() werden verwendet, um die Groß-/Kleinschreibung der Zeichen zu ändern.
Die Methode .replace wird verwendet, um einen Teil der Zeichenfolge durch eine andere Zeichenfolge zu ersetzen. Der zu ersetzende Teil und der Ersetzungstext werden als Eingaben oder Argumente angenommen.
Beachten Sie, dass eine neue Zeichenfolge zurückgegeben wird und die ursprüngliche Zeichenfolge nicht geändert wird.
Die Methode .split kann verwendet werden, um eine Zeichenfolge anhand der bereitgestellten Zeichen in eine Liste von Zeichenfolgen aufzuteilen.
Die .strip Methode wird verwendet, um Leerzeichen am Anfang und Ende einer Zeichenfolge zu entfernen.
'This is a long line with some space before, after, and some space in the middle..'
Die Methode .format wird verwendet, um Werte anderer Datentypen zu kombinieren, z. Ganzzahlen, Gleitkommazahlen, Boolesche Werte, Listen usw. mit Zeichenfolgen. Es wird häufig zum Erstellen von Ausgabemeldungen zur Anzeige verwendet.
Code
# Input variables
cost_of_ice_bag = 1.25
profit_margin = .2
number_of_bags = 500
# Template for output message
output_template = """If a grocery store sells ice bags at $ {} per bag, with a profit margin of {} %,
then the total profit it makes by selling {} ice bags is $ {}."""
print(output_template)If a grocery store sells ice bags at $ {} per bag, with a profit margin of {} %,
then the total profit it makes by selling {} ice bags is $ {}.
Code
If a grocery store sells ice bags at $ 1.25 per bag, with a profit margin of 20.0 %,
then the total profit it makes by selling 500 ice bags is $ 125.0.
Beachten Sie, wie die Platzhalter {} in der Zeichenfolge output_template durch die Argumente ersetzt werden, die der Methode .format bereitgestellt werden.
Es ist auch möglich, den String-Verkettungsoperator + zu verwenden, um Strings mit anderen Werten zu kombinieren. Diese Werte müssen jedoch zuerst mit der Funktion str in Strings konvertiert werden.
Code
--------------------------------------------------------------------------- TypeError Traceback (most recent call last) Cell In[126], line 1 ----> 1 "If a grocery store sells ice bags at $ " + cost_of_ice_bag + ", with a profit margin of " + profit_margin TypeError: can only concatenate str (not "float") to str
Tatsächlich kann str verwendet werden, um einen Wert eines beliebigen Datentyps in einen String umzuwandeln.
"['Athos', 'Porthos', 'Aramis']"
Beachten Sie, dass alle Zeichenfolgenmethoden neue Werte zurückgeben und die vorhandene Zeichenfolge NICHT ändern. Eine vollständige Liste der String-Methoden finden Sie hier.
Strings unterstützen auch die Vergleichsoperatoren == und !=, um zu prüfen, ob zwei Strings gleich sind
3.2.6 List
Eine Liste in Python ist eine geordnete Sammlung von Werten. Listen können Werte unterschiedlicher Datentypen enthalten und Vorgänge zum Hinzufügen, Entfernen und Ändern von Werten unterstützen. Listen haben den Typ list.
Um eine Liste zu erstellen, schließen Sie eine Werteliste in eckige Klammern [ und ] ein, getrennt durch Kommas.
Versuchen wir, eine Liste mit Werten verschiedener Datentypen zu erstellen, einschließlich einer anderen Liste.
Um die Anzahl der Werte in einer Liste zu bestimmen, verwenden Sie die Funktion len. Im Allgemeinen kann die Funktion len zur Bestimmung von Werten in mehreren anderen Datentypen verwendet werden.
Sie können auf die Elemente einer Liste zugreifen, indem Sie den Index des Elements verwenden, beginnend mit dem Index 0.
Wenn Sie versuchen, auf einen Index zuzugreifen, der gleich oder größer als die Länge der Liste ist, gibt Python einen IndexError zurück.
--------------------------------------------------------------------------- IndexError Traceback (most recent call last) Cell In[145], line 1 ----> 1 fruits[3] IndexError: list index out of range
--------------------------------------------------------------------------- IndexError Traceback (most recent call last) Cell In[146], line 1 ----> 1 fruits[4] IndexError: list index out of range
--------------------------------------------------------------------------- IndexError Traceback (most recent call last) Cell In[150], line 1 ----> 1 fruits[-4] IndexError: list index out of range
Sie können auch über die Liste auf einen Wertebereich zugreifen. Das Ergebnis ist selbst eine Liste. Schauen wir uns einige Beispiele an.
Beachten Sie, dass der Startindex (2 im obigen Beispiel) des Bereichs in der Liste enthalten ist, der Endindex (5 im obigen Beispiel) jedoch nicht. Das Ergebnis hat also 3 Werte (Indizes 2,3 und 4).
Die flexible und interaktive Natur von Jupyter-Notebooks macht sie zu einem großartigen Werkzeug für Lernen und Experimentieren. Die meisten Fragen, die beim ersten Erlernen von Python auftauchen, können einfach durch Eingabe des Codes in eine Zelle und Ausführung desselben gelöst werden. Lassen Sie Ihrer Neugier freien Lauf und entdecken Sie, was mit Python möglich ist und was nicht!
Sie können den Wert an einem bestimmten Index innerhalb einer Liste auch mithilfe der Zuweisungsoperation ändern.
Mit der Methode append kann am Ende einer Liste ein neuer Wert hinzugefügt werden.
Ein neuer Wert kann auch mit der Methode insert in einen bestimmten Index eingefügt werden.
Sie können einen Wert mit der Methode remove aus der Liste entfernen.
Was passiert, wenn eine Liste mehrere Instanzen des an .remove übergebenen Werts enthält?
Um ein Element aus einem bestimmten Index zu entfernen, verwenden Sie die Methode pop. Die Methode gibt auch das entfernte Element zurück.
Wenn kein Index bereitgestellt wird, entfernt die Methode pop das letzte Element der Liste.
Mit dem in-Operator können Sie testen, ob eine Liste einen Wert enthält.
Um zwei oder mehr Listen zu kombinieren, verwenden Sie den Operator +. Dieser Vorgang wird auch Verkettung (concatenation) genannt.
Um eine Kopie einer Liste zu erstellen, verwenden Sie die Methode copy. Das Ändern der kopierten Liste hat keine Auswirkungen auf die ursprüngliche Liste.
['apple', 'cherry', 'tomato', 'guava', 'dates']
['apple', 'cherry', 'pineapple', 'tomato', 'guava', 'dates', 'banana']
Beachten Sie, dass Sie keine Kopie einer Liste erstellen können, indem Sie einfach eine neue Variable mit dem Zuweisungsoperator = erstellen. Die neue Variable verweist auf dieselbe Liste und alle mit einer Variablen vorgenommenen Änderungen wirken sich auf die andere aus.
Genau wie bei Strings gibt es mehrere integrierte Methoden zum Bearbeiten einer Liste. Im Gegensatz zu Zeichenfolgen ändern die meisten Listenmethoden jedoch die ursprüngliche Liste, anstatt eine neue zurückzugeben. Schauen Sie sich hier einige gängige Listenoperationen an.
3.2.7 Tuple
Ein Tupel ist eine geordnete Sammlung von Werten, ähnlich einer Liste, jedoch ist es nicht möglich, Werte in einem Tupel hinzuzufügen, zu entfernen oder zu ändern. Ein Tupel wird erstellt, indem Werte in Klammern ( und ), getrennt durch Kommas, eingeschlossen werden.
Jede Datenstruktur, die nach der Erstellung nicht mehr verändert werden kann, wird als unveränderlich bezeichnet. Sie können Tupel als unveränderliche Listen betrachten.
Lassen Sie uns einige Experimente mit Tupeln durchführen.
--------------------------------------------------------------------------- TypeError Traceback (most recent call last) Cell In[190], line 2 1 # try to change an element ----> 2 fruits[0] = 'avocado' TypeError: 'tuple' object does not support item assignment
--------------------------------------------------------------------------- AttributeError Traceback (most recent call last) Cell In[191], line 2 1 # try to append an element ----> 2 fruits.append('blueberry') AttributeError: 'tuple' object has no attribute 'append'
--------------------------------------------------------------------------- AttributeError Traceback (most recent call last) Cell In[192], line 2 1 # try to remove an element ----> 2 fruits.remove('apple') AttributeError: 'tuple' object has no attribute 'remove'
Sie können beim Erstellen eines Tupels auch die Klammern ( und ) überspringen. Python wandelt durch Kommas getrennte Werte automatisch in ein Tupel um.
Sie können ein Tupel auch mit nur einem Element erstellen, wenn Sie nach dem Element ein Komma einfügen. Wenn Sie es einfach mit den Klammern ( und ) umschließen, wird kein Tupel erstellt.
Tupel werden oft verwendet, um mehrere Variablen mit einer einzigen Anweisung zu erstellen.
Sie können eine Liste mit der Funktion tuple in ein Tupel umwandeln und umgekehrt mit der Funktion list.
Tupel haben nur zwei integrierte Methoden: count und index. Es gibt eine einfache Möglichkeit, die Dokumentation einer Methode mithilfe der help Funktion zu überprüfen.
Help on built-in function count:
count(value, /) method of builtins.tuple instance
Return number of occurrences of value.
In einem Jupyter-Notizbuch können Sie eine Codezelle auch mit „?“ beginnen und den Namen einer Funktion oder Methode eingeben. Wenn Sie diese Zelle ausführen, wird die Dokumentation für die Funktion/Methode in einem Popup-Fenster angezeigt.
3.2.8 Dictionary
Ein Dictionary ist eine ungeordnete Sammlung von Elementen. Jedes in einem Dictionary gespeicherte Element hat einen Schlüssel und einen Wert. Schlüssel werden verwendet, um Werte aus dem Dictionary abzurufen. Dictionaries haben den Typ dict.
Dictionaries werden oft verwendet, um viele Informationen, z.B. Details über eine Person, in einer einzigen Variable zu speichern. Dictionaries werden erstellt, indem Schlüssel-Wert-Paare in geschweiften Klammern { und } eingeschlossen werden.
Dictionaries können auch mit der Funktion dict erstellt werden.
Schlüssel können verwendet werden, um auf Werte zuzugreifen, die die eckigen Klammern [ und ] verwenden.
Wenn ein Schlüssel nicht im Dictionary vorhanden ist, wird ein KeyError zurückgegeben.
--------------------------------------------------------------------------- KeyError Traceback (most recent call last) Cell In[218], line 1 ----> 1 person1['address'] KeyError: 'address'
Die Methode get kann auch verwendet werden, um auf den mit einem Schlüssel verknüpften Wert zuzugreifen.
Die Methode get akzeptiert auch einen Standardwert, der zurückgegeben wird, wenn der Schlüssel nicht im Dictionary vorhanden ist.
Mit dem in Operator können Sie überprüfen, ob ein Schlüssel in einem Dictionary vorhanden ist.
Sie können den einem Schlüssel zugeordneten Wert mithilfe des Zuweisungsoperators ändern.
Der Zuweisungsoperator kann auch verwendet werden, um dem Dictionary neue Schlüssel-Wert-Paare hinzuzufügen.
{'name': 'John Doe',
'sex': 'Male',
'age': 32,
'married': True,
'address': '1, Penny Lane'}
Um einen Schlüssel und den zugehörigen Wert aus einem Dictionary zu entfernen, verwenden Sie die Methode pop.
Dictonaries bieten auch Methoden zum Anzeigen der Liste der darin enthaltenen Schlüssel, Werte oder Schlüssel-Wert-Paare.
dict_items([('name', 'John Doe'), ('sex', 'Male'), ('age', 32), ('married', True)])
--------------------------------------------------------------------------- TypeError Traceback (most recent call last) Cell In[234], line 1 ----> 1 person1.items()[1] TypeError: 'dict_items' object is not subscriptable
Das Ergebnis der Funktionen keys, values oder items sieht zwar aus wie Listen, unterstützt aber anscheinend nicht den Indexoperator [] zum Abrufen von Elementen.
Dictionaries bieten viele weitere Methoden. Mehr darüber erfahren Sie hier.
3.3 Weiterführende Literatur
Wir haben unsere Untersuchung von Variablen und gängigen Datentypen in Python nun abgeschlossen. Im Folgenden finden Sie einige Ressourcen, um mehr über Datentypen in Python zu erfahren: