函式根據 有沒有引數 以及 有沒有返回值,可以 相互組合,一共有 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...