函數(shù)的定義和調(diào)用
比如
傳遞給print不同的字符,他就會(huì)輸出不同的字符串裆熙,他就會(huì)輸出不同的字符串
print("Hello!")
print("Bye!)
借助于互聯(lián)網(wǎng)上大量別人開發(fā)好的函數(shù),幾乎可以無限擴(kuò)展自己的代碼功能
無需知道功能如何實(shí)現(xiàn)
給他輸入剂癌,就會(huì)得到特定的輸出
那么我們可以將自己的代碼給別人使用嗎麦乞?
可以,通過函數(shù)十嘿?
例:判斷兩個(gè)數(shù)的最大值并輸出
if 1 >2:
print(1)
else:
print(2)
沒有使用變量,直接比較兩個(gè)常量岳锁,但是代碼的邏輯可以
比較任何兩個(gè)數(shù)值
并輸出最大的數(shù)值
假設(shè)這段代碼經(jīng)常使用绩衷,復(fù)制代碼可行嗎
會(huì)和當(dāng)前代碼融為一體,增加對整體代碼功能的理解的復(fù)雜度
如果想修改激率,就要將所有復(fù)制過去的代碼都要改動(dòng)
雖然允許別人使用咳燕,但是并不想把代碼給別人看到
........這就到了需要函數(shù)的時(shí)候!
定義函數(shù)
def func():
if 1>2:
print(1)
else:
print(2)
definition(定義)
可以定義很多不同名稱的函數(shù)來區(qū)分不同的函數(shù)
函數(shù)與變量的區(qū)別
strs =input()
表面的區(qū)別:函數(shù)后面有括號
實(shí)質(zhì)區(qū)別:函數(shù)代表功能乒躺,變量只存儲(chǔ)數(shù)據(jù)招盲。
函數(shù)的使用
func()
但是這個(gè)函數(shù)太簡單了
希望他們都能得到正確的最大值輸出
func(1, 2)????# 輸出2? ? ??
func(2, 4)????# 輸出4? ?
func(3, 2)????# 輸出3
理解參數(shù)
fun(1 ,2) 實(shí)際參數(shù)(實(shí)參)
def func(num1, num2)形式參數(shù)? ?(形參)
#帶有參數(shù)的函數(shù)
def func (num1, num2):
if num1 > num2:
print(num1)
else:
print(num2)
func(1, 2)
func(2, 4)
func(3, 2)
--------------------------------------------------------------
#關(guān)鍵字參數(shù)
def func (num1, num2):
if num1 > num2:
print(num1)
else:
print(num2)
func(1, 2)
func(2, 4)
func(3, 2)
func(num1 =6, num2 =1)
如果想改變這個(gè)次序,可以在實(shí)際參數(shù)前增加要賦值的參數(shù)名稱
相對于此嘉冒,此前默認(rèn)的參數(shù)可以稱之為位置參數(shù)
最好起個(gè)見名知義的函數(shù)名稱
#帶有參數(shù)的函數(shù)
def max(num1, num2):
if num1 > num2:
print(num1)
else:
print(num2)
max(1, 2)
max(2, 4)
max(3, 2)
max(num2=6, num1=9)
有沒有設(shè)計(jì)問題曹货?
只能輸出到屏幕上
為什么只能輸出到屏幕上?
不能輸出到打印機(jī)上讳推?文件中顶籽?變量中?
其實(shí)這個(gè)輸出不應(yīng)該作為這個(gè)函數(shù)功能的一部分
它只要能求出并把它交出來
#關(guān)于返回值
#1)函數(shù)要把值交出來
def max(num1, num2):
if num1 > num2:
return num1
else:
return num2
#2)在調(diào)用函數(shù)的時(shí)候接收這個(gè)值
print(max(1, 2))
value1 = max(2, 4)
print(value1)
關(guān)于參數(shù)和返回值
實(shí)參->形參
返回值->變量
利用封裝函數(shù)银觅,組裝成完整功能