Python高階之路 7 2 1 建立函式

2021-09-24 03:24:42 字數 1841 閱讀 4684

在前面提到,函式是可以呼叫的,而且是可以互動的,既然可以呼叫和互動,那麼久需要有乙個函式名,以及函式引數和返回值。這是函式的三個重要元素,其中函式名是必須的,函式引數和返回值是可選的。如果函式只是簡單的執行某段**,並不需要與外部進行互動,那麼函式引數與返回值可以省略。

定義函式要使用def語句。

def greet(name):

return 'hello {}'.format(name)

從上面的**可以看出,函式名是greet。後面是一對圓括號,函式的引數就放在這裡。圓括號有乙個name引數。最後用乙個冒號(:)結尾。這表示函式與if、while、for語句一樣,也是乙個**塊,這就意味著函式內部的**需要用縮排量來與外部**分開。

由於python是動態語言,所以函式引數與返回值都不需要事先指定資料型別,函式引數就直接寫引數名即可,如果函式又多個引數,中間用逗號(,)分隔。如果函式又返回值,直接使用return語句返回即可。return語句可以返回任何東西,乙個值,乙個變數,或是另外乙個函式的返回值,如果函式沒有返回值,可以省略return語句。

將**封裝在函式中後,就可以呼叫函式了。

def

greet

(name)

:return

'hello {}'

.format

(name)

print

(greet(

'python'))

#輸出結果:hello python

print

(greet(

'world'))

#輸出結果:hello world

輸出結果:

hello python

hello world

上面的**呼叫了兩個greet自定義函式,並傳入了兩個完全不同的引數值。

[例 7.1] 本例通過函式對計算斐波那契數列的**進行改進,將這段**封裝在乙個函式中,通過函式引數傳入斐波那契數列長度,然後通過return語句返回計算結果。

#自定義用於計算斐波那契數列的函式

deffibs

(n):

#定義儲存斐波那契數列的初始列表

result =[0

,1]#通過迴圈來計算斐波那契數列,並將計算結果儲存到result列表中

for i in

range

(n -2)

:-2]

+ result[-1

])#使用return返回result的計算結果

return result

#通過while迴圈從控制台不斷輸入斐波那契數列長度,並根據長度計算斐波那契數列的值

while

true

: value =

input

('請輸入乙個斐波那契數列長度:'

)#如果輸入"exit",則退出迴圈

if value ==

'exit'

:break

;#將輸入的字串轉換為整數

n =int(value)

#呼叫fibs自定義函式計算斐波那契數列

print

(fibs(n)

)

輸出結果:

請輸入乙個斐波那契數列長度:10

[0, 1, 1, 2, 3, 5, 8, 13, 21, 34]

請輸入乙個斐波那契數列長度:15

[0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377]

請輸入乙個斐波那契數列長度:exit

Python高階之路 一

一 python基礎語法知識 第一天 1 變數 定義 為了儲存 程式運算過程中的一些中間 結果,為了方便日後呼叫,資料修改 命名規則 1 由字母 數字 下劃線組成 2 不能以數字開頭,不能含有特殊的字元和空格 3 不能以保留字命名 4 不建議以中文命名 5 定義的變數名應該有意義 見名知意 6 駝峰...

python高階學習之路

正規表示式 正規表示式 match函式search函式 match物件 findal函式finditer函式 compile函式 sub函式split函式 正則標誌位和模式 beautifulsoup json模組及jsonpath lxml.etree模組 網路爬蟲 爬取頁面 urllib庫 ur...

Python高階之路 7 5 遞迴

遞迴對於初學者來說是乙個難點,初學者可能需要花一些精力在這上面。其實單從編寫遞迴的方式上來看並不難理解。所謂遞迴,就是在函式內部呼叫自身。在執行過程中,python解析器會利用棧 stack 處理遞迴函式返回的資料。所以遞迴函式的乙個必要條件是要有終止條件,否則棧就會溢位。在這裡並不討論遞迴的底層原...