廖雪峰python教程整理笔记_廖雪峰python教程笔记(一)
變量與變量名 如 a = 123,此時,python解釋器在做了兩件事,在內存中創建了一個整數123對象,在內存中創建了一個名為a的變量。并把它指向123,一個賦值語句被執行后,內存中一個變量名與它所指向的對象就是一對一的映射關系
把函數作為參數傳入稱為高階函數,map()函數接受兩個參數:函數和iterable,如map將傳入的函數依次作用到序列的每個元素,并把結果作為新的iterator返回,又如sorted()函數也是一個高階函數,它還可以接收一個key函數來實現自定義的排序,key指定的函數將作用于list的每一個元素上,并根據key函數返回的結果進行排序,要進行反向排序,不必改動key函數,可以傳入第三個參數reverse=True
字符編碼 8個比特(bit)作為一個字節(byte),所以,一個字節能表示的最大的整數就是255(二進制11111111=十進制255),最早只有127個字母被編碼到計算機里,也就是大小寫英文字母、數字和一些符號,這個編碼表被稱為ASCII編碼,但是隨著計算機的不斷發展和普及,各國有各國的標準,就會不可避免地出現沖突,結果就是,在多語言混合的文本中,顯示出來會有亂碼。Unicode應運而生。Unicode把所有語言都統一到一套編碼里,這樣就不會再有亂碼問題了。Unicode標準也在不斷發展,但最常用的是用兩個字節表示一個字符。ASCII編碼是1個字節,而Unicode編碼通常是2個字節。如果統一成Unicode編碼,亂碼問題從此消失了。但是,如果你寫的文本基本上全部是英文的話,用Unicode編碼比ASCII編碼需要多一倍的存儲空間,在存儲和傳輸上就十分不劃算。
所以,本著節約的精神,又出現了把Unicode編碼轉化為“可變長編碼”的UTF-8編碼。UTF-8編碼把一個Unicode字符根據不同的數字大小編碼成1-6個字節,常用的英文字母被編碼成1個字節,漢字通常是3個字節,只有很生僻的字符才會被編碼成4-6個字節。如果你要傳輸的文本包含大量英文字符,用UTF-8編碼就能節省空間。
tuple和list tuple和list都是有序列表,區別在于tuple不可變而list可變。注意定義只有一個元素的tuple時應用這種形式a=(1,)。
條件判斷 特殊形式為if x:print('True')只要x是非零數值、非空字符串、非空list等,就判斷為True,否則為False。
dict 使用鍵-值(key-value)存儲,dict根據key來計算value的存儲位置。通過key計算位置的算法稱為哈希算法(Hash)。要保證hash的正確性,作為key的對象就不能變,并且key不能重復。
set 和dict類似,是一組key的集合,但不存儲value。由于key不能重復,所以,在set中,沒有重復的key。要創建一個set,需要提供一個list作為輸入集合。set可以看成數學意義上的無序和無重復元素的集合,因此,兩個set可以做數學意義上的交集、并集等操作。
借助抽象,我們才能不關心底層的具體計算過程,而直接在更高的層次上思考問題
函數 Python的函數返回多值其實就是返回一個tuple,在語法上,返回一個tuple可以省略括號,而多個變量可以同時接收一個tuple,按位置賦給對應的值
函數的默認參數必須是不可變對象,*args是可變參數,args接收的是一個tuple。**kw是關鍵字參數,kw接收的是一個dict
生成器(generater)是為了節省空間,一邊循環一邊計算后續的元素,這樣就不用創建完整的list。生成器保存的是算法,并且生成器是一個可迭代對象,一般用for來調用,當推算的規則太復雜,我們可以用函數,當一個函數中出現了yield語句,它就變成了一個生成器
迭代器(iterator):可以直接作用于for循環的對象統稱為可迭代對象,可以被next()函數調用并不斷返回下一個值的對象稱為迭代器,它表示的是一個數據流,一個惰性計算的序列,我們可以把它看作一個有序序列,但是我們事先不能知道他的長度,因此list,str不是迭代器##
總結
以上是生活随笔為你收集整理的廖雪峰python教程整理笔记_廖雪峰python教程笔记(一)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 树精上单天赋s4(树精上单天赋)
- 下一篇: python3 爬虫例子_如何让你写的爬