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