Python学习:函数
函數是指可重復使用的程序片段。允許我們為某個代碼塊賦予名字,可以通過這一特殊的名字在程序任何地方來運行代碼塊,并可重復任何次數。這就是所謂的調用函數。 函數可以通過關鍵字 def 來定義。這一關鍵字后跟一個函數的標識符名稱,再跟一對圓括 號,其中可以包括一些變量的名稱,再以冒號結尾,結束這一行。隨后而來的語句塊是函數 的一部分。下面通過代碼來詳細說明:
定義名為 say_hello 的函數。這個函數不使用參數,因此在括號中沒有聲明變量。
輸出為:
一、函數參數
函數可以獲取參數,這個參數的值由我們自己提供,借此,函數便可以利用這些值來做一些事情。這些參數與變量類似,這些變量的值在我們調用函數時已被定義,且在函數運行時均已賦值完成。 函數中的參數通過將其放置在用以定義函數的一對圓括號中指定,并通過逗號予以分隔。當我們調用函數時,我們以同樣的形式提供需要的值。在定義函數時給定的名稱稱作“形參”,在調用函數時你所提供給函數的值稱作“實參”。具體使用方法如下:
輸出為:
二、局部變量
當你在一個函數的定義中聲明變量時,它們不會以任何方式與身處函數之外但具有相同名稱的變量產生關系,也就是說,這些變量名只存在于函數這一局部。這被稱為變量的作用域。所有變量的作用域是它們被定義的塊,從定義它們的名字的定義點開始。例子如下:
輸出為:
第一次打印出存在于函數塊的第一行的名為 x 的值時,Python 使用的是在函數聲明之上的主代碼塊中聲明的這一參數的值。 接著,將值 2 賦值給 x 。 x 是這一函數的局部變量。當我們改變函數中 x 的值的時候,主代碼塊中的 x 則不會受到影響。 隨著最后一句 print 語句,我們展示出主代碼塊中定義的 x 的值,由此確認它實際上不受先前調用的函數中的局部變量的影響。
三、global語句
如果想給一個在程序頂層的變量賦值(也就是說它不存在于任何作用域中,無論是函數還 是類),那么我們必須告訴 Python 這一變量并非局部的,而是全局(Global)的。我們需要通 過 global 語句來完成這件事。使用方法如下:
輸出為:
四、默認參數值
對于一些函數來說,可能為希望使一些參數可選并使用默認的值,以避免用戶不想為他們提供值的情況。默認參數值可以有效幫助解決這一情況。可以通過在函數定義時附加一個賦值運算符( = )來為參數指定默認參數值。 要注意到,默認參數值應該是常數。具體用法為:
輸出為:
五、關鍵字參數
如果有一些具有許多參數的函數,希望只對其中的一些進行指定,那么你可以通過命名它們來給這些參數賦值,這就是關鍵字參數。這里我們使用命名關鍵字而非位置來指定函數中的參數。 這樣做有兩個優點。
(1)不再需要考慮參數的順序,函數的使用將更加容易。(2)可以只對那些希望賦予的參數以賦值,只要其它的參數都具有默認參數值。 詳細用法如下:
輸出為:
六、可變參數
定義的函數里面能夠有任意數量的變量,也就是參數數量是可變的,這可以通過使用星號來實現。具體用法如下:
當聲明一個諸如 *param 的星號參數時,從此處開始直到結束的所有位置參數都將被收集并匯集成一個稱為“param”的元組(Tuple)。當聲明一個諸如 **param 的雙星號參數時,從此處開始直至結束的所有關鍵字參數都將被收集并匯集成一個名為 param 的字典。
輸出為:
七、return語句
return 語句用于從函數中返回,也就是中斷函數。我們也可以選擇在中斷函數時從函數中返回一個值。
八、文檔字符串
文檔字符串(DocStrings)能夠幫助我們更好地記錄程序并讓其更加易于理解。當程序實際運行時,我們可以通過一個函數來獲取文檔。具體操作如下:
函數的第一行邏輯行中的字符串是該函數的文檔字符串。第二行為空行,后跟的第三行開始是任何詳細的解釋說明。凡功能的文檔字符串中都可以遵循這一約定。 通過使用函數的 doc 屬性來獲取函數 print_max 的文檔字符串屬性。
輸出為:
總結
以上是生活随笔為你收集整理的Python学习:函数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python学习:语句
- 下一篇: websocket python爬虫_p