最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

跟老齊學(xué)Python之永遠(yuǎn)強(qiáng)大的函數(shù)

 更新時(shí)間:2014年09月14日 15:04:56   投稿:hebedich  
Python程序中的語(yǔ)句都會(huì)組織成函數(shù)的形式。通俗地說(shuō),函數(shù)就是完成特定功能的一個(gè)語(yǔ)句組,這組語(yǔ)句可以作為一個(gè)單位使用,并且給它取一個(gè)名字,這樣,我們就可以通過(guò)函數(shù)名在程序的不同地方多次執(zhí)行(這通常叫做函數(shù)調(diào)用),卻不需要在所有地方都重復(fù)編寫(xiě)這些語(yǔ)句。

函數(shù),對(duì)于人類(lèi)來(lái)講,能夠發(fā)展到這個(gè)數(shù)學(xué)思維層次,是一個(gè)飛躍??梢哉f(shuō),它的提出,直接加快了現(xiàn)代科技和社會(huì)的發(fā)展,不論是現(xiàn)代的任何科技門(mén)類(lèi),乃至于經(jīng)濟(jì)學(xué)、政治學(xué)、社會(huì)學(xué)等,都已經(jīng)普遍使用函數(shù)。

下面一段來(lái)自維基百科(在本教程中,大量的定義來(lái)自維基百科,因?yàn)樗娴暮馨倏疲汉瘮?shù)詞條

函數(shù)這個(gè)數(shù)學(xué)名詞是萊布尼茲在1694年開(kāi)始使用的,以描述曲線(xiàn)的一個(gè)相關(guān)量,如曲線(xiàn)的斜率或者曲線(xiàn)上的某一點(diǎn)。萊布尼茲所指的函數(shù)現(xiàn)在被稱(chēng)作可導(dǎo)函數(shù),數(shù)學(xué)家之外的普通人一般接觸到的函數(shù)即屬此類(lèi)。對(duì)于可導(dǎo)函數(shù)可以討論它的極限和導(dǎo)數(shù)。此兩者描述了函數(shù)輸出值的變化同輸入值變化的關(guān)系,是微積分學(xué)的基礎(chǔ)。
中文的“函數(shù)”一詞由清朝數(shù)學(xué)家李善蘭譯出。其《代數(shù)學(xué)》書(shū)中解釋?zhuān)骸胺泊俗償?shù)中函(包含)彼變數(shù)者,則此為彼之函數(shù)”。

函數(shù),從簡(jiǎn)單到復(fù)雜,各式各樣。前面提供的維基百科中的函數(shù)詞條,里面可以做一個(gè)概覽。但不管什么樣子的函數(shù),都可以用下圖概括:

有初中數(shù)學(xué)水平都能理解一個(gè)大概了。這里不贅述。

本講重點(diǎn)說(shuō)明用python怎么來(lái)做一個(gè)函數(shù)用一用。

深入理解函數(shù)

在中學(xué)數(shù)學(xué)中,可以用這樣的方式定義函數(shù):y=4x+3,這就是一個(gè)一次函數(shù),當(dāng)然,也可以寫(xiě)成:f(x)=4x+3。其中x是變量,它可以代表任何數(shù)。

當(dāng)x=2時(shí),代入到上面的函數(shù)表達(dá)式:
f(2) = 4*2+3 = 11
所以:f(2) = 11

以上對(duì)函數(shù)的理解,是一般初中生都能打到的。但是,如果看官已經(jīng)初中畢業(yè)了,或者是一個(gè)有追求的初中生,還不能局限在上面的理解,還要將函數(shù)的理解拓展。

變量不僅僅是數(shù)

變量x只能是任意數(shù)嗎?其實(shí),一個(gè)函數(shù),就是一個(gè)對(duì)應(yīng)關(guān)系??垂?lài)L試著將上面表達(dá)式的x理解為餡餅,4x+3,就是4個(gè)餡餅在加上3(單位是什么,就不重要了),這個(gè)結(jié)果對(duì)應(yīng)著另外一個(gè)東西,那個(gè)東西比如說(shuō)是iphone。或者說(shuō)可以理解為4個(gè)餡餅加3就對(duì)應(yīng)一個(gè)iphone。這就是所謂映射關(guān)系。

所以,x,不僅僅是數(shù),可以是你認(rèn)為的任何東西。

變量本質(zhì)——占位符

函數(shù)中為什么變量用x?這是一個(gè)有趣的問(wèn)題,自己google一下,看能不能找到答案。

我也不清楚原因。不過(guò),我清楚地知道,變量可以用x,也可以用別的符號(hào),比如y,z,k,i,j...,甚至用alpha,beta,qiwei,qiwsir這樣的字母組合也可以。

變量在本質(zhì)上就是一個(gè)占位符。這是一針見(jiàn)血的理解。什么是占位符?就是先把那個(gè)位置用變量占上,表示這里有一個(gè)東西,至于這個(gè)位置放什么東西,以后再說(shuō),反正先用一個(gè)符號(hào)占著這個(gè)位置(占位符)。

其實(shí)在高級(jí)語(yǔ)言編程中,變量比我們?cè)诔踔袛?shù)學(xué)中學(xué)習(xí)的要復(fù)雜。但是,現(xiàn)在我們先不管那些,復(fù)雜東西放在以后再說(shuō)了?,F(xiàn)在,就按照初中數(shù)學(xué)來(lái)研究python中的變量

通常使小寫(xiě)字母來(lái)命名python中的變量,也可以在其中加上下劃線(xiàn)什么的,表示區(qū)別。

比如:alpha,x,j,p_beta,這些都可以做為python的變量。

給變量賦值

打開(kāi)IDLE,實(shí)驗(yàn)操作如下:

>>> a = 2  #注1
>>> a    #注2
2
>>> b = 3  #注3
>>> c = 3
>>> b
3
>>> c
3
>>> 

說(shuō)明:

注1:a=2的含義是將一個(gè)變量a指向了2這個(gè)數(shù),就好比叫做a是的釣魚(yú)的人,通過(guò)魚(yú)線(xiàn),跟一條叫做2的魚(yú)連接者,a通過(guò)魚(yú)線(xiàn)就可以導(dǎo)到2
注2:相當(dāng)于要a這個(gè)釣魚(yú)的人,順著魚(yú)線(xiàn)導(dǎo)出那條魚(yú),看看連接的是哪一條,發(fā)現(xiàn)是叫做2的那條傻魚(yú)
注3:b=3,理解同上。那么c=3呢?就是這條叫做3的魚(yú)被兩個(gè)人同時(shí)釣到了。

建立簡(jiǎn)單函數(shù)

>>> a = 2
>>> y=3*a+2
>>> y
8

這種方式建立的函數(shù),跟在初中數(shù)學(xué)中學(xué)習(xí)的沒(méi)有什么區(qū)別。當(dāng)然,這種方式的函數(shù),在編程實(shí)踐中的用途不大,一般是在學(xué)習(xí)階段理解函數(shù)來(lái)使用的。

別急躁,你在輸入a=3,然后輸入y,看看得到什么結(jié)果呢?

>>> a=2
>>> y=3*a+2
>>> y
8
>>> a=3
>>> y
8

是不是很奇怪?為什么后面已經(jīng)讓a等于3了,結(jié)果y還是8。

用前面的釣魚(yú)理論就可以解釋了。a和2相連,經(jīng)過(guò)計(jì)算,y和8相連了。后面a的連接對(duì)象修改了,但是y的連接對(duì)象還沒(méi)有變,所以,還是8。再計(jì)算一次,y的連接對(duì)象就變了:

>>> a=3
>>> y
8
>>> y=3*a+2
>>> y
11

特別注意,如果沒(méi)有先a=2,就直接下函數(shù)表達(dá)式了,像這樣,就會(huì)報(bào)錯(cuò)。

>>> y=3*a+2
Traceback (most recent call last):
 File "<stdin>", line 1, in <module>
 NameError: name 'a' is not defined

注意看錯(cuò)誤提示,a是一個(gè)變量,提示中告訴我們這個(gè)變量沒(méi)有定義。顯然,如果函數(shù)中要使用某個(gè)變量,不得不提前定義出來(lái)。定義方法就是給這個(gè)變量復(fù)制。

建立實(shí)用的函數(shù)

上面用命令方式建立函數(shù),還不夠“正規(guī)化”,那么就來(lái)寫(xiě)一個(gè).py文件吧。

在IDLE中,F(xiàn)ile->New window

然后輸入如下代碼:

#coding:utf-8

def add_function(a,b):
  c = a+b
  print c

if __name__=="__main__":
  add_function(2,3)

然后將文件保存,我把她命名為106-1.py,你根據(jù)自己的喜好取個(gè)名字。

然后我就進(jìn)入到那個(gè)文件夾,運(yùn)行這個(gè)文件,出現(xiàn)下面的結(jié)果,如圖:

你運(yùn)行的結(jié)果是什么?如果沒(méi)有得到上面的結(jié)果,你就非常認(rèn)真地檢查代碼,是否跟我寫(xiě)的完全一樣,注意,包括冒號(hào)和空格,都得一樣。冒號(hào)和空格很重要。

下面開(kāi)始庖丁解牛:

