2014-06-09 61 views
4

我正在学习Python,我只是与常量和文字常量混淆。他们是什么?我们使用它们的目的是什么?它们与正常变量有什么不同?什么是常量和文字常量?

非常感谢。

编辑:

我是一个真正beginner.As初学者的我可以说我对此事一无所知编程world.Like我不知道该怎么表达的,反之亦然。

我一直在学习中我碰到这谈论文字和constants.I分享那里的部分相当的部分书使用“的Python字节”的书和地方Python语言:

5.2. Literal Constants

An example of a literal constant is a number like 5 , 1.23 , or a string like 'This is a string' or "It's a string!" .

It is called a literal because it is literal - you use its value literally. The number 2 always represents itself and nothing else - it is a constant because its value cannot be changed. Hence, all these are referred to as literal constants.

它说,“它被称为文字,因为它是字面的 - 你从字面上使用它的价值”,我只是没有得到这部分。这本书试图说我们使用字面值?另一个模糊的点是?该号码2是一个常数,因为它的价值不能changed.How是有可能,我们可以改变它,如:

stack = 2 
stack = 3 

首先,我分配的号码2到堆栈然后我改变堆栈的值(这是2号,这本书被声称它是一个常数,因此它不能被改变)和分配的号码3给它。所以我很容易改变数字的价值2.我真的很困惑,如果你没有明白我的观点,请告诉我,我可以举出更多的例子。谢谢你给你的时间。

+1

你能举一个你的意思吗? – arshajii

+1

Python没有常量 - 具有'UPPERCASE'名称的变量按照惯例是常量,但是这不会在任何地方执行。 – jonrsharpe

+0

@arshajii我编辑了帖子并给出了示例。 – user3722727

回答

7

OP的编辑后回答

一个常量是一个实际的文本值;我知道文字这个词让你感到困惑,但是一个例子可能会让它更加清晰。如果你键入REPL如下:

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

2hello是实际的字面常量和违背你的想法,你不能改变自己的价值(当然,你可以,作为一个初学者,这是最好的不知道这一点)。当你有:

stack = 2 
stack = 3 

你是第一个分配常量文字(尽管,老实说,不用担心它叫什么,它的数量2)stack。所以,名称stack指向值2。然后,说stack = 3,你改变值2; 您正在做新的名称stack指向另一个价值,3

对于它的价值,“常量文字”听起来很复杂;只是想像2'John'等数值等等。关于实际的常量(在编程中,常量指的是赋值后不能改变的变量),这个概念在Python中并不存在。常数是,例如,当你说stack = 2,但然后你不能改变stack指向什么,否则你会得到一个错误。在Python中,这个概念不存在。

原来的答案:

对于初学者来说,我建议你读The story of None, True and False (and an explanation of literals, keywords and builtins thrown in)由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.

至于 “常量”,你不能声明变量作为在Python “真常量”。有一个Built-in Constants如同在Python TrueFalseNone,但即使他们不是“真正的常量”在Python 2.X,因为它们可以被分配到指向另一个值:

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

我希望这有助于。如果没有,请编辑你的问题,并举例说明你的意思是由常量和文字常数。

注意:TrueFalse等是Python 3.x中的关键字,所以如果您说True = False,解释器会提高SyntaxError: assignment to keyword

+0

IIRC在Python 3中,“True”和“False”是“true”常量... –

+1

修正了。谢谢。他们是关键字,并分配给他们现在引发了一个'SyntaxError:分配给关键字' – s16h

+0

@ s16h我真的无法从你的答案中得到任何想法。我编辑了我的帖子。 – user3722727

相关问题