一、前言
因個人習慣,在閱讀和學習文字資料時,習慣摘寫筆記,因此在這裏留下自己的學習記錄。筆記的內容偏摘抄爲主,並非自己的原創內容。
內容基於:《簡明 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__:刪除實例前執行