Informationen zu Python-Variablen und -Objekten

■ Über Variablen

In Programmiersprachen ist eine Variable ein Bereich, in dem ein Wert gespeichert ist. Für Python müssen Sie keine Variablen deklarieren, bevor Sie sie verwenden. Der Bereich wird vorbereitet, wenn Sie der Variablen einen Wert zuweisen. In einer objektorientierten Sprache wie Python ist es am besten, sich eine Variable als "Referenz" vorzustellen, die auf den Wert der Variablen und nicht auf den Wert selbst verweist.

>>> name1 = "Ichiro Yamada"

◎ Abbildung n1 n1.png

Alternativ kann der "Variablenname" als ein tagartiges Bild betrachtet werden, das im Wert festgelegt ist.

◎ Abbildung n2 n2.png

Wenn Sie einer anderen Variablen eine Variable zuweisen, zeigt diese auf denselben Wert, wie unten gezeigt.

>>> name1 = "Ichiro Yamada"
>>> name2 = name1

◎ Abbildung n3 n3.png

■ Überprüfen Sie die ID des Objekts mit der Funktion id ()

In Python sind alle Werte, einschließlich Zahlen und Zeichenfolgen, Objekte. Verwenden Sie die Funktion id (), um die ID (Identifikationswert) eines Objekts zu ermitteln. Wenn die Funktion id () mit dem Variablennamen als Argument ausgeführt wird, wird die ID des referenzierten Objekts angezeigt. Wenn Sie die IDs der Variablen name1 und name2 mit der Funktion id () im obigen Beispiel nachschlagen, können Sie sehen, dass sie sich auf Objekte mit derselben ID beziehen.

>>> name1 = "Ichiro Yamada"
>>> name2 = name1
>>> id(name1)
4339005200 ← Gleiche ID
>>> id(name2)
4339005200 ← Gleiche ID

■ Wenn Sie einer Variablen einen Wert neu zuweisen

Was ist, wenn Sie einer Variablen einen anderen Wert zuweisen? Im folgenden Beispiel wird zuerst 10 der Variablen num in ① zugewiesen, "1" wird zum Wert der Variablen num in ② addiert und es wird der Variablen num zugewiesen.

>>> num = 10	←①
>>> num = num + 1	←②

In diesem Fall wird in (2) ein neues Objekt mit dem Wert "11" erstellt und seine Referenz in der Variablen num gespeichert. Mit anderen Worten, in ① und ② zeigt die Variable num auf ein anderes Objekt. Dies kann mit der Funktion id () bestätigt werden.

>>> num = 10
>>> id(num)
4297538176
>>> num = num + 1
>>> id(num)
4297538208 ← ID geändert (Referenz geändert)

■ Veränderliche und unveränderliche Werte

Python-Datentypen werden grob in "veränderbare" Typen, deren Werte später geändert werden können, und "unveränderliche" Typen, die nicht geändert werden können, unterteilt.

Veränderbare Liste, Wörterbuch, Satz, .... Unveränderliche Saiten, Zahlen, Taples, ...

In Python sind auch grundlegende Datentypen wie Zeichenfolgen und Zahlen unveränderlich, dh Typen, die später nicht mehr geändert werden können. Übrigens wurde im obigen Beispiel 1 zum Wert der Variablen num addiert und der Variablen num neu zugewiesen.

>>> num = 10		←①
>>> num = num + 1	←②

Auf den ersten Blick scheint dies den Wert der Variablen num zu ändern. Ist der numerische Typ also kein veränderlicher Typ? Sie könnten denken, aber es ist nicht. Wie Sie dem Ausführungsergebnis der Funktion id () entnehmen können, zeigt die Variable num auf unterschiedliche Werte in ① und ②.

■ Liste ist veränderlich, Taple ist unveränderlich

In Python ist eine "Liste" ein veränderbarer Typ, dh ein Typ, dessen Wert später geändert werden kann. Das folgende Beispiel generiert eine Liste "age" mit drei Ganzzahlen als Elementen und ändert das dritte Element.

>>> ages = [1, 2, 3]
>>> ages[2] = 4
>>> ages
[1, 2, 4]

Bei Betrachtung der Funktion id () ist es selbstverständlich, dass sich die ID auch nach Änderung des Werts des Elements nicht geändert hat.

>>> ages = [1, 2, 3]
>>> id(ages)
4338960072
>>> ages[2] = 4
>>> id(ages)
4338960072 ← ID ist dieselbe

