data types sensitiveso for exampletaxratetaxratetaxratetaxrateand taxrate are five different identifiers the precise set of characters that are permitted for the start and continuation are described in the documentation (python language referencelexical analysisidentifiers and keywords section)and in pep (supporting non-ascii identifiersthe second rule is that no identifier can have the same name as one of python' keywordsso we cannot use any of the names shown in table table python' keywords and continue except global lambda pass while as def false if none raise with assert del finally import nonlocal return yield break elif for in not true class else from is or try we already met most of these keywords in the preceding although of them--assertclassdelfinallyfromgloballambdanonlocalraisewithand yield--have yet to be discussed the first convention isdon' use the names of any of python' predefined identifiers for your own identifiers soavoid using notimplemented and ellipsisand the name of any of python' built-in data types (such as intfloatliststrand tuple)and any of python' built-in functions or exceptions how can we tell whether an identifier falls into one of these categoriespython has built-in function called dir(that returns list of an object' attributes if it is called with no arguments it returns the list of python' built-in attributes for exampledir(python ' list has an extra item'__package__['__builtins__''__doc__''__name__'the __builtins__ attribute isin effecta module that holds all of python' built-in attributes we can use it as an argument to the dir(functiondir(__builtins__['arithmeticerror''assertionerror''attributeerror''sum''super''tuple''type''vars''zip' "pepis python enhancement proposal if someone wants to change or extend pythonproviding they get enough support from the python communitythey submit pep with the details of their proposal so that it can be formally consideredand in some cases such as with pep accepted and implemented all the peps are accessible from www python org/dev/peps