Python中定義函數格式為,def+函數名:代碼塊
公司主營業務:網站設計制作、成都網站制作、移動網站開發等業務。幫助企業客戶真正實現互聯網宣傳,提高企業的競爭能力。成都創新互聯公司是一支青春激揚、勤奮敬業、活力青春激揚、勤奮敬業、活力澎湃、和諧高效的團隊。公司秉承以“開放、自由、嚴謹、自律”為核心的企業文化,感謝他們對我們的高要求,感謝他們從不同領域給我們帶來的挑戰,讓我們激情的團隊有機會用頭腦與智慧不斷的給客戶帶來驚喜。成都創新互聯公司推出遵義免費做網站回饋大家。
如:
def print_hello():
print("hello")
在python中,定義一個函數要使用def語句,依次寫出函數名、括號、括號中的參數和冒號:,然后在縮進塊中編寫函數體,函數的返回值用return語句返回
def 函數名([參數1,參數2,...,參數n]):
函數體
函數代碼以def關鍵詞開頭,后接函數標識符名稱和圓括號():
任何傳入參數和自變量必須放在圓括號中間,圓括號之間可以用于定義參數
函數的第一行語句可以選擇性的使用文檔字符串-用于存放函數說明
函數內容以冒號起始,并且縮進
return[表達式]結束函數,選擇性的返回一個值給調用方,不帶表達式的return相當于返回None
params
就是(5, 5)
(5,) * 2 ,就是2個5的元組,乘號可以理解成相加。"*" * 30就是30個“*"的字符串
*params作為參數,前面的*號就是把params元組分解成元素的意思,這樣就分開成為2個參數了。實際上傳遞給了x,y
于是就執行了power(5,5)
4.6. 定義函數
我們可以創建一個用來生成指定邊界的斐波那契數列的函數:
def fib(n): # write Fibonacci series up to n
... """Print a Fibonacci series up to n."""
... a, b = 0, 1
... while a n:
... print(a, end=' ')
... a, b = b, a+b
... print()
...
# Now call the function we just defined:
... fib(2000)
0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597
關鍵字 def 引入了一個函數 定義。在其后必須跟有函數名和包括形式參數的圓括號。函數體語句從下一行開始,必須是縮進的。
函數體的第一行語句可以是可選的字符串文本,這個字符串是函數的文檔字符串,或者稱為 docstring。(更多關于 docstrings 的信息請參考 文檔字符串) 有些工具通過 docstrings 自動生成在線的或可打印的文檔,或者讓用戶通過代碼交互瀏覽;在你的代碼中包含 docstrings 是一個好的實踐,讓它成為習慣吧。
函數 調用 會為函數局部變量生成一個新的符號表。確切的說,所有函數中的變量賦值都是將值存儲在局部符號表。變量引用首先在局部符號表中查找,然后是包含函數的局部符號表,然后是全局符號表,最后是內置名字表。因此,全局變量不能在函數中直接賦值(除非用 global 語句命名),盡管他們可以被引用。
函數引用的實際參數在函數調用時引入局部符號表,因此,實參總是 傳值調用 (這里的 值 總是一個對象 引用 ,而不是該對象的值)。[1] 一個函數被另一個函數調用時,一個新的局部符號表在調用過程中被創建。
一個函數定義會在當前符號表內引入函數名。函數名指代的值(即函數體)有一個被 Python 解釋器認定為 用戶自定義函數 的類型。 這個值可以賦予其他的名字(即變量名),然后它也可以被當作函數使用。這可以作為通用的重命名機制:
fib
f = fib
f(100)
0 1 1 2 3 5 8 13 21 34 55 89
如果你使用過其他語言,你可能會反對說:fib 不是一個函數,而是一個方法,因為它并不返回任何值。事實上,沒有 return 語句的函數確實會返回一個值,雖然是一個相當令人厭煩的值(指 None )。這個值被稱為 None (這是一個內建名稱)。如果 None 值是唯一被書寫的值,那么在寫的時候通常會被解釋器忽略(即不輸出任何內容)。如果你確實想看到這個值的輸出內容,請使用 print() 函數:
定義:
def 函數名(形參1,形參2='初始定義的內容'):
函數中執行的內容
調用:
函數名(實參1)或函數名(形參2=實參2,形參1=實參1)或函數名(實參1,實參2)
python中定義函數有兩種方式:
第一種 def()
那么這種方式也是我們最經常遇到的,沒有其他任何的限制,具體示例見代碼
#這個函數的作用是對傳入的值進行加2操作def add2(x):y = x + 2return y
那么我們怎么調用呢?其實很簡單
# 定義一個變量i = 5# 對它執行加2操作add2(i)
那么最終的結果也是顯而易見了,是7
第二種 lambda
這種方式由于書寫的方式(等下會在代碼中看到),所以就是適合很短的代碼,那么讓我們來舉個栗子
# 定義了一個函數,作用是求一個數的平方square = lambda x: x * x
那么我們怎么調用呢?其實都是同樣的道理
# 定義變量number = 3 # 調用函數square(3)
那么答案就是:9