4 定義函數: 結构化編程概念

中蟒有 '定義' 和 '函數' 兩個關鍵字來定義函數. 這兩個字是通用的.

很多人都愛把常用的指令組用一個代號(函數名)表示, 當程式需要該項功能時便只需調用該函數. 多用函數可以養成編寫結构化程式的習慣.

例子:

定義 問電話(人名, 關系 = '朋友'):
     """這里是說明文件, 隨便你打什么. 不寫也行
	如果寫了的話會成為 "問電話.__說明___" """
     問句 = "請問你中蟒的" + 關系 + 人名 + "家的電話是多少號 ? ")
     答 = 輸入(問句)
     傳回 人名 + 關系 + 答

電話1 = 問電話('青竹蛇')
電話2 = 問電話('大蟒', '爸爸')
電話本 = [ 電話1, 電話2 ] 

取 名字 自 [ '腹蛇', '響尾蛇', '大懶蛇']:
   電話本.附加(問電話(名字))

(記住要加冒號)

每個函數在調用時可以用不同的參數, 像上面那樣. 不用參數也行, 不過函數的彈性也較低.

中蟒允許預設參數. 像上面的 '關系' 值, 如果調用時不給出該參數值則會使用預設的值.

有時候函數需要用任意數量的參數, 簡單的做法是把所有參數包在一個元組或序列中傳遞.

嵌套函數也可以, 不過通常情況下并不需要這樣做.

不過要記住, 因為中蟒是即譯語言, 用太多函數會造成系統的負擔, 這是因為每次調用函數都要經過一輸尋找, 運行域轉換等的工作. 其實就算是編譯語言, 函數最好也不要用的太濫.