Ich bin ein neuer Programmierer, der gerade die Nuancen von Python studiert. Meine Frage an Sie ist, was genau ist ein Literal in Python? Ich suchte die Antwort auf Google und in den Python-Dokumenten, aber google verweist nur auf String-Literale, und die Python-Dokumente geben nicht explizit an, was ein Literal ist. Ich stieß auf diese Seite Ссылка , die die folgende Antwort lieferte:
Objekte werden auch Datenstrukturen genannt. Python kommt mit einigen eingebauten Objekten. Einige werden so oft verwendet, dass Python diese Objekte, die sogenannten Literale, schnell erstellen können. Die Literale enthalten den String, Unicode-String, Integer, Float, Long, List, Tuple und Dictionary-Typen.
Stimmt das? Kann ich annehmen, dass Literale nur ein anderer Begriff für Pythons eingebaute Objekte sind? Gibt es weitere Literale, die in der Beschreibung nicht behandelt wurden? Ich hatte den Eindruck, dass es so etwas wie ein binäres Literal gab und dass Boolesche Zeichen auch als Literale betrachtet wurden.
Ein Literal ist etwas, das der Parser als Syntax erkennt, um ein Objekt direkt zu schreiben. Einige Beispiele in Python 2:
-3
, -2
, -1
, 0
, 1
, 2
, 3
( int
Literale) 2+3j
, 0+5j
, 2j
, -3-5j
( complex
Literale) 3.5
, -2.7
( float
Literale) ""
, "hello"
( str
Literale) u""
, u"hello"
( unicode
Literale) []
, [1,2]
( list
Literale) ()
, (1,)
, (1,2)
( tuple
Literale) {}
, {'a': 2}
( dict
Literale) {1,2,3}
( set
literal eingeführt in Python 2.7) None
(Ich denke dies wird als ein Literal und nicht als ein Schlüsselwort oder ein einfacher Name betrachtet.) Es gibt kein Literal für eine leere Menge, wie die offensichtliche Notation {}
ist
bereits ein dict
literal. Python 2 hat keine echten Booleschen Literale; True
und False
sind einfach eingebaute globale Namen für die booleschen Objekte. Ein Tupel wird technisch durch das Komma erzeugt, und die Klammern sind nur notwendig, wenn Sie den Ausdruck disambiguieren müssen. Die Ausnahme ist das leere Tupel ()
.
Siehe die Antwort von phihag für einige Unterschiede in Python 3.
literal ist ein sprachunabhängiger Programmierbegriff . Ein Literal ist eine prägnante und leicht sichtbare Möglichkeit, einen Wert zu schreiben. Zum Beispiel könnten Sie den Wert Null mit int()
konstruieren, aber 0
ist viel bequemer.
In Python sind die folgenden Literale verfügbar:
'Düsseldorf'
, u'Köln'
(die erste ist ein Bytezeichenfolgenliteral in Python 2.x) b'\x89PNG'
-12
1.2e-19
1+2.3j
True
und False
(keine Literale in älteren (2.x) Python-Versionen) None
(1, 2, 3)
[1, 2, 3]
{1: 'one', 2: 'two'}
{1, 2, 3}
In diesem Zusammenhang glaube ich, dass der Python-Parser nur eine eingebaute Syntax für diese Entitäten akzeptiert. Zum Beispiel ist "abc"
ein str
, 123
ist ein int
, 1.2
ist ein float
, usw.
Kann ich annehmen, dass Literale nur ein anderer Begriff für Pythons eingebaute Objekte sind?
Schließen. Sie sind eine Art zu schreiben (einige von) Pythons eingebauten Objekten. Wenn Sie beispielsweise eine bestimmte Zahl benötigen und diese nicht aus einer Datei oder vom Benutzer lesen oder aus einer Datenbank abrufen oder aus einem anderen Modul berechnen oder importieren oder oder oder ... können Sie ein numerisches Literal verwenden um es in Ihrem Code zu platzieren.
%Vor% number
Hier ist die Ganzzahl 42, die mit einem Literal angegeben wird.
Pythons True
und False
Werte (und None
) sind keine echten Literale, sondern vordefinierte Namen für diese Werte. Aber das Konzept ist ähnlich: Python gibt Ihnen eine Möglichkeit, diese Werte direkt in Ihren Code zu schreiben.
Fast alle Programmiersprachen haben Literale für die meisten häufig verwendeten Typen.
Tags und Links python