一,函數(shù)是什么?
函數(shù)一詞來源于數(shù)學(xué),但編程中的「函數(shù)」概念,與數(shù)學(xué)中的函數(shù)是有很大不同的,具體區(qū)別,我們后面會(huì)講,編程中的函數(shù)在英文中也有很多不同的叫法。在BASIC中叫做subroutine(子過程或子程序),在Pascal中叫做procedure(過程)和function,在C中只有function,在Java里面叫做method。
函數(shù)能提高應(yīng)用的模塊性,和代碼的重復(fù)利用率。你已經(jīng)知道Python提供了許多內(nèi)建函數(shù),比如print()。但你也可以自己創(chuàng)建函數(shù),這被叫做用戶自定義函數(shù)。
函數(shù)定義:函數(shù)是指一組語句的集合通過一個(gè)名字(函數(shù)名)封裝起來,要想執(zhí)行這個(gè)函數(shù),只需要調(diào)用其函數(shù)名即可
函數(shù)特性:
代碼重用
保持一致性
可擴(kuò)展性
二,函數(shù)的創(chuàng)建
2.1格式:
python定義函數(shù)使用def關(guān)鍵字,一般格式如下:
1
2def函數(shù)名(參數(shù)列表):
函數(shù)體
舉個(gè)例子:
defhello():
print("hello")
hello()#調(diào)用
#結(jié)果:hello
2.2函數(shù)名的命名規(guī)則:
函數(shù)名必須以下劃線或字母開頭,可以包含任意字母、數(shù)字或下劃線的組合。不能使用任何的標(biāo)點(diǎn)符號;
函數(shù)名是區(qū)分大小寫的。
函數(shù)名不能是保留字。
2.3形參和實(shí)參
形參:形式參數(shù),不是實(shí)際存在,是虛擬變量,在定義函數(shù)和函數(shù)體的時(shí)候使用形參,目的就是在函數(shù)調(diào)用的時(shí)候接收實(shí)參(實(shí)參個(gè)數(shù),類型應(yīng)與實(shí)參一一對應(yīng))
實(shí)參:實(shí)際參數(shù),調(diào)用函數(shù)時(shí)候傳給函數(shù)的變量,可以是常量,變量,表達(dá)式,函數(shù),傳給形參
區(qū)別:形參是虛擬的,不占用內(nèi)存空間,形參變量只有在調(diào)用時(shí)才分配內(nèi)存單元,實(shí)參是一個(gè)變量,占用空間,數(shù)據(jù)傳送單向,實(shí)參傳給形參,不能形參傳給實(shí)參。
importtime
times=time.strftime('%Y-%m-%d')
deffunc(time):
print("Nowtimeis:%s"%times)
func(times)
#結(jié)果:Nowtimeis:2018-03-24
下面具體舉個(gè)例子
defshow_shoppingcart():
balance=100000
shopping_cart=[
('mac',9000),
('kindle',800),
('tesla',100000),
('python_book',120),
]
print("shopping_cart".center(50,'*'))
fori,vinenumerate(shopping_cart):
print('\033[35;1m%s:%s\033[0m'%(i,v))
expense=0
foriinshopping_cart:
expense+=i[1]
print('\n\033[32;1m您的余額為%s\033[0m'%(balance-expense))
show_shoppingcart()
#結(jié)果:
#******************shopping_cart*******************
#0:('mac',9000)
#1:('kindle',800)
#2:('tesla',100000)
#3:('python_book',120)
#
#您的余額為-9920
以上內(nèi)容為大家介紹了python函數(shù)基礎(chǔ),希望對大家有所幫助,如果想要了解更多Python相關(guān)知識(shí),請關(guān)注IT培訓(xùn)機(jī)構(gòu):千鋒教育。