複習python第五天

  • 2019 年 10 月 8 日
  • 筆記

python函數

在python中有內置函數,和你自己定義的函數兩種。

內置函數是python自己寫好的,或者是一些模組的函數,可以給你直接調用,方便我們去更好的編程。關於函數的要說的就只有幾點,首先是它的內置函數,例如input()函數,eval()函數,print()函數,以及type()函數。

函數的使用:

例如你要有一個取絕對值的函數,就有內置函數abs()給你調用

當然你也可以用自己設計的函數去取絕對值,只有聲明一個函數,並函數裡面的邏輯弄對了,便可以直接調用了。我這裡的例子就只是很簡單的把數字轉換為字元串,再將符號替換掉而已,輸出的結果估計也是str值,當然可以最後再轉換為整型。

print()函數:

最基礎的函數,一開始的時候都會用的用這個來進行輸出。

type()函數:

type()函數是一個判斷參數中的值是什麼數據類型的一個函數,可以用來判斷數值然後進行操作。

input()函數:

在python2中有一個raw_input()函數和input()函數,但是現在在python3中就只有一個input()函數了。在 Python3.x 中 raw_input( ) 和 input( ) 進行了整合,去除了 raw_input( ),僅保留了 input( ) 函數,其接收任意輸入,將所有輸入默認為字元串處理,並返回字元串類型。

eval()函數:

eval() 函數用來執行一個字元串表達式,並返回表達式的值。

語法

以下是 eval() 方法的語法:

eval(expression[, globals[, locals]])

參數

expression — 表達式。

  • globals — 變數作用域,全局命名空間,如果被提供,則必須是一個字典對象。
  • locals — 變數作用域,局部命名空間,如果被提供,可以是任何映射對象。

返回值

返回表達式計算結果。

eval 方法能使字元串本身的引號去掉,保留字元的原本屬性。

從例子可以看出來,eval()函數可以提取字元串裡面的元素原本的數據類型。

自定義函數:

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

  • 函數程式碼塊以 def 關鍵詞開頭,後接函數標識符名稱和圓括弧()
  • 任何傳入參數和自變數必須放在圓括弧中間。圓括弧之間可以用於定義參數。
  • 函數的第一行語句可以選擇性地使用文檔字元串—用於存放函數說明。
  • 函數內容以「:」冒號起始,並且縮進。
  • return [表達式] 結束函數,選擇性地返回一個值給調用方。不帶表達式的return相當於返回 None
def qujueduizhi(i):      z = str(i).replace('-','')      return z

匿名函數:

python 使用 lambda 來創建匿名函數。

  • lambda只是一個表達式,函數體比def簡單很多。
  • lambda的主體是一個表達式,而不是一個程式碼塊。僅僅能在lambda表達式中封裝有限的邏輯進去。
  • lambda函數擁有自己的命名空間,且不能訪問自有參數列表之外或全局命名空間里的參數。
  • 雖然lambda函數看起來只能寫一行,卻不等同於C或C++的內聯函數,後者的目的是調用小函數時不佔用棧記憶體從而增加運行效率。

語法

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

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

變數作用域

一個程式的所有的變數並不是在哪個位置都可以訪問的。訪問許可權決定於這個變數是在哪裡賦值的。

變數的作用域決定了在哪一部分程式你可以訪問哪個特定的變數名稱。兩種最基本的變數作用域如下:

  • 全局變數
  • 局部變數

全局變數想作用於函數內,需加 global,而且必須先聲明,再使用,如果聲明的時候就賦值會報錯。