python 函式基本操作 定義 變數 作用域

2021-10-04 23:41:26 字數 3799 閱讀 9237

在這裡插入**片

'''函式:以功能為導向,乙個函式就是乙個功能

作用:減少**重複性,提高**的復用

函式的結構與呼叫

def 函式名(): 具有可描述性

函式體:縮排,盡量不要出現print

呼叫:函式名()

函式的返回值

return 返回多個元素,是以元組形式返回給函式的執行者

作用:1終止函式

2可以給函式的執行者返回值

1 return 單個值

2 return 多個值 (多個值)

'''#定義登陸驗證函式

deflogging()

:#定義登陸所需引數

ueser_name =

'張勇'

ueser_account_qq =

2934079117

pass_word =

'***********'

#使用者輸入值

uname =

input

('please inout your name:'

) u_a_qq =

int(

input

('please input your account:'))

u_p_w =

input

('please input password:'

)#判斷定義等引數是否與使用者輸入的值相等

if ueser_name==uname and ueser_account_qq==u_a_qq and pass_word==u_p_w:

#print函式輸出

print

('logging now.'

)else

:#return 返回值==返回給呼叫者

return

'sorry! there is somethoing wrong with you'

#呼叫函式值

u_log = logging(

)#列印返回值

print

(u_log)

**## 函式的引數操作型別

**'''

函式的引數:實參、形參

實參角度:1.位置引數 ----按照順序一一對應

2.關鍵字引數 -----一一對應

3.混合引數 位置在前,關鍵在後

形參角度:1.與實參位置引數是一種

2.預設引數(m=xx):經常使用的值

3.萬能引數:1.*args *在函式定義時,代表聚合,將所有的位置引數聚合為乙個元組,賦值給*args,,(想一下,為啥可以直接%格式化)

2.**kwargs 在函式定義時,,將所有關鍵字引數聚合到乙個字典中,並將其傳給**kwargs

4.僅限關鍵字引數:放在兩個萬能之間,且賦值為字串 (了解)

形參角度的引數順序:

位置引數,預設引數、萬能引數*****=》位置、萬能、預設

def (a,b,c,self=567,*agrs): 這樣的話,,預設引數會被覆蓋

**kwargs 位置、萬能1、預設、萬能2

位置、萬能1、預設、僅限關鍵字引數(在呼叫函式時,以關鍵字引數形式)、萬能2

*在函式呼叫時代表打散 放在可迭代物件*[1,234,324,32] *[234,4324,23]

**在函式呼叫時,打散字典

'''#定義函式 形式引數:位置引數、關鍵字引數、萬能引數*args,預設引數,萬能引數**kwargs

defgame

(diamond,coin,

*heroes,rade=30,

**runes)

:#格式化輸出

print

('我的鑽石數量:%d,我的金幣數量:%d'

%(diamond,coin)

)#迴圈遍歷元組和字典中的值

for hero in heroes:

print

(hero)

for sort,r_grade in runes.items():

print

('%s的等級時%d'

%(sort,r_grade)

)#呼叫函式,並傳參

g_me = game(

300000

,88888

,'莊周'

,'李白'

,'墨子'

,blood=

150,tank=

130)

zuoyongyu

'''函式命名空間

全域性命名空間(dangqianpy檔案)

a = 1

在函式執行時:直譯器會在記憶體開闢乙個空間,,知道函式結束,空間就會消失

b = 3

def func() func:指向記憶體位址,知道函式結束,空間就會消失

func()*****=臨時執行空間,在函式內部,函式執行時才開闢

print()*****==內建命名空間

三者載入記憶體順序:不論位置

1.內建命名空間

2.全域性命名空間

3.區域性命名空間

取值順序:

1.就近原則(先區域性,再全域性,內建命名空間)

2.單向不可逆

作用域:

1.全域性作用域:內建命名空間、全域性命名空間

2.區域性作用域:區域性命名空間

區域性作用域不能改變全域性作用域:

當py直譯器讀取到區域性作用於是,發現你對乙個變數進行修改操作,

直譯器會認為你再區域性定義過這個區域性變數,他就會從區域性變數找,找不到報錯

依據空間來玩,,無窮開闢空間

高階函式:函式套函式

globals():返回字典,字典的鍵值對;全域性作用域的所用內容

locals():返回當前作用於的內容

'''wish =

'我想向上星耀'

#定義函式 形式引數:位置引數、關鍵字引數、萬能引數*args,預設引數,萬能引數**kwargs

defgame

(diamond,coin,

*heroes,rade=30,

**runes)

:#在函式呼叫時會開闢乙個區域性空間

wish =

'我想上王者,王者'

#格式化輸出

print

('我的鑽石數量:%d,我的金幣數量:%d'

%(diamond,coin)

)#迴圈遍歷元組和字典中的值

for hero in heroes:

print

(hero)

for sort,r_grade in runes.items():

print

('%s的等級時%d'

%(sort,r_grade)

)#在區域性作用域找

print

(wish,

locals()

)# 在區域性區域找到值,輸出當前作用域變數、函式名

print

(wish)

#再全域性作用域找值

print

(print

)#在內建域尋找

#呼叫函式,並傳參

g_me = game(

300000

,88888

,'莊周'

,'李白'

,'墨子'

,blood=

150,tank=

130)

print

(globals()

)# 輸出全域性作用域變數、函式

print

(locals()

)# 輸出當前作用域變數、函式名

python中基本函式操作

python中利用關鍵字def來專門定義函式 主要應用如下 格式 def 函式名稱 函式的執行過程 return 執行的結果def case print 這是乙個案例 return從上面的的格式可以看出乙個函式的定義其實就是表示的乙個行為,一種功能 函式的核心就是運算資料 所有函式需要處理運算資料,...

python函式的基本操作

def 函式名 形式引數 函式體 重複 塊 返回資料 return 資料確定函式名 見名之意,理解函式的功能 確定形式引數 函式體中是否有未知數參與運算,如果有就將其定義為形式引數 確定返回值 1.如果在後面的 需要使用函式中的運算結果,就需要在函式中使用return返回運算結果 2.如果不確定是否...

Python騷操作 動態定義函式

譯者 豌豆花下貓 基於 mit 許可協議 在 python 中,沒有可以在執行時簡化函式定義的語法糖。然而,這並不意味著它就不可能,或者是難以實現。from types import functiontype foo code compile def foo return bar exec foo ...