第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

章節(jié)
問答
課簽
筆記
評論
占位
占位

什么是函數(shù)

對于什么是函數(shù),其實(shí)在前面的學(xué)習(xí)過程當(dāng)中,已經(jīng)多次接觸到函數(shù)了,比如在set里面,使用remove()函數(shù)進(jìn)行元素的刪除,使用add()函數(shù)添加元素,使用update()函數(shù)批量添加元素,但是至今為止,我們都沒有對函數(shù)有個(gè)充分的認(rèn)識。本章,我們將具體學(xué)習(xí)函數(shù)。
我們知道圓的面積計(jì)算公式為:

S = πr²

當(dāng)我們知道半徑r的值時(shí),就可以通過公式計(jì)算出面積,假設(shè)我們需要計(jì)算3個(gè)不同大小的圓的面積:

r1 = 12.34
r2 = 9.08
r3 = 73.1
s1 = 3.14 * r1 * r1
s2 = 3.14 * r2 * r2
s3 = 3.14 * r3 * r3

可以看到,在上述代碼中,出現(xiàn)了幾乎完全重復(fù)的代碼,每次計(jì)算圓的面積的時(shí)候我們都是通過3.14*x*x(其中x是圓的半徑)的方式計(jì)算出來的,這樣寫不僅非常麻煩,而且,當(dāng)我們需要提高圓周率的精度時(shí),把3.14改成3.14159265359的時(shí)候,我們需要修改涉及到的三行代碼。
因此,我們可以使用函數(shù),把重復(fù)的邏輯代碼封裝起來,這樣子,我們就不需要每次計(jì)算的時(shí)候,都寫3.14*x*x這樣的代碼了;當(dāng)我們使用函數(shù)的時(shí)候,我們只需要定義一次,就可以多次使用。
我們把封裝重復(fù)邏輯代碼的過程就做抽象,抽象是數(shù)學(xué)中非常常見的概念。
比如:計(jì)算數(shù)列的和,比如:1 + 2 + 3 + ... + 100,寫起來十分不方便,于是數(shù)學(xué)家發(fā)明了求和符號∑,可以把1 + 2 + 3 + ... + 100記作:

這種抽象記法非常強(qiáng)大,因?yàn)槲覀兛吹?sum;就可以理解成求和,而不是還原成低級的加法運(yùn)算。
而且,這種抽象記法是可擴(kuò)展的,比如:


還原成加法運(yùn)算就變成了:

(1 x 1 + 1) + (2 x 2 + 1) + (3 x 3 + 1) + ... + (100 x 100 + 1)

可見,借助抽象,我們才能不關(guān)心底層的具體計(jì)算過程,而直接在更高的層次上思考問題。
寫計(jì)算機(jī)程序也是一樣,函數(shù)就是最基本的一種代碼抽象的方式。
Python不但能非常靈活地定義函數(shù),而且本身內(nèi)置了很多有用的函數(shù),可以直接調(diào)用。

Python調(diào)用函數(shù)

Python內(nèi)置了很多有用的函數(shù),我們可以直接調(diào)用。比如前面求list的長度len()函數(shù)等等,都是Python內(nèi)置的函數(shù),我們經(jīng)常會使用到它們。
在這個(gè)文檔里面,列舉了Python內(nèi)置的大部分函數(shù),同學(xué)們有興趣可以參考看看。

https://docs.python.org/3/library/functions.html

要調(diào)用一個(gè)函數(shù),需要知道函數(shù)的名稱和參數(shù),比如求絕對值的函數(shù) abs(),它接收一個(gè)參數(shù)。
對于abs()函數(shù),abs就是函數(shù)的名稱,括號()內(nèi),就是函數(shù)的參數(shù),當(dāng)函數(shù)沒有參數(shù)時(shí),默認(rèn)就是一個(gè)空括號。abs接收一個(gè)參數(shù),這個(gè)參數(shù)就是需要求絕對值的數(shù),這個(gè)參數(shù)可以是整數(shù),也可以是浮點(diǎn)數(shù)

