我正在学习Python,我只是与常量和文字常量相混淆。它们是什么?我们使用它们的目的是什么?它们与正常变量的区别是什么?
非常感谢。
编辑:
我是一个真正的初学者。作为初学者,我可以说我对编程世界一无所知。就像我不知道什么是表达式,反之亦然。
我一直在使用"来学习python语言。一个字节的python"书和书中的某个地方我遇到了一个讨论文字和常量的部分。我在那里分享那个部分:
5.2。文字常数
文字常量的一个例子是5,1.23或a之类的数字 字符串'这是一个字符串'或者"它是一个字符串!"
它被称为文字,因为它是文字的 - 你使用它的值 从字面上。数字2总是代表自己而不是别的 - 它 是一个常量,因为它的值不能改变。因此,所有这些 被称为文字常量。
它所说的,"它被称为文字,因为它是文字的 - 你从字面上使用它的价值",我只是没有得到这个部分。这本书是什么尝试的说我们在字面上使用这个值?另一个模糊点是数字2是常数,因为它的值不能改变。怎么可能?我们可以改变它,如:
stack = 2
stack = 3
首先,我将数字2分配给堆栈,然后我更改了堆栈的值(这是该书声称它是常量的数字2,因此无法更改)并为其分配了数字3。所以我很容易改变数字2的值。我真的很困惑,如果你没有明白我的观点,请告诉我,这样我可以提供更多的例子。谢谢你给你的时间。
答案 0 :(得分:7)
在OP编辑后回答
文字常量是实际的字面值;我知道文字这个词会让你感到困惑,但一个例子可能会让你更清楚。如果在REPL中键入以下内容:
>>> 2
2
>>> 'hello'
'hello'
2
和hello
是实际的字面常量,与您的想法相反,您无法改变它们的价值(嗯,作为初学者,您最好不要知道它) 。当你有:
stack = 2
stack = 3
你首先要为stack
分配常量字面值(不过,老实说,不要担心它的名称,它是数字2)。因此,名称stack
指向值2
。然后,通过说stack = 3
,您 不 更改值2
; 您现在将名称stack
指向另一个值3
。
对于它的价值,“常数字面积”听起来很复杂;只需将2
或'John'
等值视为它们。关于实际常量(在编程常量中指的是赋值后无法更改的变量),这个概念在Python中并不存在。例如,当你说stack = 2
但是你不能改变stack
指向的内容或者你会得到一个错误时,常数就是。在Python中,这个概念不存在。
原始答案:
对于初学者,我建议你阅读Guido的The story of None, True and False (and an explanation of literals, keywords and builtins thrown in):
另一方面,文字是描述常量值的表达式的元素。文字的例子是数字(例如42,3.14或1.6e-10)和字符串(例如“Hello,world”)。解析器识别文字,并且解析文字的确切规则通常非常微妙。
至于“常量”,你不能在Python中将变量声明为“真正的常量”。 Python中有Built-in Constants类True
和False
以及None
,但即使它们在Python 2.X中也不是“真正的常量”,因为它们可以指定为指向另一个值:
True = False
if True:
print 'Hey'
else:
print 'WAAAT!'
我希望这会有所帮助。如果没有,请编辑您的问题并举例说明Constants和Literal Constants的确切含义。
注意:True
和False
等是Python 3.x中的关键字,因此如果您说True = False
,则解释程序将引发SyntaxError: assignment to keyword
。