零基礎學python 初步認識永遠強大的函式

2021-06-22 18:33:43 字數 3271 閱讀 3356

函式,對於人類來講,能夠發展到這個數學思維層次,是乙個飛躍。可以說,它的提出,直接加快了現代科技和社會的發展,不論是現代的任何科技門類,乃至於經濟學、政治學、社會學等,都已經普遍使用函式。

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

[函式這個數學名詞是萊布尼茲在2023年開始使用的,以描述曲線的乙個相關量,如曲線的斜率或者曲線上的某一點。萊布尼茲所指的函式現在被稱作可導函式,數學家之外的普通人一般接觸到的函式即屬此類。對於可導函式可以討論它的極限和導數。此兩者描述了函式輸出值的變化同輸入值變化的關係,是微積分學的基礎。 中文的「函式」一詞由清朝數學家李善蘭譯出。其《代數學》書中解釋:「凡此變數中函(包含)彼變數者,則此為彼之函式」。]

函式,從簡單到複雜,各式各樣。前面提供的維基百科中的函式詞條,裡面可以做乙個概覽。但不管什麼樣子的函式,都可以用下圖概括:

有初中數學水平都能理解乙個大概了。這裡不贅述。

本講重點說明用python怎麼來做乙個函式用一用。

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

當x=2時,代入到上面的函式表示式:

f(2) = 4*2+3 = 11

所以:f(2) = 11

以上對函式的理解,是一般初中生都能打到的。但是,如果看官已經初中畢業了,或者是乙個有追求的初中生,還不能侷限在上面的理解,還要將函式的理解拓展。

變數x只能是任意數嗎?其實,乙個函式,就是乙個對應關係。看官嘗試著將上面表示式的x理解為餡餅,4x+3,就是4個餡餅在加上3(單位是什麼,就不重要了),這個結果對應著另外乙個東西,那個東西比如說是iphone。或者說可以理解為4個餡餅加3就對應乙個iphone。這就是所謂對映關係。

所以,x,不僅僅是數,可以是你認為的任何東西。

函式中為什麼變數用x?這是乙個有趣的問題,自己google一下,看能不能找到答案。

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

變數在本質上就是乙個佔位符。這是一針見血的理解。什麼是佔位符?就是先把那個位置用變數佔上,表示這裡有乙個東西,至於這個位置放什麼東西,以後再說,反正先用乙個符號佔著這個位置(佔位符)。

其實在高階語言程式設計中,變數比我們在初中數學中學習的要複雜。但是,現在我們先不管那些,複雜東西放在以後再說了。現在,就按照初中數學來研究python中的變數

通常使小寫字母來命名python中的變數,也可以在其中加上下劃線什麼的,表示區別。

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

開啟idle,實驗操作如下:

>>> a = 2   #注1

>>> a #注2

2>>> b = 3 #注3

>>> c = 3

>>> b

3>>> c

3>>>

說明:

>>> a = 2

>>> y=3*a+2

>>> y

8

這種方式建立的函式,跟在初中數學中學習的沒有什麼區別。當然,這種方式的函式,在程式設計實踐中的用途不大,一般是在學習階段理解函式來使用的。

別急躁,你在輸入a=3,然後輸入y,看看得到什麼結果呢?

>>> a=2

>>> y=3*a+2

>>> y

8>>> a=3

>>> y

8

是不是很奇怪?為什麼後面已經讓a等於3了,結果y還是8。

用前面的釣魚理論就可以解釋了。a和2相連,經過計算,y和8相連了。後面a的連線物件修改了,但是y的連線物件還沒有變,所以,還是8。再計算一次,y的連線物件就變了:

>>> a=3

>>> y

8>>> y=3*a+2

>>> y

11

特別注意,如果沒有先a=2,就直接下函式表示式了,像這樣,就會報錯。

>>> y=3*a+2

traceback (most recent call last):

file "", line 1, in nameerror: name 'a' is not defined

注意看錯誤提示,a是乙個變數,提示中告訴我們這個變數沒有定義。顯然,如果函式中要使用某個變數,不得不提前定義出來。定義方法就是給這個變數複製。

上面用命令方式建立函式,還不夠「正規化」,那麼就來寫乙個.py檔案吧。

在idle中,file->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,你根據自己的喜好取個名字。

然後我就進入到那個資料夾,執行這個檔案,出現下面的結果,如圖:

你執行的結果是什麼?如果沒有得到上面的結果,你就非常認真地檢查**,是否跟我寫的完全一樣,注意,包括冒號和空格,都得一樣。冒號和空格很重要

下面開始庖丁解牛:

解牛完畢,做個總結:

def 函式名(引數1,引數2,...,引數n):

函式體

是不是樣式很簡單呢?

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

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

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

零基礎學Python

零基礎學python 1 1 python是一門指令碼語言 2 python的優勢 1 語法和結構比較簡單,易入門 2 能夠跨平台使用 3 應用範圍廣,設計到作業系統 3d動畫 web 雲計算,企業應用等多方面。3 idle 是乙個python shell,類似於windows的cmd視窗 4 pr...

零基礎學python 一

每次學習語言總是要了解其背景python也不例外。首先python的創始人為 guido van rossum 1989年聖誕節期間,在 阿姆斯特丹 guido為了打發聖誕節的無趣,決心開發乙個新的指令碼 解釋程式 做為abc 語言的一種繼承。看看人家外鬼子程式設計師 哎不得不佩服。他在業餘時間開發...

零基礎學Python筆記

alt n 最遠一條語句 alt p 最近一條語句 tab的兩個作用 1 縮排 2 補足 isinstance str1,str 判斷型別 s為字串 s.isalnum 所有字元都是數字或者字母,為真返回 ture,否則返回 false。s.isalpha 所有字元都是字母,為真返回 ture,否則...