abs(-100) # ==> 100
abs(20) # ==> 20
abs(-3.14159) # ==> 3.14159

需要注意的是,傳遞的參數(shù)數(shù)量一定要和函數(shù)要求的一致,不然將會引起錯(cuò)誤,比如,如果在abs()函數(shù)中傳入兩個(gè)參數(shù)。

abs(1, 2)
# 報(bào)錯(cuò)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: abs() takes exactly one argument (2 given)

在錯(cuò)誤提示中,清晰的說明了abs()函數(shù)只接收一個(gè)參數(shù),但是卻傳遞了兩個(gè)參數(shù),所以引起了錯(cuò)誤。
其次,如果傳入的參數(shù)數(shù)量是對的,但是參數(shù)的類型不能被函數(shù)所接受,也會引起錯(cuò)誤,比如:求絕對值的函數(shù)abs(),只有數(shù)字才擁有絕對值,如果傳遞一個(gè)字符串進(jìn)去,將會引起錯(cuò)誤。

abs('3.1415926')
# 報(bào)錯(cuò)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: bad operand type for abs(): 'str'

這里錯(cuò)誤提示說,str類型是錯(cuò)誤的參數(shù)類型。
除了abs()函數(shù),還有很多常見的函數(shù),比如cmp()函數(shù),可以比較兩個(gè)數(shù)的大小,這個(gè)時(shí)候,cmp()函數(shù)就接收兩個(gè)參數(shù)。
對于cmp(x, y),如果x < y 返回 -1,如果x == y 函數(shù)返回0,如果x > y函數(shù)返回1。

cmp(1, 2) # ==> -1
cmp(2, 1) # ==> 1
cmp(3, 3) # ==> 0

還有基礎(chǔ)數(shù)據(jù)類型的轉(zhuǎn)換函數(shù),int()函數(shù)可以將合法的其它類型數(shù)據(jù)轉(zhuǎn)換為整數(shù),str()函數(shù)可以將其它類型的數(shù)據(jù)轉(zhuǎn)換為字符串。

int('123') # ==> 123
int(12.34) # ==> 12

str(123) # ==> '123'
str(1.23) # ==> '1.23'

在學(xué)習(xí)Python的過程中,我們將會接觸到越來越多的Python內(nèi)置函數(shù),這些內(nèi)置函數(shù)提供了非常有用的功能,大大降低我們編程的難度。

任務(wù)

sum()函數(shù)接收一個(gè)list作為參數(shù),并返回list所有元素之和。請計(jì)算 1*1 + 2*2 + 3*3 + ... + 100*100。

?不會了怎么辦

參考答案:

L = []
x = 1
while x <= 100:
    L.append(x * x)
    x = x + 1

print(sum(L))
||

提問題

寫筆記

公開筆記
提交
||

請驗(yàn)證,完成請求

由于請求次數(shù)過多,請先驗(yàn)證,完成再次請求

加群二維碼

打開微信掃碼自動綁定

您還未綁定服務(wù)號

綁定后可得到

  • · 粉絲專屬優(yōu)惠福利
  • · 大咖直播交流干貨
  • · 課程更新,問題答復(fù)提醒
  • · 賬號支付安全提醒

收藏課程后,能更快找到我哦~

使用 Ctrl+D 可將課程添加到書簽

邀請您關(guān)注公眾號
關(guān)注后,及時(shí)獲悉本課程動態(tài)

舉報(bào)

0/150
提交
取消
全部 精華 我要發(fā)布
全部 我要發(fā)布
最熱 最新
只看我的

手記推薦

更多

本次提問將花費(fèi)2個(gè)積分

你的積分不足,無法發(fā)表

為什么扣積分?

本次提問將花費(fèi)2個(gè)積分

繼續(xù)發(fā)表請點(diǎn)擊 "確定"

為什么扣積分?