Python函數

Nov 23, 2016 am 10:38 AM
python

函數是組織好的,可重複使用的,用來實現單一,或相關聯功能的程式碼段。

函數能提高應用的模組性,和程式碼的重複使用率。你已經知道Python提供了許多內建函數,像是print()。但你也可以自己創見函數,這叫做使用者自訂函數。

定義一個函數

你可以定義一個由自己想要功能的函數,以下是簡單的規則:

函數程式碼區塊以def關鍵字開頭,後接函數識別碼名稱和圓括號()。

任何傳入參數和自變數必須放在圓括號中間。圓括號之間可以用來定義參數。

函數的第一行語句可以選擇性地使用文件字串—用於存放函數說明。

函數內容以冒號起始,且縮排。

Return[expression]結束函數,選擇性地傳回一個值給呼叫方。不含表達式的return相當於回傳 None。

語法

def functionname( parameters ):

   "函數_文檔字串"

   

預設情況下,參數值和參數名稱是按函數宣告中定義的的順序匹配起來的。

實例

以下為一個簡單的Python函數,它將一個字串作為傳入參數,再列印到標準顯示設備上。

def printme( string ):

   "列印傳入的字串到標準顯示裝置上"

 定義一個函數只給了函數一個名稱,指定了函數裡包含的參數,和程式碼區塊結構。

這個函數的基本結構完成以後,你可以透過另一個函數呼叫執行,也可以直接從Python提示字元執行。

如下實例呼叫了printme()函數:

#!/usr/bin/python

 

# Function definpin

 

# Functioncom   "印製任何傳入的字串"

   print string

 

# Now you can call printme function

printme("我要呼叫相同

以上實例輸出結果:

我要呼叫使用者自訂函數!

再次呼叫相同函數

   

再次呼叫相同函數

   

)。在Python裡都是按引用傳遞。如果你在函數裡修改了參數,那麼在呼叫這個函數的函數裡,原始的參數也被改變了。例如:

#!/usr/bin/python

 

# 可寫函數說明

def changeme(mylist append([1 ,2,3,4])

   print "函數內取值: ", mylist

 

# 調用changeme函數

mylist = [10,20,300me函數

); "函數外取值: ", mylist

   

傳入函數的和在末尾新增內容的物件用的是同一個引用。故輸出結果如下:

函數內取值:  [10, 20, 30, [1, 2, 3, 4]]

函數外取值: 2, 3, 4]]

函數外取值: 2, 3, 4]]

   

參數

以下是呼叫函數時可使用的正式參數型別:

必備參數

省缺不定編號參數備參數

必備參數須以正確的順序傳入函數。呼叫時的數量必須和聲明時的一樣。

呼叫printme()函數,你必須傳入一個參數,不然會出現語法錯誤:

#!/usr/bin/python

 

):

   "印製任何傳入的字串"

   print string

 

#呼叫printme函數

Traceback (most recent call last):

  File "test.py", line 11, in 

    printme()

   

命名參數

命名參數和函數呼叫關係緊密,呼叫方用參數的命名決定傳入的參數值。你可以跳過不傳的參數或亂序傳參,因為Python解釋器能夠用參數名稱來匹配參數值。用命名參數呼叫printme()函數:

#!/usr/bin/python

 

#可寫函數說明

"

   print string

 

#呼叫printme函數

printme( str = "My string")

 

My string

   

下例能將命名參數順序不重要呈現得更清楚:

#!/usr/bin/python

 

#可寫函數說明

defh info(

#任何傳入的字串"

   print "Name: ", name

   print "Age ", age

  

以上實例輸出結果:

Name:  miki

Age  50

   

值。下例會印出預設的age,如果age沒有被傳入:

#!/usr/bin/python

 

#

   "印製任何傳入的字串"

   print "Name: ", name

   print "Age ", age

   print "Age ", age

infoinfo )

printinfo( name="miki" )

   

以上實例輸出結果:

Name: 

Age  35

   

不定長參數

你可能需要一個函數能處理比當初宣告時更多的參數。這些參數叫做不定長參數,和上述2種參數不同,宣告時不會命名。基本語法如下:

def functionname([formal_args,] *var_args_tuple ):

   po [popumo🜎ion🎠):

   

   

加了星號( *)的變數名稱會存放所有未命名的變數參數。選擇不多傳參數也可。下列實例:

#!/usr/bin/python

 

# 可寫函數說明

