python function 修復檔案 05

2021-08-20 17:37:53 字數 2965 閱讀 4803

函式

函式的作用:

結構化程式設計對**的最基本的封裝,一般按照功能組織一段**。

封裝的目的為了復用,減少餘**。、

**更加簡潔美觀,可讀易懂。

函式分類

內建函式: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

):"列印任何傳入的字串"

print

("名字: "

,name

)print

("年齡: "

,age

)return

#呼叫printinfo函式

printinfo

(age=50

,name

="runoob"

)print

("------------------------"

)printinfo

(name

="runoob"

)

你可能需要乙個函式能處理比當初宣告時更多的引數。這些引數叫做不定長引數,和上述2種引數不同,宣告時不會命名。基本語法如下:

def

functionname

([formal_args,]*

var_args_tuple

):"函式_文件字串"

function_suite

return

[expression

]

加了星號(*)的變數名會存放所有未命名的變數引數。如果在函式呼叫時沒有指定引數,它就是乙個空元組。我們也可以不向函式傳遞未命名的變數。如下例項:

#!/usr/bin/python3

# 可寫函式說明

defprintinfo

(arg1,*

vartuple

):"列印任何傳入的引數"

print

("輸出: "

)print

(arg1

)for

varin

vartuple

:print

(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的開機引導介面檔案消失,不能正常引導開機,沒有了系統選擇介面,出...