Python學習筆記 Python之函式

2021-09-25 14:06:28 字數 3772 閱讀 9839

1.函式引數

函式定義時,自己定義的引數,稱為形參

函式呼叫時,其引數為實參,即實際要傳遞的引數

舉例:

def

pname

(username)

:#username 形參

print

(%username)

pname(

'python'

)#傳遞了乙個實參

*args是接受所有未命名的引數(關鍵字),是乙個元組型別

**agrs2是接受所有命名的引數(帶關鍵字的),是字典資料型別

def

getinfo

(name,address,

*args,

**agrs2)

:print(%

(name,address)

)print

(args)

print

(agrs2)

getinfo(

'tencent'

,'shenzhen'

,'a'

,'b'

,'c'

,'d'

,age =

20)

結果:

('a', 'b', 'c', 'd')

實參加上關鍵字 。關鍵字對應我們的形參

def

getinfo

(name,address)

:print(%

(name,address))

getinfo(name=

'tencent'

,address=

'香港'

)

結果:

函式定義的時候給形參賦預設值,則在函式呼叫的時候可以不傳遞值,如果有傳遞值會覆蓋預設值

def

getinfo

(name,address =

'香港'):

#預設值引數

print(%

(name,address))

getinfo(

'tencent'

)#有預設值的形參,可以不用傳遞

getinfo(

'tencent'

,'深圳'

)#傳遞引數的話,會覆蓋原來的預設值

結果如下:

2.函式呼叫

is判斷兩個物件是否為同乙個位址,返回true,否則false

數值型別(int和float)、字串str、元組tuple

宣告不可變型別時會在已經宣告的物件中尋找該物件是否已經被宣告過,若該物件被宣告過則,變數會直接指向該物件不會再申請新的記憶體空間

列表list、字典dict、集合set

宣告同樣的內容python會重新發申請空間對其進行儲存

不可變物件的傳遞

def fun(args):

args = 'hello' #重新賦值

print(args) #輸出hello

str1 = 'baby' #宣告乙個字串的變數 不可變資料型別

fun(str1) #將該字串傳遞到函式中

print(str1) #還是baby 並沒有被改變

結果:

hello

baby

可變物件的傳遞

def

fun(args)

: args[0]

='hello'

#重新賦值

print

(args)

#輸出

list01 =

['baby'

,'come on'

]#宣告乙個字串的變數 不可變資料型別

fun(list01)

#將該字串傳遞到函式中

sign(

)print

(list01)

#傳遞的是物件本身,函式裡面被修改了值,原物件也會跟著修改

結果如下:

['hello', 'come on']

['hello', 'come on']

3.變數
宣告在函式內部的變數是區域性變數

def

test1()

: a =

1print

(a)print(id

(a))

deftest2()

: a =

2print

(a)#無法使用test1函式中定義的區域性變數

print(id

(a))

呼叫如下:

test1()

test2()

結果為:

1

8791479866400

28791479866432

如果在函式之外直接print(a)則報錯,name 'a' is not defined

tips:原因是區域性變數不能在函式外部訪問

使用關鍵字global定義的變數為全域性變數

def

test1()

:global a #宣告全域性變數a

a =2print

(a)print(id

(a))

deftest2()

:global a #宣告全域性變數a

a =3print

(a)print(id

(a))

呼叫如下:

a = 1

test1()

test2()

print(a)#外部呼叫使用的是全域性變數

print(id(a))

結果如下:

2

8791479866432

3 8791479866464

3 8791479866464

lobal a #宣告全域性變數a

a = 3

print(a)

print(id(a))

呼叫如下:

a = 1

test1()

test2()

print(a)#外部呼叫使用的是全域性變數

print(id(a))

結果如下:

2

8791479866432

3 8791479866464

3 8791479866464

Python學習筆記 1 1 2 認識Python

一.課程目標 二.詳情解讀 1.初識pythonpython語言是一種高階程式語言,它於1991年由吉多.範羅蘇姆 guido van rossum 發明。目前主要應用於web開發 gui開發 網路爬蟲 資料科學 人工智慧等領域。python官方 python語言也是一種多正規化程式語言,即物件導向...

Python學習筆記 一手漂亮的Python函式

使用類和函式定義模型 函式是抽象和封裝的基本方法之一 重構函式 命名合理 具有單一功能 包含文件注釋 返回乙個值 不超過 50 行 冪等函式,盡可能是純函式 函式太長 重構 refactor 冪等函式 idempotent function 可測試性 可維護性 在函式程式設計中,如果函式是冪等函式且...

python學習方法 十二種學習Python的方法

python學習方法 python是地球上最流行的程式語言之一。它被世界各地的開發商和製造商所接受。大多數linux和macos計算機都預裝了python版本,現在,即使是少數windows計算機 商也正在安裝python。也許您參加聚會遲到了,您想學習但不知道該去 這12個資源將幫助您入門,並逐步...