2 基本操作: 基本功能和內建數据的使用方法

當計算机: 進入中蟒互動環境后, 你可以當它是一部現成的計算机來用:

>>> 12 + 3
15
>>> 15 * 2
30
>>> 21%2  #(取余數)
1
>>> 12/13 #(因為答案要取整數值, 0.923... 會變成 0)
0
>>> 12.0 / 13 #(這樣就沒問題了, 因為中蟒明白你現在要小數
0.92307692307692313
>>> 12 + 3 * 3 #(先乘除, 后加減)
21
>>> 2 ** 4
16
>>> 2 ** 64 #(超出了最大整數上限)
OverflowError: integer exponentiation
>>> 2L ** 64 #(用了 2L, 中蟒知道你要用大整數, 就沒問題了)
18446744073709551616L

變量: 你可以在中蟒中定義一些變量, 并為給它們指定值
>>> 甲 = 12
>>> 乙 = 3
>>> 甲 + 乙
15
>>> 甲 + 乙**乙
39
>>> 甲 = 0 #(可以重新指定值)
>>> 乙 = 甲 + 1
>>> 寫 乙
1
>>> 刪除 甲 # 從變數表中除去 '甲', 共空出記憶体

字串: 字串是指一串的文字符. 如 "This  is a test", 或 "這個也算 1 個"

 中蟒內建了許多字串的操作. 其中特別針對中文做了几個常用到的函數. 包括:

\begin{verbatim}
>>> 甲 = "這是this字串"
>>> 甲.中英文字數()
8
>>> 甲.中文字數()
4
>>> 甲.英文字數()
4
>>> 甲.拆字()
[ '這', '是', 't', 'h', 'i', 's', '字', '串' ] 
>>> 甲.字串編碼() #傳回該字串的編碼
'國標'
>>> 乙 = 甲.強設編碼('大五') # 不做變換, 只改變編碼代號
>>> 丙 = 甲.國標變大五() # 做編碼變換
>>> 甲.十六進() # 以十六進位代表字串內容
'\\xb3\\x6f\\xac\\x4f\\x74\\x68\\x69\\x73\\xa6\\x72\\xa6\\xea'
>>> 長度(甲) # 記住中文字是占兩個位元的
12 
>>> 甲[0:2] # 抽出'甲'中的第 0 位到第 2 個子字串
'這'
>>> 寫 '這也' + 甲[2:]  # 產生一個新字串
'這也是this字串'

有几件事要留心:

抽取子字串時, 甲[始, 終] 里 '始' 是從 '0 位' 開始算的, 而 '終' 則是指到第几 '個'. 像上面字串中首字 '這' 的第位元是 '甲' 字串中的第 '0' 位, 但算是 第 '1' 個字元. 如果不給出 '始', '終' 則暗示從字串的頭, 尾開始數.

如果 '始', '終' 是負數的話, 則表示從字串的右面開始數起. '甲[-1]' 其實就是指最尾的字元

字串在中蟒屬于不可變型態. 你不能做 "甲[0] = 't'" 這樣的操作. 你只能利用字串中的值來產生新的字串, 像 " 甲 = 't' + 甲[1:] " 就沒問題了.

序列: 你可以把序列想像成是陣列. 分別是你可以用任何型態的值放到序列中. 同樣你可以抽取子序列. 和字串不同的是序列是可變的.

>>> 甲 = [ 'a', 12.5, 3, '你好' ] 
>>> 長度(甲)
4
>>> 甲[0] = 'wah'
>>> 寫 甲
[ 'wah', 12.5, 3, '你好' ] 
>>> 甲[2] = [ 3, 4, 5 ]
>>> 寫 甲
[ 'wah', 12.5, [ 3, 4, 5], '你好' ]
>>> 刪除 甲[0], 甲[1], 甲[2]  # 或者也可以用 "刪除 甲[0:3]"
>>> 寫 甲
[ '你好' ]
>>> 甲[:0] = [ 12 ] # 插入一個序列
>>> 寫 甲
[ 12, '你好' ]

字典: 字典其實也可以想像成一個陣列, 不過除了陣列中的元素可以是任何值外, 連陣列的索引也可以是任意字串或數字. 因為用起來很像字典的用法, 所以就叫字典型態了. 學術名字大概叫 "關鍵字索引式陣列".

>>> 甲 = { '我': 12, '你': 13, '他': 18 }
>>> 寫 甲 # 注意字典中各條的先后次序是不定的 !
{ '你' : 13, '我': 12, '他': 18 }
>>> 甲['我']
12
>>> 甲['我們'] = 22  # 可以隨時加入新條
>>> 甲.索引() # 取出字典中的所有條目
[ '我們', '我', '你', '他' ]
>>> 甲.值() # 取出字典中所有的值
[ 22, 12 ,13, 18 ]

另外一個學名是 '拼揍表'. 字典類是無法直接做子項抽取的, 必須先取出索引值. 意思就是如果 '甲' 是一個字典類, '甲[1]' 這樣句法是錯的, 要用 '甲.索引()[1]' 才行.

輸入輸出: 寫 變量: 把變量顯示到螢幕上, 另起一行

寫 變量1, 變量2, 變量3: 依之寫出變量組

寫 變量1, 變量2, : 如果最后加上 ',', 則不另起新一行

讀入(指示字串): 讀取用戶的鍵盤輸入

文件 = 打開(檔案名, 'r'): 打開文件檔以備讀取資料
文章 = 文件.讀(): 將文件內容全部讀入, 資料為字串型態
文章 = 文件.讀一行(): 依次讀取文件中的一行, 資料為字串型態
文章 = 文件.讀多行(): 全部讀入, 依 '回車' 鍵分成多行, 資料為序列型態
文件 關閉(): 關閉文件.

文件 = 打開(檔案名, 'w'): 打開文件檔以備寫出資料
文件.寫(字串): 把字串內容寫到檔案中去
文件.關閉(): 關閉文件. 注意文件書寫完, 很多時只是寫到暫存區中, 
有時要關閉文件才能把資料真正存到檔案中.

熟悉你的周圍: 中蟒提供了一些功能讓你檢視整個中蟒即譯器的狀態. 例如定義了哪些變量, 載入了什么模組, 內建函數的用法等. 這些功能被喚做 '自省' 功能. 可用的主要有

內容(): 目前的變量表里都有什么
內容(變量): 在 '變量' 中都定義了些什么
總內容: 和 '內容' 是一樣的不過同時也顯示英文項. 因為中蟒尚未完全翻譯完, 
所有有些功能必須參考英文版.
共用變數(): 整個程式中的全局變量表
私有變數(): 目前執行域的變量表
代號(變量): 中蟒為 '變量' 指派的代號, 如兩個變量代號一樣則兩變量是完全相同的. 
(在記憶体中占相同的地址)