python編程入門筆記

1、做用域python

在python中,做用域分爲兩種:全局做用域和局部做用域。express

 全局做用域是定義在文件級別的變量,函數名。而局部做用域,則是定義函數內部。函數

 關於做用域,咱們要理解兩點:spa

    a.在全局不能訪問到局部定義的變量對象

    b.在局部可以訪問到全局定義的變量,可是不能修改全局定義的變量(固然有方法能夠修改)內存

 

例子1:作用域

x = 1
def funx():
    x = 10
    print(x) # 打印出10io

funx()
print(x) # 打印出1class

 

例子2:效率

x = 1
def funx():
    print(x) # 打印出1

funx()
print(x) # 打印出1

 

所以,關於做用域的問題,只須要記住兩點就行:

全局變量可以被文件任何地方引用,但修改只能在全局進行操做;若是局部沒有找到所需的變量,就會往外進行查找,沒有找到就會報錯。

2、匿名函數

python 使用 lambda 來建立匿名函數

lambda這個名稱來自於LISP,而LISP則是從lambda calculus(一種符號邏輯形式)取這個名稱的。
在Python中,lambda做爲一個關鍵字,做爲引入表達式的語法。想比較def函數,lambda是單一的表達式,而不是語句塊!

所謂匿名,意即再也不使用 def 語句這樣標準的形式定義一個函數

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

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

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

# lambda 參數列表:return [表達式] 變量

# 因爲lambda返回的是函數對象(構建的是一個函數對象),因此須要定義一個變量去接收

例子:

sum=lambda x , y : x+y

print sum(1,2)

匿名函數優勢

  • 使用Python寫一些腳本時,使用lambda能夠省去定義函數的過程,讓代碼更加精簡。
  • 對於一些抽象的,不會被別的地方再重複使用的函數,有時候函數起個名字也是個難題,使用lambda不須要考慮命名的問題
  • 使用lambda在某些時候而後代碼更容易理解

3、高級函數

4、通常方法,靜態方法,動態方法的區別

5、re庫

相關文章
相關標籤/搜索