'''
1、什麼是函式
具備某一功能的工具===》函式
工具的使用:
事先準備好好工具 *****==》 函式的定義
遇到應用場景拿來就用*****》函式的呼叫
2、為何要有函式
1、程式的組織結構不清晰、可讀性差
2、如果要用到重複的功能,只能拷貝功能的實現**=》**冗餘
3、可擴充套件性差
3、如何用函式
函式的使用原則:先定義,後呼叫
定義函式:
def 函式名(引數1,引數2, 引數3.....):
"""文件注釋"""
**1**2
**3...
return 返回值
'''# x = 10
# x()
# 1:定義函式
defsayhi()
:print
('*'*10
)print
('hello!'
)print
('*'*10
)sayhi(
)# 二、定義函式的三種格式:
# 2.1無參函式
deflogin()
: inp_name =
input
('name:'
) inp_psw =
input
('psw:'
)if inp_name ==
'egon'
and inp_psw ==
'123'
:print
('successful'
)else
:print
('login error'
)# 2.2有參函式
defsayhi
(symbol, num)
:print
(symbol * num)
print
('hello'
)print
(symbol * num)
sayhi(
's',20)
defmax2
(x, y)
:if x > y:
print
(x)else
:print
(y)max2(
100,
110)
# 2.3空函式
deffunc()
:pass
# ... python3的新語法和pass一樣
# 三:函式的呼叫
# return:
# 函式內可以有多個return, 但只要執行一次函式就立刻結束,並會把return後的值當作本次呼叫的結果
# 函式內可以有三種返回值:
# 1、return 值:返回的就是該值本身
# 2、return 值1,值2,值3 :返回的是乙個元組
# 3、沒有return:預設返回none。可以用來結束函式,不用返回值
deffunc()
:print
('第一行**執行!'
)return
1print
('第二行**執行!'
)return
2res = func(
)print
(res)
# 四函式呼叫的三種格式
defsayhi
(symbol, num)
:print
(symbol * num)
print
('hello'
)print
(symbol * num)
# 4.1語句形式:單純的呼叫了一下函式就完了
sayhi(
's',20)
# 4.2 表示式形式:
defmax2
(x, y)
:if x > y:
return x
else
:return y
res = max2(11,
22)*12
print
(res)
# 4.3可以把乙個函式的呼叫當作值傳給另乙個函式
print
(max2(11,
22))# 總結:
# 函式的使用一定要分兩個階段去看:
# 1、定義階段:只檢測代表,不執行**
# 2、呼叫階段:執行函式**
# 如果發生的語法錯誤,定義階段就會立馬檢測出來
# def func():
# print('hello'
# 如果發生的不是語法錯誤,而是邏輯錯誤,只能在呼叫階段檢測到
# def func():
# ***
# 示範1:
deffoo()
:print
('from foo'
)def
bar():
print
('from bar'
) foo(
)bar(
)# 示範2:(先定義後呼叫)
deffoo()
:# 只檢查了語法錯誤,執行時才檢查邏輯錯誤
print
('from foo'
) bar(
)def
bar():
print
('from bar'
)foo(
)#
2 1基礎演算法
1.雙指標 2.位運算 3.離散化 1 去除重複元素 vectorall sort all.begin all.end 排序all.erase unique all.begin all.end all.end 刪除末尾的重複元素 2 include include include using nam...
21高階函式
引數和返回值都是函式。傳入引數是函式 val arr array 1,2,3,4 val fun x int x 2 val res arr.map fun 傳入匿名函式 val res2 arr.map x int x 2 val res3 arr.map 2 返回值是函式 def urlbuil...
2 1 搬移函式
源 1 重構前 2class account314 return result 15 16else 1720 21 22private 23 accounttype m type 24int m ndaysoverdrawn 25 搬移函式 1 class accounttype213 return...