2014-06-09 127 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

相關問題