一、函數(shù)的介紹及其作用


編程語言中的函數(shù)與數(shù)學中的函數(shù)是有區(qū)別的:數(shù)學中的函數(shù)有參數(shù)(輸入),就會有相應的結(jié)果(輸出)。編程語言中的函數(shù)有輸入,不一定會返回結(jié)果。編程語言中的函數(shù)其實就是一個用于完成某個特定功能的相關(guān)代碼的代碼段 。那么哪些代碼語句應該被整合到一起定義為一個函數(shù)呢?這取決于你想讓這個函數(shù)完成的功能是什么。

為什么要將這個代碼段定義成一個函數(shù)呢?這其實就是函數(shù)的作用。假設我們在編寫一個可供用戶選擇的菜單程序,程序啟動時需要打印一遍菜單列表,而且程序運行過程中用戶也可以隨時打印菜單列表,也就是說打印菜單列表的代碼段可能要多次被用到,假設每次打印的菜單列表都是一樣的,而且列表很長,那么我們是否應該每次在需要打印菜單的時候重復執(zhí)行相同的代碼呢?那么當我們需要增加或者減少一個菜單項時怎么辦呢?顯然我們需要在每個打印菜單的代碼點都進行修改。如果我們把打印菜單的相關(guān)代碼拿出來定義為一個函數(shù),又會出現(xiàn)這樣的場景呢?我們只需要在需要打印菜單列表的地方使用這個函數(shù);當需要添加或減少一個菜單項時,只需要修改這個函數(shù)中的內(nèi)容即可,程序的維護和擴展成本大大降低;同時,我們這個程序的代碼會更加簡潔,而且有條理性更加便于閱讀,而不是一坨亂糟糟的讓人看著就想重寫的東西。當然,如果你要打印的是多級菜單,你可以通過函數(shù)的參數(shù)或全部變量通知該函數(shù)要打印的是幾級菜單??偨Y(jié)一下,編程語言中的函數(shù)的作用就是實現(xiàn)代碼的可重用性,提高代碼可維護性、擴展性和可讀性。

二、函數(shù)的定義與調(diào)用


1. 函數(shù)的定義

高級編程語言通常會提供很多內(nèi)置的函數(shù)來屏蔽底層差異,向上暴露一些通用的接口,比如我們之前用到的print()函數(shù)和open()函數(shù)。除此之外,我們也可以自定義我們需要的函數(shù)。由于函數(shù)本身也是程序代碼的一部分,因此為了標識出這段代碼是一個函數(shù)通常需要使用特定的格式或關(guān)鍵字。另外還涉及到參數(shù)、方法名稱、返回值等相關(guān)問題的約束。

Python中定義函數(shù)的規(guī)則: