(5)python相關函式
一、前言
因個人習慣,在閱讀和學習文字資料時,習慣摘寫筆記,因此在這裡留下自己的學習記錄。筆記的內容偏摘抄為主,並非自己的原創內容。
內容基於:《簡明 Python 教程》Swaroop, C. H. 著沈潔元 譯
二、函式
(1)定義
函式是重用的程式段,可以為該程式段命名,然後允許在程式的熱河地方通過函式名呼叫該程式段(即呼叫函式)。
函式可以分為兩類:內建函式(python自帶的)、自定義函式(自己編寫的,通過def關鍵字定義的函式)
(2)內建函式
python已經為我們寫好的,可以直接呼叫的函式。如:
1、input():獲取一個系統輸入並返回一個字串(python2中有區分input()和raw_input(),python3去掉raw_input(),若要達到python2的input效果,可用eval(input())代替);
例子:value = input('輸入提示語') value是一個字串;value =(int)input('輸入提示語') value整數
2、range():有三個引數(start,stop,step),start=起始數(預設預設為0) stop=結束數(序列不包括結束數,不能預設) step=步長(即增量,不填預設為1,必須為非0整數,否則拋異常ValueError) 序列為[start,start+step,start+2*step.........stop],一般配合for語句使用。
3、len():返回字串、列表、字典、元組等長度,引數為(字串、列表、字典、元組等變數),返回長度值,類似Java的length()、size()方法。
4、dir():列出模組中的所有識別符號(變數、函式、類),指定模組則返回指定模組,不指定模組則返回當前模組
5、rjust(寬度,填充字元):返回指定寬度的字串,右對齊,右邊長度不足有指定填充符填充;例:字串變數名.rjust(100,'*')
(3)自定義函式
參考Java的形式,格式為 關鍵字(def) + 識別符號(函式名) + 圓括號(指定引數)+ 冒號(:) 換行開始程式段
函式的引數用逗號分隔,呼叫時以同樣的方式供值,函式中的引數名稱為形參,供函式呼叫的值為實參。
區域性變數:
在函式內宣告的變數,若與函式外的變數同識別符號,則兩者無任何關係。(作用域問題)
作用域:
變數的作用域是它們被定義的塊,始於被定以的邏輯行。
全域性變數:
函式內使用函式外的變數,操作的是函式外的變數(global關鍵字,類似於Java的this,須在變數使用前定義)。
允許指定同時多個全域性變數,變數用逗號分隔。global a,b,c
預設引數:
對於個別函式的引數,你希望它是可選的,即呼叫時不供值,則為函式提供預設的值。(只需在定義函式時,為相應引數賦值即可),注意:無預設值的形參必須在有預設值的形參前面(形參的定義順序)
關鍵引數:
定義:呼叫函式時,通過命名賦值為相應的形參供值。
優點:
1、可以忽略引數的順序(前提,呼叫函式時關鍵引數不能位於實參前面(傳統形式)),因為識別符號匹配(傳統是引數供值順序須與形參順序一致,從而匹配形參);例: func(c=100,2)這是錯誤的,除非2也是關鍵引數形式。
2、若所有形參都有預設值,我們可以只給需要的形參賦值。
pass:在python中表示一個空的語句塊。
三、特性
1、文件字串(DocStrings)
是一個重要的工具,在程式執行的時候,支援從函式恢復文件字串。
格式:三單引號的字串文字,一般寫一行、空一行、再在下一行繼續寫,作用是輸出函式說明,通過help(函式名)輸出DocStrings文字,或者 print 函式名.__doc__(左右兩個下劃線)列印指定函式的DocStrings文字。(一般用處不大,公共函式可以寫)
四、常用函式記錄
1、型別轉換相關
(1)str(object):將相應的資料型別轉成字串
(2)repr():將物件轉換為表示式
2、列表生成
(1)os.urandom(位數) :產生指定位數的隨機數(當然還可以指定隨機的型別,具體用法請自查)
(3)len(object):獲取序列個數(類java的size和length)
(4)rang(start,end,stud):獲取指定範圍隨機數值的列表
(5)type(object):獲取物件的型別
(6)input(“提示資訊”):獲取使用者系統輸入,等同python2的raw_input(),輸入均為轉為字串,python3去掉raw_input()
(7)eval('字串'):計算字串中的有效表示式,並返回一個物件
(8)dictObject.items():將字典返回可遍歷的元組列表(即列表的元素型別是元組)
五、一些具有特殊含義的變數
(1)__name__:當前模組名,當前程序執行則固定為__main__
(2)__init__:例項化物件前執行
(3)__del__:刪除例項前執行