#coding:utf-8 聲明本文件中代碼的字符集類(lèi)型是utf-8格式。初學(xué)者如果還不理解,一方面可以去google,另外還可放一放,就先這么抄寫(xiě)下來(lái),以后會(huì)講解。

def add_function(a,b): 這里是函數(shù)的開(kāi)始。在聲明要建立一個(gè)函數(shù)的時(shí)候,一定要使用def(def 就是英文define的前三個(gè)字母),意思就是告知計(jì)算機(jī),這里要聲明一個(gè)函數(shù);add_function是這個(gè)函數(shù)名稱(chēng),取名字是有講究的,就好比你的名字一樣。在python中取名字的講究就是要有一定意義,能夠從名字中看出這個(gè)函數(shù)是用來(lái)干什么的。從add_function這個(gè)名字中,是不是看出她是用來(lái)計(jì)算加法的呢?(a,b)這個(gè)括號(hào)里面的是這個(gè)函數(shù)的參數(shù),也就是函數(shù)變量。冒號(hào),這個(gè)冒號(hào)非常非常重要,如果少了,就報(bào)錯(cuò)了。冒號(hào)的意思就是下面好開(kāi)始真正的函數(shù)內(nèi)容了。

c=a+b 特別注意,這一行比上一行要縮進(jìn)四個(gè)空格。這是python的規(guī)定,要牢記,不可丟掉,丟了就報(bào)錯(cuò)。然后這句話(huà)就是將兩個(gè)參數(shù)(變量)相加,結(jié)果賦值與另外一個(gè)變量c。

print c 還是提醒看官注意,縮進(jìn)四個(gè)空格。將得到的結(jié)果c的值打印出來(lái)。

if name=="main": 這句話(huà)先照抄,不解釋。注意就是不縮進(jìn)了。

add_function(2,3) 這才是真正調(diào)用前面建立的函數(shù),并且傳入兩個(gè)參數(shù):a=2,b=3。仔細(xì)觀察傳入?yún)?shù)的方法,就是把2放在a那個(gè)位置,3放在b那個(gè)位置(所以說(shuō),變量就是占位符).

解牛完畢,做個(gè)總結(jié):

聲明函數(shù)的格式為:

def 函數(shù)名(參數(shù)1,參數(shù)2,...,參數(shù)n):

    函數(shù)體

是不是樣式很簡(jiǎn)單呢?

取名字的學(xué)問(wèn)

有的大師,會(huì)通過(guò)某個(gè)人的名字來(lái)預(yù)測(cè)他/她的吉兇禍福等??磥?lái)名字這玩意太重要了。取個(gè)好名字,就有好兆頭呀。所以孔丘先生說(shuō)“名不正,言不順”,歪解:名字不正規(guī)化,就不順。這是歪解,希望不要影響看官正確理解。不知道大師們是不是能夠通過(guò)外國(guó)人名字預(yù)測(cè)外國(guó)人大的吉兇禍福呢?

不管怎樣,某國(guó)人是很在意名字的,旁邊有個(gè)國(guó)家似乎就不在乎。

python也很在乎名字問(wèn)題,其實(shí),所有高級(jí)語(yǔ)言對(duì)名字都有要求。為什么呢?因?yàn)槿绻麃y了,計(jì)算機(jī)就有點(diǎn)不知所措了。看python對(duì)命名的一般要求。

文件名:全小寫(xiě),可使用下劃線(xiàn)

函數(shù)名:小寫(xiě),可以用下劃線(xiàn)風(fēng)格單詞以增加可讀性。如:myfunction,my_example_function。注意:混合大小寫(xiě)僅被允許用于這種風(fēng)格已經(jīng)占據(jù)優(yōu)勢(shì)的時(shí)候,以便保持向后兼容。

函數(shù)的參數(shù):如果一個(gè)函數(shù)的參數(shù)名稱(chēng)和保留的關(guān)鍵字(所謂保留關(guān)鍵字,就是python語(yǔ)言已經(jīng)占用的名稱(chēng),通常被用來(lái)做為已經(jīng)有的函數(shù)等的命名了,你如果還用,就不行了。)沖突,通常使用一個(gè)后綴下劃線(xiàn)好于使用縮寫(xiě)或奇怪的拼寫(xiě)。

變量:變量名全部小寫(xiě),由下劃線(xiàn)連接各個(gè)單詞。如color = WHITE,this_is_a_variable = 1。

其實(shí),關(guān)于命名的問(wèn)題,還有不少爭(zhēng)論呢?最典型的是所謂匈牙利命名法、駝峰命名等。如果你喜歡,可以google一下。以下內(nèi)容供參考:

