python菜鳥日記4
阿新 • • 發佈:2019-01-24
1. 在python中,0,‘’,{},(),[],空值,空列表,等等,都表示假值,反之都是真值在邏輯運算and,or中,返回的不是true或者false,返回的是邏輯運算子兩邊的其中一個值,而對於算數運算子,==,!=,>,<,這些才返回的是true或者false
2. and,從左到右運算,當兩邊,都是真值時,返回最後一個真值,當兩邊都是假值時,就返回第一個假值,當同時存在真假值時,則返回第一個假值,其實,記法可根據邏輯運算結果記
例如:>>> 'a' and 'b'
'b'
>>> ' ' and 'b'
' '
>>> 'a' and 'b' and 'c'
'c'
3. or,從左到右運算,當兩邊都是真值時,返回的是第一個真值,當兩邊都是假值時,返回最後一個值,當兩邊同時存在真假值時,則返回第一個真值,or和and的計算方法是相反的
例如: >>> 'a' or 'b'
'a'
>>> '' or 'b'
'b'
>>> '' or [] or {}
{}
>>> 0 or 'a' or 'c'
'a'
4. filter(函式名,iteratable),filter()函式是將可迭代物件中的元素一一調入函式中,根據函式return的是true和false來決定那些元素留下,哪些元素刪除,最後得到的是迭代物件,可用list()函式進行全部輸出
5. sorted([],key=函式),sorted函式也是高階函式,可以利用key只想一個自定義的或者系統自帶的函式,將[],中的元素依次呼叫key所指的函式,然後全部呼叫完畢以後,返回的值要與原來的[]中的值,有一個一一對應的關係,然後sorted對返回的值進行排序,那麼原值也將根據返回值排好的順序進行排序,最終完成對[]的排序
6. 在python中並不是所有函式都有返回值的,比如append(),sorted(),這些函式就是對呼叫他們的物件進行修改而已,並沒有返回值(也就是說並不生存新的物件),所以當我們呼叫這些函式的時候,如果再將結果賦值給一個變數的話,那麼就得到None,因為python中將沒有返回值的函式呼叫結果將返回一個NONE
7. 將函式作為返回值,當我們在一個函式中巢狀一個函式並將這個函式作為返回值的時候,我們要注意的是,巢狀函式可以引用外部函式的形參和區域性變數,當我們呼叫函式時,巢狀函式並沒有執行,而是被當作結果返回給一個變數,只有當我們用這個變數呼叫函式時,函式才執行
8. 我們呼叫外部函式時,只執行巢狀函式以外的語句,如for,if,在這些語句裡面,可能形參或區域性變數會發生變化,而我們呼叫巢狀函式的時候,用的就是已經發生過變化的這些區域性變數和引數值
25
10. 函式物件都有一個__name__屬性,通過這個屬性我們可以得到函式名,>>> a=abs>>> a.__name__結果:'abs'
11. 對於int(非int型,base=n),int函式,將第一個引數轉換成n進位制的整數,預設是n=10,所以一般都是轉換成10進位制數
12. python中有很多模組,為了避免模組名重複,就引入了包(資料夾)的概念,一個包裡面可以有很多模組,我們都知道模組名就是.py檔案的檔名,當我們有了包以後,就是包名.檔名,這樣模組,名就不會出現重複的問題了,但注意,每個包裡面必須有一個__init__.py模組,這樣系統才會把它當作一個包而不是一個普通的資料夾,類似的可以有多級目錄
2. and,從左到右運算,當兩邊,都是真值時,返回最後一個真值,當兩邊都是假值時,就返回第一個假值,當同時存在真假值時,則返回第一個假值,其實,記法可根據邏輯運算結果記
例如:>>> 'a' and 'b'
'b'
>>> ' ' and 'b'
' '
>>> 'a' and 'b' and 'c'
'c'
3. or,從左到右運算,當兩邊都是真值時,返回的是第一個真值,當兩邊都是假值時,返回最後一個值,當兩邊同時存在真假值時,則返回第一個真值,or和and的計算方法是相反的
例如: >>> 'a' or 'b'
'a'
>>> '' or 'b'
'b'
>>> '' or [] or {}
{}
>>> 0 or 'a' or 'c'
'a'
4. filter(函式名,iteratable),filter()函式是將可迭代物件中的元素一一調入函式中,根據函式return的是true和false來決定那些元素留下,哪些元素刪除,最後得到的是迭代物件,可用list()函式進行全部輸出
5. sorted([],key=函式),sorted函式也是高階函式,可以利用key只想一個自定義的或者系統自帶的函式,將[],中的元素依次呼叫key所指的函式,然後全部呼叫完畢以後,返回的值要與原來的[]中的值,有一個一一對應的關係,然後sorted對返回的值進行排序,那麼原值也將根據返回值排好的順序進行排序,最終完成對[]的排序
6. 在python中並不是所有函式都有返回值的,比如append(),sorted(),這些函式就是對呼叫他們的物件進行修改而已,並沒有返回值(也就是說並不生存新的物件),所以當我們呼叫這些函式的時候,如果再將結果賦值給一個變數的話,那麼就得到None,因為python中將沒有返回值的函式呼叫結果將返回一個NONE
7. 將函式作為返回值,當我們在一個函式中巢狀一個函式並將這個函式作為返回值的時候,我們要注意的是,巢狀函式可以引用外部函式的形參和區域性變數,當我們呼叫函式時,巢狀函式並沒有執行,而是被當作結果返回給一個變數,只有當我們用這個變數呼叫函式時,函式才執行
8. 我們呼叫外部函式時,只執行巢狀函式以外的語句,如for,if,在這些語句裡面,可能形參或區域性變數會發生變化,而我們呼叫巢狀函式的時候,用的就是已經發生過變化的這些區域性變數和引數值
9. 匿名函式lambda x: x * x,關鍵字lambda表示匿名函式,冒號前面的x表示函式引數,匿名函式有個限制,就是隻能有一個表示式,不用寫return,返回值就是該表示式的結果,匿名函式也是一個物件,可以把匿名函式賦值給一個變數,那麼這個變數就有了函式的功能
例如:>>> f = lambda x: x * x
>>> f(5)25
10. 函式物件都有一個__name__屬性,通過這個屬性我們可以得到函式名,>>> a=abs>>> a.__name__結果:'abs'
11. 對於int(非int型,base=n),int函式,將第一個引數轉換成n進位制的整數,預設是n=10,所以一般都是轉換成10進位制數
12. python中有很多模組,為了避免模組名重複,就引入了包(資料夾)的概念,一個包裡面可以有很多模組,我們都知道模組名就是.py檔案的檔名,當我們有了包以後,就是包名.檔名,這樣模組,名就不會出現重複的問題了,但注意,每個包裡面必須有一個__init__.py模組,這樣系統才會把它當作一個包而不是一個普通的資料夾,類似的可以有多級目錄