Identifiers are the set of valid strings which are allowed as names in a computer language. From this all-encompassing list, we segregate out those which are keywords, names that form a construct of the language. Such identifiers are reserved words which may not be used for any other purpose, or else a syntax error (SyntaxError exception) will occur.

Python also has an additional set of identifiers known as built-ins, and although they are not reserved words, use of these special names is not recommended.

Valid Python Identifiers

The rules for Python identifier strings are not unlike most other high-level programming languages:
First character must be letter or underscore ( _ )
Any additional characters can be alphanumeric or underscore
No identifiers can begin with a number, and no symbols other than the underscore are ever allowed. The easiest way to deal with underscores is to consider them as alphabetic characters. Case-sensitivity means that identifier foo is different from Foo, and both of those are different from FOO.