匈牙利命名法
駝峰式大小寫(xiě)
帕斯卡命名法
python命名的官方要求,如果看官的英文可以,一定要閱讀。如果英文稍遜,可以來(lái)閱讀中文,不用梯子能行嗎?看你命了。

相關(guān)文章

  • Python做文本按行去重的實(shí)現(xiàn)方法

    Python做文本按行去重的實(shí)現(xiàn)方法

    每行在promotion后面包含一些數(shù)字,如果這些數(shù)字是相同的,則認(rèn)為是相同的行,對(duì)于相同的行,只保留一行。接下來(lái)通過(guò)本文給大家介紹Python做文本按行去重的實(shí)現(xiàn)方法,感興趣的朋友一起看看吧
    2016-10-10
  • Python面向?qū)ο蟪绦蛟O(shè)計(jì)之類(lèi)的定義與繼承簡(jiǎn)單示例

    Python面向?qū)ο蟪绦蛟O(shè)計(jì)之類(lèi)的定義與繼承簡(jiǎn)單示例

    這篇文章主要介紹了Python面向?qū)ο蟪绦蛟O(shè)計(jì)之類(lèi)的定義與繼承,結(jié)合完整實(shí)例形式分析了Python面向?qū)ο蟪绦蛟O(shè)計(jì)中類(lèi)的定義、調(diào)用、繼承及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下
    2019-03-03
  • python如何提取英語(yǔ)pdf內(nèi)容并翻譯

    python如何提取英語(yǔ)pdf內(nèi)容并翻譯

    這篇文章主要為大家詳細(xì)介紹了python如何提取英語(yǔ)pdf內(nèi)容并翻譯,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-03-03
  • Python批量更改文件名的實(shí)現(xiàn)方法

    Python批量更改文件名的實(shí)現(xiàn)方法

    這篇文章主要介紹了Python批量更改文件名的實(shí)現(xiàn)方法的相關(guān)資料,希望通過(guò)本文能幫助到大家,讓大家掌握這樣的方法,需要的朋友可以參考下
    2017-10-10
  • python根據(jù)url地址下載小文件的實(shí)例

    python根據(jù)url地址下載小文件的實(shí)例

    今天小編就為大家分享一篇python根據(jù)url地址下載小文件的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-12-12
  • Python實(shí)現(xiàn)獲取前100組勾股數(shù)的方法示例

    Python實(shí)現(xiàn)獲取前100組勾股數(shù)的方法示例

    這篇文章主要介紹了Python實(shí)現(xiàn)獲取前100組勾股數(shù)的方法,涉及Python數(shù)值計(jì)算與判斷相關(guān)操作技巧,需要的朋友可以參考下
    2018-05-05
  • 詳解Python GUI工具取色器

    詳解Python GUI工具取色器

    作為Python開(kāi)發(fā)者,你遲早都會(huì)用到圖形用戶(hù)界面來(lái)開(kāi)發(fā)應(yīng)用。本文將推薦Python GUI工具取色器的一些知識(shí),感興趣的朋友一起看看吧
    2021-06-06
  • zbar解碼二維碼和條形碼示例

    zbar解碼二維碼和條形碼示例

    這篇文章主要介紹了zbar解碼二維碼和條形碼示例,需要的朋友可以參考下
    2014-02-02
  • django 前端頁(yè)面如何實(shí)現(xiàn)顯示前N條數(shù)據(jù)

    django 前端頁(yè)面如何實(shí)現(xiàn)顯示前N條數(shù)據(jù)

    這篇文章主要介紹了django 前端頁(yè)面如何實(shí)現(xiàn)顯示前N條數(shù)據(jù)。具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-03-03
  • sklearn中make_blobs的用法詳情

    sklearn中make_blobs的用法詳情

    這篇文章主要介紹了sklearn中make_blobs的用法詳情,sklearn中的make_blobs函數(shù)主要是為了生成數(shù)據(jù)集的,下面文章的學(xué)習(xí)內(nèi)容,需要的小伙伴可以參考一下
    2022-01-01

最新評(píng)論

蓬溪县| 正蓝旗| 河津市| 舞阳县| 临洮县| 崇仁县| 北流市| 英吉沙县| 九江县| 浑源县| 北宁市| 民县| 驻马店市| 郁南县| 犍为县| 柳江县| 团风县| 微山县| 建瓯市| 德化县| 定西市| 通山县| 彭水| 改则县| 株洲县| 柏乡县| 乌恰县| 岳池县| 宣城市| 广宗县| 恩施市| 民丰县| 百色市| 昌江| 辽中县| 汾阳市| 元阳县| 鹰潭市| 汝城县| 阜宁县| 平武县|