Was sind Literale in Python? [Duplikat]

7

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.

    
silenz 09.12.2015, 21:13
quelle

4 Antworten

14

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.

    
chepner 09.12.2015 21:19
quelle
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:

  • Zeichenfolgenliterale wie 'Düsseldorf' , u'Köln' (die erste ist ein Bytezeichenfolgenliteral in Python 2.x)
  • Byte-String-Literale wie b'\x89PNG'
  • Ganzzahlliterale wie -12
  • Float-Literale wie 1.2e-19
  • komplexe Literale wie 1+2.3j
  • Boolesche Literale: True und False (keine Literale in älteren (2.x) Python-Versionen)
  • None
  • Tupel: (1, 2, 3)
  • Listen: [1, 2, 3]
  • Kommentare: {1: 'one', 2: 'two'}
  • Mengen: {1, 2, 3}
phihag 09.12.2015 21:21
quelle
1

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.

    
Tom Karzes 09.12.2015 21:19
quelle
1
  

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.

    
kindall 09.12.2015 21:21
quelle

Tags und Links