Για να δείτε μια λίστα με τις λέξεις-κλειδιά της Python (δεσμευμένες λέξεις), χρησιμοποιήστε τη λέξη-κλειδί

Επιχείρηση

Μια λίστα με τις λέξεις-κλειδιά της Python (δεσμευμένες λέξεις) μπορείτε να βρείτε στην ενότητα λέξεων-κλειδιών της τυπικής βιβλιοθήκης.

Οι λέξεις-κλειδιά (δεσμευμένες λέξεις) δεν μπορούν να χρησιμοποιηθούν ως ονόματα (αναγνωριστικά) για ονόματα μεταβλητών, ονόματα συναρτήσεων, ονόματα κλάσεων κ.λπ.

Οι ακόλουθες πληροφορίες παρέχονται εδώ.

  • Λήψη μιας λίστας λέξεων-κλειδιών της Python (δεσμευμένες λέξεις):keyword.kwlist
  • Ελέγξτε αν η συμβολοσειρά είναι λέξη-κλειδί (δεσμευμένη λέξη):keyword.iskeyword()
  • Η διαφορά μεταξύ λέξεων-κλειδιών και δεσμευμένων λέξεων

Όπως αναφέρθηκε στην προηγούμενη ενότητα, οι λέξεις-κλειδιά και οι δεσμευμένες λέξεις είναι αυστηρά διαφορετικές έννοιες.

Το ακόλουθο παράδειγμα κώδικα χρησιμοποιεί την Python 3.7.3. Σημειώστε ότι οι λέξεις-κλειδιά (δεσμευμένες λέξεις) μπορεί να διαφέρουν ανάλογα με την έκδοση.

Λήψη μιας λίστας λέξεων-κλειδιών της Python (δεσμευμένες λέξεις): keyword.kwlist

Η keyword.kwlist περιέχει μια λίστα με λέξεις-κλειδιά (δεσμευμένες λέξεις) στην Python.

Στο ακόλουθο παράδειγμα, η pprint χρησιμοποιείται για να κάνει την έξοδο πιο ευανάγνωστη.

import keyword
import pprint

print(type(keyword.kwlist))
# <class 'list'>

print(len(keyword.kwlist))
# 35

pprint.pprint(keyword.kwlist, compact=True)
# ['False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', 'break',
#  'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for',
#  'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not',
#  'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']

Τα στοιχεία της λίστας είναι συμβολοσειρές.

print(keyword.kwlist[0])
# False

print(type(keyword.kwlist[0]))
# <class 'str'>

Αν προσπαθήσετε να χρησιμοποιήσετε αυτά τα ονόματα ως αναγνωριστικά (ονόματα μεταβλητών, συναρτήσεων, κλάσεων κ.λπ.), θα λάβετε ένα σφάλμα.

# True = 100
# SyntaxError: can't assign to keyword

Ελέγξτε αν η συμβολοσειρά είναι λέξη-κλειδί (δεσμευμένη λέξη): keyword.iskeyword()

Μπορείτε να ελέγξετε αν μια συμβολοσειρά είναι λέξη-κλειδί (δεσμευμένη λέξη) χρησιμοποιώντας την keyword.iskeyword().

Όταν καθορίζετε τη συμβολοσειρά που θέλετε να ελέγξετε ως όρισμα, επιστρέφει true αν είναι λέξη-κλειδί και false αν δεν είναι.

print(keyword.iskeyword('None'))
# True

print(keyword.iskeyword('none'))
# False

Η διαφορά μεταξύ λέξεων-κλειδιών και δεσμευμένων λέξεων

Παρόλο που τις χρησιμοποιούμε χωρίς να κάνουμε καμία διάκριση, αυστηρά μιλώντας, οι λέξεις-κλειδιά και οι δεσμευμένες λέξεις είναι δύο διαφορετικές έννοιες.

  • Λέξεις-κλειδιά: λέξεις με ιδιαίτερη σημασία στις γλωσσικές προδιαγραφές
  • Προεπιλεγμένες λέξεις: λέξεις που πληρούν τους κανόνες για τα αναγνωριστικά ως συμβολοσειρές, αλλά δεν μπορούν να χρησιμοποιηθούν ως αναγνωριστικά.

Δείτε τους παρακάτω συνδέσμους για περισσότερες λεπτομέρειες, συμπεριλαμβανομένων παραδειγμάτων όπως το goto είναι δεσμευμένη λέξη αλλά όχι λέξη-κλειδί στη Java.

In a computer language, a reserved word (also known as a reserved identifier) is a word that cannot be used as an identifier, such as the name of a variable, function, or label – it is «reserved from use». This is a syntactic definition, and a reserved word may have no user-define meaning.
A closely related and often conflated notion is a keyword, which is a word with special meaning in a particular context. This is a semantic definition. By contrast, names in a standard library but not built into the language are not considered reserved words or keywords. The terms «reserved word» and «keyword» are often used interchangeably – one may say that a reserved word is «reserved for use as a keyword» – and formal use varies from language to language; for this article we distinguish as above.
Reserved word – Wikipedia

Keywords have a special meaning in a language, and are part of the syntax.
Reserved words are words that cannot be used as identifiers (variables, functions, etc.), because they are reserved by the language.
language agnostic – What is the difference between «keyword» and «reserved word»? – Stack Overflow

Στην Python (τουλάχιστον από την Python 3.7) όλες οι λέξεις-κλειδιά είναι δεσμευμένες λέξεις και δεν υπάρχουν άλλες δεσμευμένες λέξεις εκτός από τις λέξεις-κλειδιά, οπότε είναι ασφαλές να τις χρησιμοποιείτε χωρίς να κάνετε καμία διάκριση.

Δείτε επίσης το ακόλουθο άρθρο για ονόματα που μπορούν να χρησιμοποιηθούν ως αναγνωριστικά.