函式
函式的作用:
結構化程式設計對**的最基本的封裝,一般按照功能組織一段**。
封裝的目的為了復用,減少餘**。、
**更加簡潔美觀,可讀易懂。
函式分類
內建函式:max(),reversed()等。
庫函式:math.celi()等。
函式定義,呼叫
def語句定義函式:
def 函式名(引數列表):
函式體(**塊)
[return 返回值]
函式名就是識別符號,命名要求一樣
語句塊必須縮排,約定4個空格。
python的函式沒有return語句,隱式會返回乙個none值。
定義中的引數列表成為形式引數,只是一種符號表達,簡稱形參。
呼叫函式定義,只是宣告乙個函式,他不會被執行,需要呼叫。
呼叫的方式,就是函式名加上小括號,括號內寫上引數。
呼叫時寫的引數是實際引數,是實實在在傳入的值,簡稱實參。
引數傳遞
在python中,型別屬於物件,變數是沒有型別的:
a = [1.2.3] a = 'runoob'
上例中,[1,2,3]是list型別『runoob』是string型別,而變數a是沒有型別,它僅僅是乙個物件大的引用,是乙個指向list型別物件,也可以是指向string型別物件。
不可更改和可更改物件
string,tuples,numbers是不可更改物件,list,dict是可以修改物件。
不可變型別:變數賦值a=5後再賦值a=10,這裡實際是新生成乙個int值物件10,在讓a指向它,而5被丟棄,不是改變a的值,相當於新生成了a.
可變型別:變數賦值 lan=[1,2,3,4]後再賦值la[2]=5則是將list la的第三個元素值更改,它本身沒有動,只是內部一部分值被修改。
引數必須引數,關鍵字引數,預設引數,不定長引數
必須引數:要以正確的順序傳入函式。呼叫時的數量必須和宣告式的一樣。呼叫printme()函式,必須傳入乙個引數。
關鍵字引數:
關鍵字引數和函式呼叫關係緊密,函式呼叫使用關鍵字引數來確定傳入的引數值。
使用關鍵字引數允許函式呼叫時引數的順序與宣告時不一致,因為 python 直譯器能夠用引數名匹配引數值。
預設引數:呼叫函式時,如果沒有傳遞引數,不會使
用預設引數:
#可寫函式說明
defprintinfo
(name
,age =35
):"列印任何傳入的字串"
("名字: "
,name
("年齡: "
,age
)return
#呼叫printinfo函式
printinfo
(age=50
,name
="runoob"
("------------------------"
)printinfo
(name
="runoob"
)
你可能需要乙個函式能處理比當初宣告時更多的引數。這些引數叫做不定長引數,和上述2種引數不同,宣告時不會命名。基本語法如下:
def加了星號(*)的變數名會存放所有未命名的變數引數。如果在函式呼叫時沒有指定引數,它就是乙個空元組。我們也可以不向函式傳遞未命名的變數。如下例項:functionname
([formal_args,]*
var_args_tuple
):"函式_文件字串"
function_suite
return
[expression
]
#!/usr/bin/python3以上例項輸出結果:# 可寫函式說明
defprintinfo
(arg1,*
vartuple
):"列印任何傳入的引數"
("輸出: "
(arg1
)for
varin
vartuple
(var
)return
# 呼叫printinfo 函式
printinfo(10
)printinfo(70
,60,50
)
輸出:宣告函式時,引數中星號(*)可以單獨出現,例如:10輸出:
7060
50
deff(用法:星號(*)後的引數必須用關鍵字傳入。a,b,*,c):
returna+
b+c
>>>全域性變數和區域性變數deff(a
,b,*,c
):...
returna+
b+c...
>>>f(
1,2,
3)# 報錯
traceback
(most recent call
last
):file"",
line 1,
intypeerror:f
()takes
2positional arguments but
3were given
>>>f(
1,2,
c=3)
# 正常
6>>>
定義在函式內部的變數擁有乙個區域性作用域,定義在函式外的擁有全域性作用域。
區域性變數只能在其被宣告的函式內部訪問,而全域性變數可以在整個程式範圍內訪問,呼叫函式時,所有在函式內宣告的變數名稱都將被加入到作用域中。
當區域性作用域想修改外部作用域的變數時,就要用到global和nonlocal關鍵字進行修改。
Python MIMEMultipart 修改資訊
今天呼叫同事的mail模組,由於預設讀取配置檔案來獲取to 收件人 資訊,不想改他 於是嘗試在外部賦值 message info to xx xx.com 注 message info mimemultipart alternative 發現收件人仍是之前配置檔案中的收件人,而不是我賦值的xx 查詢...
修電腦奇遇
原文寫於23 april 2007 注 昨天下午到乙個朋友家修電腦,遇著怪事 一進系統,開啟 我的電腦 我的電腦 視窗就會狂閃,非常快速的不斷全屏 還原 全屏 還原,無休止 按鍵盤 開始 或者狂按 alt f4 能夠讓它停下來,之後一切正常。ie也是這樣。也不是每次開機都會這樣,有時沒事有時不行 初...
修電腦總結
從周五晚搞到週六晚,嘗試n多方法,最終以乙個盤的資料為代價修好電腦。事情是這樣的,之前電腦裝的ubantu和windows,用於學習命令列。偶然間發現c盤容量較小,於是在磁碟管理裡面給c盤重新分配了一些空間,導致重新開機時候,linux的開機引導介面檔案消失,不能正常引導開機,沒有了系統選擇介面,出...