Tapuru hingegen ist ein unveränderlicher Typ. Der Versuch, den Wert eines Elements zu ändern, führt zu einem Fehler.

>>> nums = (1, 2, 3)
>>> nums[0] = 0
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'tuple' object does not support item assignment

■ Zeichenketten sind ebenfalls unveränderlich

Die Zeichenfolge ist ebenfalls ein unveränderlicher Typ. Wenn Sie daher versuchen, die internen Zeichen wie folgt zu ändern, wird eine Fehlermeldung angezeigt.

>>> str = "abc"
>>> str[1] = "d" #Das zweite Zeichen ist ""d"Ersatz
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'str' object does not support item assignment

Schauen wir uns als Beispiel, das leicht missverstanden wird, das folgende Beispiel an.

>>> str = "abc"
>>> str = str + "bcd" #str und"bcd"Verkettet und neu zugeordnet zu str ← ①
>>> str
'abcbcd'

In diesem Beispiel sieht es so aus, als ob die Zeichenfolge geändert wurde, da die Variable str und die Zeichenfolge "" bcd "" in ① verkettet sind. Dies ist jedoch nicht der Fall. In ① wird eine neue Zeichenfolge "" abcbcd "" generiert und ihre Referenz in der Variablen str gespeichert. Wenn Sie mit der Funktion id () überprüfen, können Sie sehen, dass die ID nach ① geändert wurde.

>>> str = "abc"
>>> id(str)
4301952704
>>> str = str + "bcd"
>>> id(str)
4339056968 ← ID geändert
>>> str
'abcbcd'

Recommended Posts

Informationen zu Python-Variablen und -Objekten
Über Python, len () und randint ()
Informationen zu Python-Datums- und Zeitzone
Python-Klassen- und Instanzvariablen
Python-Variablen und Objekt-IDs
Über Python und reguläre Ausdrücke
Informationen zu Python- und Betriebssystemoperationen
Python # Über Referenz und Kopie
Über Python sort () und reverse ()
Erste Schritte mit Python3 # 2 Erfahren Sie mehr über Typen und Variablen
[Python] -Variablen
Über _ und __
Informationen zur Installation der Serien Pwntools und Python2
Perl-Objekt und Python-Klasse Teil 2.
Über Python-Diktat und sortierte Funktionen
Über Python und Cython dtype
Zuweisungen und Änderungen in Python-Objekten
Über Python Pickle (cPickle) und Marschall
[Python] Über Executor und zukünftige Klassen
Über Python, aus und importieren, als
Perl-Objekt und Python-Klasse Teil 1.
Über Python-Slices
Über die Einschlussnotation von Python
[Python] Verwenden Sie und und oder beim Erstellen von Variablen
Über Python tqdm.
Über die Python-Ausbeute
Über Python, Klasse
Informationen zur Python-Vererbung
Über Python, range ()
Über Python Decorator
Eine Geschichte über Python Pop und Append
Informationen zur Python-Referenz
Über Python-Dekorateure
[Python] Über Multi-Prozess
Apropos alte und neue Klassen in Python
Apropos Python-Klassenattribute und Metaklassen
[Einführung in Python3 Tag 12] Kapitel 6 Objekte und Klassen (6.3-6.15)
Python-Variablen und Datentypen, die mit Chemoinfomatik gelernt wurden
Unterschied zwischen Variablen und Selbst. Variablen in der [Python] -Klasse
Eine Geschichte, die von Go's globalen Variablen und ihrem Umfang abhängig ist
Denken Sie an Suchvorgänge mit Tiefenpriorität und Breitenpriorität in Python
Über den Unterschied zwischen "==" und "is" in Python
[Einführung in Python3 Tag 11] Kapitel 6 Objekte und Klassen (6.1-6.2)
[Python] Kapitel 02-01 Grundlagen von Python-Programmen (Operationen und Variablen)
Probleme mit pseudo-privaten Python-Variablen und Klassenvererbung
Eine Geschichte über das Ändern von Python und das Hinzufügen von Funktionen
[Python] Erfahren Sie mehr über asynchrone Programmierung und Ereignisschleifen
Über flache und tiefe Kopien von Python / Ruby
[Python] Komprimieren und dekomprimieren
Über Klasse und Instanz
Python-Memorandum-Nummerierungsvariablen
Über Funktionsargumente (Python)
Globale und lokale Variablen 2
Python Iterator und Generator
Python-Pakete und -Module
Vue-Cli- und Python-Integration
[Python] Memo über Funktionen