學習筆記13 Python 函式高階

2021-10-08 21:53:08 字數 3775 閱讀 5740

函式根據 有沒有引數 以及 有沒有返回值,可以 相互組合,一共有 4 種 組合形式

如果函式 內部處理的資料不確定,就可以將外界的資料以引數傳遞到函式內部

如果希望乙個函式 執行完成後,向外界匯報執行結果,就可以增加函式的返回值

def

measure()

:print

("測試開始!"

) height =

1.8 weight =

120print

("測試結束!"

)# 元組可以包含多個資料,因此可以使用元組讓函式一次返回多個值

# 如果函式返回的型別是元組,小括號可以省略

return height, weight

result = measure(

)print

(result)

c = b

b = a

a = c

a = a + b

b = a - b

a = a - b

# 等號右邊是元組,括號省掉了

a, b = b, a

def

test

(num, num_list)

:print

("函式內部"

)# 賦值語句

num =

200 num_list =[1

,2,3

]print

(num)

print

(num_list)

print

("函式**完成"

)gl_num =

99gl_list =[4

,5,6

]test(gl_num, gl_list)

print

(gl_num)

print

(gl_list)

def

test

(num_list)

: num_list.extend([1

,2,3

])print

(num_list)

gl_list =[6

,7,8

]test(gl_list)

print

(gl_list)

def

demo

(num, num_list)

:print

("函式內部**"

)# num = num + num

num += num

# num_list += num_list 實質上是在呼叫 extend 方法

num_list += num_list

# 如果改為 num_list = num_list +num_list

# 則會修改區域性變數的引用,全域性變數不會發生變化

print

(num)

print

(num_list)

print

("函式**完成"

)gl_num =

9gl_list =[1

,2,3

]demo(gl_num, gl_list)

print

(gl_num)

print

(gl_list)

gl_num_list =[6

,3,9

]# 預設就是公升序排序,因為這種應用需求更多

gl_num_list.sort(

)print

(gl_num_list)

# 只有當需要降序排序時,才需要傳遞 reverse 引數

gl_num_list.sort(reverse=

true

)print

(gl_num_list)

def

print_info

(name, gender=

true):

gender_text =

"男生"

ifnot gender:

gender_text =

"女生"

print

("%s 是 %s"

%(name, gender_text)

)print_info(

"小明"

)print_info(

"小紅"

,false

)

i.預設引數,需要使用 最常見的值 作為預設值!

ii.如果乙個引數的值 不能確定,則不應該設定預設值,具體的數值在呼叫函式時,由外界傳遞!

1)預設引數的定義位置

def

print_info

(name, gender=

true

, title)

:

2)呼叫帶有多個預設引數的函式
def

test

(num,

*nums,

**person)

:print

(num)

print

(nums)

print

(person)

# 鍵值對的 key 不需要加引號

test(1,

2,3,

4, name=

"xiaoming"

)

def

sum_numbers

(*nums)

: s =

0for result in nums:

s += result

print

(s)sum_numbers(1,

2,3)

def

demo

(*args,

**kwargs)

:print

(args)

print

(kwargs)

# 需要將乙個元組變數/字典變數傳遞給函式對應的引數

gl_nums =(1

,2,3

)gl_xiaoming =

# 會把 num_tuple 和 xiaoming 作為元組傳遞個 args

# demo(gl_nums,gl_xiaoming)

demo(

*gl_nums,

**gl_xiaoming)

# demo(1, 2, 3, name="小明", age=18)

def

test

(num)

:print

(num)

if num ==1:

return

test(num -1)

print

("完成 %d"

% num)

test(

3)

def

test

(num)

:if num ==1:

return

1# 假設 test(num-1)能處理1+2+...+num-1

result = test(num -1)

return num + result

print

(test(5)

)

13 Python 裝飾器 偏函式

裝飾器 原函式 def now print 2019 01 10 print now.name 增加原函式的功能 def log func print call s func.name return func args,kw log def new print 2019 01 10 呼叫new函式時...

1 3 Python語法初探

input輸入 螢幕輸入 input 的小括號中放入的是,提示資訊,用來在獲取資料之前給使用者的乙個簡單提示 input 在從鍵盤獲取了資料以後,會存放到等號右邊的變數中 input 會把使用者輸入的任何值都作為字串來對待 str input 請輸入 請輸入 這裡是輸入完 直接的輸出 str inp...

13 Python裝飾器(一)

一 在python中函式也可以作為另乙個函式的引數,不限制是字串 陣列 集合 數字等。下面看乙個例子 coding utf 8 def sum x,y return x y def sub x,y return x y def test fun,x,y return fun x,y print su...