What are Constants and Literal constants?

后端 未结 1 1020
忘了有多久
忘了有多久 2020-12-28 10:48

I\'m learning Python and i am just confused with the Constants and Literal constants.What are they?For what kind of purpose do we use them ? What is their difference from th

相关标签:
1条回答
  • 2020-12-28 11:30

    Answer after OP's edit

    A literal constant is an actual literal value; I know the word literal confuses you but an example might make it clearer. If you type the following in the REPL:

    >>> 2
    2
    >>> 'hello'
    'hello'
    

    2 and hello are actual literal constants and contrary to what you think, you can't change their value (well, you can, as a beginner, it's best to not know about that). When you have:

    stack = 2
    stack = 3
    

    You are first assigning the constant literal (though, honestly, don't worry about what it's called, it's the number 2) to stack. So, the name stack is pointing to the value 2. Then, by saying stack = 3, you are not changing the value 2; you are now making the name stack to point to another value, 3.

    For what it's worth, "constant literal" sounds complicated; just think of values like 2 or 'John' etc. as what they are. And with regards to actual constants (in programming constants are referred to variables that cannot be changed after assignment), that concept doesn't really exist in Python. A constant is when, for instance, you say stack = 2 but then you cannot ever change what stack is pointing to or you'll get an error. In Python, this concept does not exist.

    Original Answer:

    For starters, I recommend you read The story of None, True and False (and an explanation of literals, keywords and builtins thrown in) by Guido:

    A literal, on the other hand, is an element of an expression that describes a constant value. Examples of literals are numbers (e.g. 42, 3.14, or 1.6e-10) and strings (e.g. "Hello, world"). Literals are recognized by the parser, and the exact rules for how literals are parsed are often quite subtle.

    As for "constants", you cannot declare a variables as "true constants" in Python. There are a Built-in Constants like True and False and None in Python but even they are not"true constants" in Python 2.X as they can be assigned to point to another value:

    True = False
    if True:
        print 'Hey' 
    else:
        print 'WAAAT!'
    

    I hope this helps. If not, please edit your questions and give an example of what you mean exactly by Constants and Literal Constants.

    Note: True and False and the like are keywords in Python 3.x, so if you say True = False, the interpreter will raise SyntaxError: assignment to keyword.

    0 讨论(0)
提交回复
热议问题