跳轉到內容

Python 從入門到精通/原生型別

來自華夏公益教科書,自由的教科書

Python 變數和內建型別

[編輯 | 編輯原始碼]

什麼是變數?

變數是記憶體中一個特定格式區域的符號名稱。該區域的格式是該區域的型別。與格式和型別密切相關的概念是使用。它被稱為變數是因為分配給它的值可以更改。由於 Python 中變數繫結靈活的性質,變數可以在程式的任何地方重新繫結到任何型別。

Python 3.x 的變數命名規則是現代程式語言的典型規則

 
Identifiers (also referred to as names) are described by the following lexical definitions.

The syntax of identifiers in Python is based on the Unicode standard annex UAX-31, 
with elaboration and changes as defined below; see also PEP 3131 for further details.

Within the ASCII range (U+0001..U+007F), the valid characters for identifiers are 
the same as in Python 2.x: the uppercase and lowercase letters A through Z, the 
underscore _ and, except for the first character, the digits 0 through 9.

Python 3.0 introduces additional characters from outside the ASCII range (see PEP 3131). 
For these characters, the classification uses the version of the Unicode Character Database 
as included in the unicodedata module.

Identifiers are unlimited in length. Case is significant.

換句話說,變數名可以是任何長度,可以使用任何大寫或小寫字母,下劃線和數字 0-9。但是,變數名不能以數字開頭。變數名區分大小寫。

特殊字元不被允許的原因之一是它們已經被保留用作運算子。

有效變數名的示例

myVariable
var1
x
X
_x

無效變數名的示例

1var - 錯誤,以數字開頭
my#Variable - 錯誤,變數名只能包含 a-z,A-Z,_ 和 0-9。不允許使用其他特殊字元。

區分大小寫示例

myVariable、myvariable 和 Myvariable 代表三個獨立的變數名。

Python 中的型別
什麼是型別?
正如我們所說,Python 支援兩種主要的數字型別:整數和實數。對我們人類來說,這兩種型別之間的區別在於整數型別表示整數或圓數,而實數型別還包括分數或有理數。我們沒有認識到我們在紙上表示方式之間的巨大區別,但我們知道對分數執行的操作通常需要額外的步驟。

計算機在整數和實數之間做出不同型別的區分,這部分是由於數字的內部表示和數字計算機必須用來對數字執行操作的方法。

Python 和其他計算機語言通常對不同型別的數字進行組合運算。例如,考慮將一個整數和一個實數相加,如 10 + 1.1。通常,計算機語言會將精度較低的型別轉換為精度較高的型別來執行操作,並將結果作為精度較高的型別返回。

Python 如何識別數字型別?它透過儲存型別以及值並保留指向它的索引,其中包括對它的活動引用的計數。變數名稱用於指向變數,實際上變數完全獨立於變數名稱存在。

Python 只有一些內建型別。

布林型別:您可以將 True 或 False 的值分配給變數。如果您想驗證布林值是它自己的型別,請在 Python 命令列中輸入以下程式碼

>>> type(True) <type 'bool'> >>> type(False) <type 'bool'>

注意:您可以對任何值、變數或識別符號使用 type() 函式,Python 會回顯或返回型別。

數字:Python 有常用的內建數字型別:實數和整數。Python 還支援複數.

複數始終表示為兩個浮點數,即實部和虛部

6+1j 表示 6 + -1 的平方根

在複數的情況下,虛部中使用的 j 不區分大小寫。6+1j 與 6+1J 相同。

整數的示例:-100、200、10000、123456789 整數可以是任意長度。Python 中整數的長度沒有限制。

實數的示例:-100.、200.2、10000.3、1234.56789 實數的大小有限制。使用 ?? 函式確定您的系統的限制。

複數的示例:1j 表示 0+1j 並表示 -1 的平方根 2j 表示 0+2j 並表示 -2 的平方根

字元和字串:Python 沒有專門用於單個字元的字元型別。用於字元資料的 Python 原語型別是字串類 <class 'str'>。

Python 的字串值是不可變的。當在記憶體中建立字串並將其分配給變數名時,字串不能更改。但是,該變數可以被分配一個新的或不同的字串值。

字串被認為是序列型別。Python 有六種內建序列型別:字串、位元組序列(位元組物件)、位元組陣列(bytearray 物件)、列表、元組和範圍物件。其他序列型別將在本教程的其他部分討論。

練習

1. 開啟命令列直譯器或 IDLE 命令 shell。嘗試在提示符下執行以下操作(在每一行之後按回車鍵)。觀察結果。對任何意外結果進行精神或其他記錄。考慮如何研究意外結果。

1
type(1)
type(-1)
type(-55555555555555555555555555555)
1.1
type(1.1)
1e5
type(1e5)
1j
type(1j)
1J
type(1J)
0+1j
1+1j
1+1j*2+1j
(1+1j)*(2+1j)
type(1j)
type(1+1j)
10.1*1+1j
type(10.0*1+1j)
dog
'dog'
type(dog)
type('dog')
false
False
'False'
"False"
type(False)
type(True)
華夏公益教科書