在這裡插入**片
'''函式:以功能為導向,乙個函式就是乙個功能
作用:減少**重複性,提高**的復用
函式的結構與呼叫
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函式輸出
('logging now.'
)else
:#return 返回值==返回給呼叫者
return
'sorry! there is somethoing wrong with you'
#呼叫函式值
u_log = logging(
)#列印返回值
(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)
:#格式化輸出
('我的鑽石數量:%d,我的金幣數量:%d'
%(diamond,coin)
)#迴圈遍歷元組和字典中的值
for hero in heroes:
(hero)
for sort,r_grade in runes.items():
('%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 =
'我想上王者,王者'
#格式化輸出
('我的鑽石數量:%d,我的金幣數量:%d'
%(diamond,coin)
)#迴圈遍歷元組和字典中的值
for hero in heroes:
(hero)
for sort,r_grade in runes.items():
('%s的等級時%d'
%(sort,r_grade)
)#在區域性作用域找
(wish,
locals()
)# 在區域性區域找到值,輸出當前作用域變數、函式名
(wish)
#再全域性作用域找值
)#在內建域尋找
#呼叫函式,並傳參
g_me = game(
300000
,88888
,'莊周'
,'李白'
,'墨子'
,blood=
150,tank=
130)
(globals()
)# 輸出全域性作用域變數、函式
(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 ...