前面我們講解了Python的核心語法,這一章我們來進(jìn)行函數(shù)的學(xué)習(xí),有編程基礎(chǔ)的同學(xué)一定知曉函數(shù)的用法,我們是零基礎(chǔ)教程,所以在這里介紹一下什么是函數(shù)。
我們舉個例子,我們拿一家公司的工資結(jié)算問題來探討一下。
這家公司的正常工資為每天200元,如果當(dāng)月工作的天數(shù)大于等于20天,多出的天數(shù)每天按300元來結(jié)算,并且加1000全勤獎金,如果工作天數(shù)少于10天,那么所有工資按每天150元來結(jié)算,并扣除200缺勤工資。
假設(shè)該公司有4個員工,ABCD 4個員工的工作天數(shù)分別為30、25、15、5,我們來看一下它的代碼。
A = 30 B = 25 C = 15 D = 5 salaryA = (30 - 20) * 300 + 20 * 200 +1000 salaryB = (25 - 20) * 300 + 20 * 200 salaryC = 15 * 200 salaryD = 5 * 200 - 200 print(salaryA) print(salaryB) print(salaryC) print(salaryD)
這種方式不僅需要我們手動去判斷,代碼方式也是單一使用代碼,當(dāng)我們再次使用的時候還需要再次計算,當(dāng)員工數(shù)量為1000的時候,我們肯定不能使用這種方式,因此我們來借助函數(shù)來解決這個問題。
A = 30 B = 20 C = 10 D = 5 def getsalary(name,days): salary = 0 if days >=20: salary = 20 * 200 + (days-20) * 300 +1000 print('{}的工資為:'.format(name),salary) elif days < 10: salary = days * 150 - 200 print('{}的工資為:'.format(name),salary) else: salary = days * 200 print('{}的工資為:'.format(name),salary) getsalary('A',A) getsalary('B',B) getsalary('C',C) getsalary('D',D)
輸出結(jié)果為:
A的工資為: 8000 B的工資為: 5000 C的工資為: 2000 D的工資為: 550
通過上面這個例子,在解決相同問題不同變量的時候,我們只需要定義好一個函數(shù),然后將這些變量反復(fù)使用這些函數(shù)即可解決問題,不需要我們?nèi)ナ謩佑嬎?,計算機(jī)會幫助我們更準(zhǔn)確迅速的解決問題。
函數(shù)可以幫助我們完成更簡潔的代碼、減少代碼的重復(fù)、易于測試、快速開發(fā)、便于團(tuán)隊合作,因此在后面的學(xué)習(xí)過程中,函數(shù)是必不可少的一環(huán)。
1. 函數(shù)的創(chuàng)建
從上面的例子中我們可以看到函數(shù)的定義使用的關(guān)鍵字是def,定義函數(shù)的一般形式為:
def function_name(): 函數(shù)內(nèi)容
在定義函數(shù)名字的時候我們需要注意幾點:
1) 關(guān)鍵字不能作為函數(shù)名字。
2) 函數(shù)名中不能存在空格。
3) 函數(shù)名的首字母必須是大小寫字母或者下劃線。
4) 函數(shù)名的其余字母可以使用字母、數(shù)字以及下劃線。
5) 不同函數(shù)名大小寫不同的時候為不同函數(shù)。
我們來定義創(chuàng)建幾個函數(shù):
def get_name(): pass def get_salary(): pass def add_money(): pass
采用字母+下劃線+字母的形式為常用的命名方式。
2. 調(diào)用函數(shù)
當(dāng)我們創(chuàng)建好函數(shù)之后,如果不調(diào)用的話,不管函數(shù)中有多少print都不會執(zhí)行的,因為函數(shù)就像我們買了一些工具放在倉庫里,只有當(dāng)我們拿出來的時候才能去使用,因此我們需要調(diào)用函數(shù)。
調(diào)用函數(shù)的時候,解釋器會跳到函數(shù)體內(nèi),執(zhí)行函數(shù)內(nèi)的語句,當(dāng)執(zhí)行完畢之后回到調(diào)用的位置繼續(xù)執(zhí)行后續(xù)語句。
我們來看一下函數(shù)的調(diào)用過程。
def helloworld(): print('調(diào)用函數(shù)') print('helloworld') print('人生苦短,我用Python') helloworld() print('調(diào)用完畢')
輸出結(jié)果為:
調(diào)用函數(shù) helloworld 人生苦短,我用Python 調(diào)用完畢
本節(jié)我們主要來認(rèn)識一下函數(shù),學(xué)習(xí)函數(shù)的創(chuàng)建和調(diào)用,下一節(jié)我們來學(xué)習(xí)函數(shù)的參數(shù)傳遞。
C語言網(wǎng)提供由在職研發(fā)工程師或ACM藍(lán)橋杯競賽優(yōu)秀選手錄制的視頻教程,并配有習(xí)題和答疑,點擊了解:
一點編程也不會寫的:零基礎(chǔ)C語言學(xué)練課程
解決困擾你多年的C語言疑難雜癥特性的C語言進(jìn)階課程
從零到寫出一個爬蟲的Python編程課程
只會語法寫不出代碼?手把手帶你寫100個編程真題的編程百練課程
信息學(xué)奧賽或C++選手的 必學(xué)C++課程
藍(lán)橋杯ACM、信息學(xué)奧賽的必學(xué)課程:算法競賽課入門課程
手把手講解近五年真題的藍(lán)橋杯輔導(dǎo)課程