學習廖雪峰python教程
1.python內建了很多有用的函式,我們可以直接呼叫。
1.在python中,定義乙個函式要使用 def語句,依次寫出函式名、括號、括號中的引數和冒號:,然後,在縮排塊中編寫函式體,函式的返回值用return語句返回。
我們以自定義乙個求絕對值的my_abs函式為例:
#-- coding: utf-8 --
def my_abs(x):
if x >= 0:
return x
else:
return -x
print(my_abs(-99)) => 99
2.在python互動環境中定義函式時,注意python會出現…的提示。函式定義結束後需要按兩次回車重新回到》提示符下
3.如果想定義乙個什麼事也不做的空函式,可以用pass語句:
def nop():
pass
pass語句什麼都不做,那有什麼用?實際上pass可以用來作為佔位符,比如現在還沒想好怎麼寫函式的**,就可以先放乙個pass,讓**能執行起來。
資料型別檢查可以用內建函式==isinstance()==實現:
def my_abs(x):
if not isinstance(x, (int, float)):
raise typeerror(『bad operand type』)
if x >= 0:
return x
else:
return -x
新增了引數檢查後,如果傳入錯誤的引數型別,函式就可以丟擲乙個錯誤:
>>> my_abs(『a』)
traceback (most recent call last):
file 「」, line 1, in
file 「」, line 3, in my_abs
typeerror: bad operand type
python的函式返回多值其實就是返回乙個tuple
1.def power(x, n=2):
s = 1
while n > 0:
n = n - 1
s = s * x
return s
這樣,當我們呼叫power(5)時,相當於呼叫power(5, 2):
而對於n > 2的其他情況,就必須明確地傳入n,比如power(5, 3)。
2.python函式在定義的時候,預設引數l的值就被計算出來了,即,因為預設引數l也是乙個變數,它指向物件,每次呼叫該函式,如果改變了l的內容,則下次呼叫時,預設引數的內容就變了,不再是函式定義時的了。
可以將預設引數改為none來解決這個問題
1.在引數前面加了乙個*號;
呼叫該函式時,可以傳入任意個引數,包括0個引數
2.python允許你在list或tuple前面加乙個*號,把list或tuple的元素變成可變引數傳進去
>>> extra =
>>> person(『jack』, 24, **extra)
name: jack age: 24 other:
在dict型別的資料前加**可將整個dict內的資料傳進引數中
如果要限制關鍵字引數的名字,就可以用命名關鍵字引數
——只接受某種命名的引數
引數定義的順序必須是:必選引數、預設引數、可變引數、命名關鍵字引數和關鍵字引數。
尾遞迴是指,在函式返回的時候,呼叫自身本身,並且,return語句不能包含表示式。這樣,編譯器或者直譯器就可以把尾遞迴做優化,使遞迴本身無論呼叫多少次,都只占用乙個棧幀,不會出現棧溢位的情況。
程式設計時無法呼叫 math 中的函式
工作進度1
這幾天的主要時間花在閱讀語言的ieee標準上,同時也在思考相應的詞法,語法模組的實現.按現在的理解來看,詞法模組的工作量並不太大,略微有點難度的就是對巨集定義命令和include檔案的處理.自己也基本上有了相應的實現思路,剩下的只是具體的工作量的問題.語法模組的工作可以劃分為兩個部分,第一部分是語法...
日誌 2012 03 12工作進度
目前已經完成了如下的部份 1 所有道具的補充。包括所有單位的特有道具和通用道具。這些道具在新增的副本中都會有途徑取得。大家可以利用藍色魔晶來交易碎片。原來的許多無用的道具已經廢棄,這些道具不需要您自己選擇,直接點一鍵煉金就可以變化成保留的道具或碎片。2 所有副本的修改。新增副本17個,已經配置完畢。...
webgate 重構 工作進度計畫
webgate 重構計畫 1 研究舊登入系統的業務邏輯 研究原有的 系統結構。和 模板 bmis 系統結構。webgate 系統,資源,賬戶,角色,元件,模組,功能 bmis 機構,剛問,使用者,功能,角色,機構用途。以及 日誌 功能。新增 1 快捷按鈕 將常用操作選單,設定為 快捷按鈕列表 2 2...