def printinfo(sarg1, 

   print "輸出: "

   print arg1

   for var in vartuple:

      print var

info

      

printinfo( 70, 60, 50 )

   

以上實例輸出結果:

輸出:

10

輸出:

70

60 da關鍵字能創造小型匿名函數。這種函數得名於省略了用def宣告函數的標準步驟。

Lambda函數能接收任何數量的參數但只能傳回一個表達式的值,同時只能不能包含指令或多個表達式。

匿名函數不能直接呼叫print,因為lambda需要一個表達式。

lambda函數擁有自己的名字空間,且無法存取自有參數清單之外或全域名字空間裡的參數。

雖然lambda函數看起來只能寫一行,卻不等同於C或C++的內聯函數,後者的目的是調用小函數時不佔用棧內存從而增加運行效率。

語法

lambda函數的語法只包含一個語句,如下:

lambda [arg1 [,arg2,.....argn]]:expression

lambda [arg1 [,arg2,.....argn]]:expression

#!/usr/bin/python

 

#可寫函數說明

sum = lambda arg1, arg2: arg1

sum = lambda arg1, arg2: arg1

sum  "Value of total : " , sum( 10, 20 )

print "Value of total : ", sum( 20, 20 )

   

 total :  30

Value of total :  40

   

return語句

return語句[表達式]退出函數,選擇性地向呼叫方傳回一個表達式。不含參數值的return語句傳回None。之前的例子都沒有示範如何回傳數值,下例就告訴你怎麼做:

#!/usr/bin/python

 

:

   # 返回2個參數的和."

   total = arg1 + arg2

   print 

 

# 呼叫sum函數

total = sum( 10, 20 );

print "Outside the function : ", total

   

以上實例輸出結果:

Outside the function :  30

   

變量作用域

一個程式的所有的變數並不是在哪個位置都可以存取的。變數名稱。作用域。下列例子:

#!/usr/bin/python

 

total = 0; # This is glo vartotal = 0; # This is可寫arg2 ):

#回傳2個參數的和."

   total = arg1 + arg2; # total在這裡是局部變數.

   printŠ

 

#呼叫sum函數

sum( 10, 20 );

print "Outside the function global total : ", total

我 function local total :  30

Outside the function global total :  0

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1663
14
CakePHP 教程
1419
52
Laravel 教程
1313
25
PHP教程
1263
29
C# 教程
1237
24
PHP和Python:解釋了不同的範例 PHP和Python:解釋了不同的範例 Apr 18, 2025 am 12:26 AM

PHP主要是過程式編程,但也支持面向對象編程(OOP);Python支持多種範式,包括OOP、函數式和過程式編程。 PHP適合web開發,Python適用於多種應用,如數據分析和機器學習。

在PHP和Python之間進行選擇:指南 在PHP和Python之間進行選擇:指南 Apr 18, 2025 am 12:24 AM

PHP適合網頁開發和快速原型開發,Python適用於數據科學和機器學習。 1.PHP用於動態網頁開發,語法簡單,適合快速開發。 2.Python語法簡潔,適用於多領域,庫生態系統強大。

PHP和Python:深入了解他們的歷史 PHP和Python:深入了解他們的歷史 Apr 18, 2025 am 12:25 AM

PHP起源於1994年,由RasmusLerdorf開發,最初用於跟踪網站訪問者,逐漸演變為服務器端腳本語言,廣泛應用於網頁開發。 Python由GuidovanRossum於1980年代末開發,1991年首次發布,強調代碼可讀性和簡潔性,適用於科學計算、數據分析等領域。

Python vs. JavaScript:學習曲線和易用性 Python vs. JavaScript:學習曲線和易用性 Apr 16, 2025 am 12:12 AM

Python更適合初學者,學習曲線平緩,語法簡潔;JavaScript適合前端開發,學習曲線較陡,語法靈活。 1.Python語法直觀,適用於數據科學和後端開發。 2.JavaScript靈活,廣泛用於前端和服務器端編程。

sublime怎麼運行代碼python sublime怎麼運行代碼python Apr 16, 2025 am 08:48 AM

在 Sublime Text 中運行 Python 代碼,需先安裝 Python 插件,再創建 .py 文件並編寫代碼,最後按 Ctrl B 運行代碼,輸出會在控制台中顯示。

vscode在哪寫代碼 vscode在哪寫代碼 Apr 15, 2025 pm 09:54 PM

在 Visual Studio Code(VSCode)中編寫代碼簡單易行,只需安裝 VSCode、創建項目、選擇語言、創建文件、編寫代碼、保存並運行即可。 VSCode 的優點包括跨平台、免費開源、強大功能、擴展豐富,以及輕量快速。

visual studio code 可以用於 python 嗎 visual studio code 可以用於 python 嗎 Apr 15, 2025 pm 08:18 PM

VS Code 可用於編寫 Python,並提供許多功能,使其成為開發 Python 應用程序的理想工具。它允許用戶:安裝 Python 擴展,以獲得代碼補全、語法高亮和調試等功能。使用調試器逐步跟踪代碼,查找和修復錯誤。集成 Git,進行版本控制。使用代碼格式化工具,保持代碼一致性。使用 Linting 工具,提前發現潛在問題。

notepad 怎麼運行python notepad 怎麼運行python Apr 16, 2025 pm 07:33 PM

在 Notepad 中運行 Python 代碼需要安裝 Python 可執行文件和 NppExec 插件。安裝 Python 並為其添加 PATH 後,在 NppExec 插件中配置命令為“python”、參數為“{CURRENT_DIRECTORY}{FILE_NAME}”,即可在 Notepad 中通過快捷鍵“F6”運行 Python 代碼。

See all articles