日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

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

系統(tǒng) 1710 0

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

下面一段來自維基百科(在本教程中,大量的定義來自維基百科,因為它真的很百科):函數(shù)詞條

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

          

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

跟老齊學(xué)Python之永遠(yuǎn)強大的函數(shù)_第1張圖片

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

本講重點說明用python怎么來做一個函數(shù)用一用。

深入理解函數(shù)

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

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

          

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

變量不僅僅是數(shù)

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

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

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

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

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

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

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

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

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

給變量賦值

打開IDLE,實驗操作如下:

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

          

說明:

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

建立簡單函數(shù)

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

          

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

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

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

          

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

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

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

          

特別注意,如果沒有先a=2,就直接下函數(shù)表達(dá)式了,像這樣,就會報錯。

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

              
            
          

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

建立實用的函數(shù)

上面用命令方式建立函數(shù),還不夠“正規(guī)化”,那么就來寫一個.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ù)自己的喜好取個名字。

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

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

下面開始庖丁解牛:

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

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

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

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

if name=="main": 這句話先照抄,不解釋。注意就是不縮進了。

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

          

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

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

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

??? 函數(shù)體

是不是樣式很簡單呢?

取名字的學(xué)問

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

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

python也很在乎名字問題,其實,所有高級語言對名字都有要求。為什么呢?因為如果命名亂了,計算機就有點不知所措了。看python對命名的一般要求。

文件名:全小寫,可使用下劃線

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

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

變量:變量名全部小寫,由下劃線連接各個單詞。如color = WHITE,this_is_a_variable = 1。

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

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


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 富蕴县| 弥渡县| 石棉县| 施甸县| 八宿县| 浮山县| 蛟河市| 于田县| 出国| 麟游县| 磐石市| 合阳县| 甘泉县| 安阳市| 襄垣县| 麟游县| 阜南县| 新晃| 改则县| 昭觉县| 鹤山市| 邯郸县| 徐闻县| 九寨沟县| 巴林右旗| 辽源市| 武平县| 澄江县| 铜梁县| 金华市| 新野县| 黄平县| 信宜市| 兰考县| 临桂县| 德庆县| 台安县| 财经| 华阴市| 永川市| 霍邱县|