標籤:字典 資料 sp2 data- lis 好用 3.3 定義函數 使用
第二天的主要內容如下:
1、認識模組
1.1、什麼是模組?
Python 模組(Module),是一個 Python 檔案,以 .py 結尾,包含了 Python 對象定義和Python語句。
模組讓你能夠有邏輯地組織你的 Python 程式碼片段。
把相關的代碼分配到一個模組裡能讓你的代碼更好用,更易懂。
模組能定義函數,類和變數,模組裡也能包含可執行檔代碼。
另外Python 模組又稱之為庫(庫又分為標準庫和第三方庫,Python 內建的為標準庫,需要安裝的為第三方庫)
模組的使用:
模組定義好後,我們可以使用 import 語句來引入模組,文法如下:
import module1[, module2[,... moduleN]
範例:
import sys
1.2、編寫和使用第三方庫:
直接引用編寫模組的路徑或者將寫好的模組檔案移動到標準庫所在位置,注意模組名稱不能和標準庫或其他第三方庫重名。
2、什麼是pyc檔案?
當python程式運行時,編譯的結果則是儲存在位於記憶體中的PyCodeObject中(PyCodeObject則是Python編譯器真正編譯成的結果),當Python程式運行結束時,Python解譯器則將PyCodeObject寫回到pyc檔案中。
當python程式第二次運行時,首先程式會在硬碟中尋找pyc檔案,如果找到,則直接載入,否則就重複上面的過程。
3、資料類型
3.1、數字:
int(整型)
long(長整型)
float(浮點型)
complex(複數)
3.2、布爾值:
真或假
0或1
3.3、字串
“Hello World”
PS:字串是 %s;整數%d;浮點數%f
字串常用功能:
移除空白
分割
長度
索引
切片
3.4、列表:
建立列表:
name_list = [‘alex‘, ‘seven‘, ‘eric‘]
或
name_list =
list
([
‘alex‘
,
‘seven‘
,
‘eric‘
]) 基本操作: 索引 切片 追加 刪除 長度 切片 迴圈 包含 3.5、元組(不可變的列表) 建立元組:
ages
=
(
11
,
22
,
33
,
44
,
55
) 或
ages
=
tuple
((
11
,
22
,
33
,
44
,
55
)) 3.6、字典(無序) 建立字典:
person
=
{
"name"
:
"mr.wu"
,
‘age‘
:
18
} 或
person
=
dict
({
"name"
:
"mr.wu"
,
‘age‘
:
18
}) 常用操作: 索引 新增 刪除 鍵、值、索引值對 迴圈 長度4、資料運算: 算數運算:
比較運算:
賦值運算:
邏輯運算:
成員運算:
身份運算:
位元運算:
運算子優先順序:
5、Bytes:
Bytes 對象是由單個位元組作為基本元素(8位,取值範圍 0-255)組成的序列,為不可變對象。
Bytes 對象只負責以二進位位元組序列的形式記錄所需記錄的對象,至於該對象到底表示什麼(比如到底是什麼字元)則由相應的編碼格式解碼所決定。我們可以通過調用 bytes() 類(沒錯,它是類,不是函數)產生 bytes 執行個體,其值形式為 b‘xxxxx‘,其中 ‘xxxxx‘ 為一至多個轉義的十六進位字串(單個 x 的形式為:\xHH,其中 \x 為小寫十六進位逸出字元,HH 為二位十六進位數)組成的序列,每個十六進位數代表一個位元組(八位位元,取值範圍 0-255),對於同一個字串如果採用不同的編碼方式產生 bytes 對象,就會形成不同的值:
比如上例中的 a 字串對象,其十進位 unicode 值為 24464,分別使用 ‘utf-8‘ 和 ‘gb2312‘ 兩種編碼格式將其轉換成 bytes 對象 b 和 c ,結果 b 和 c 的值是完全不同的,由於基於的編碼格式不一致, b c 長度甚至都不相同,前者有 3 個位元組長度,後者有 2 個位元組長度:
另外,對於 ASCII 字串,可以直接使用 b‘xxxx‘ 賦值建立 bytes 執行個體,但對於非 ASCII 編碼的字元則不能通過這種方式建立 bytes 執行個體:
由於 bytes 是序列,因此我們可以通過索引或切片訪問它的元素:
可以發現如果以單個索引的形式訪問元素,其會直接返回單個位元組的十進位整數,而以序列片段的形式訪問時,則返回相應的十六進位字元序列。
對於 bytes 執行個體,如果需要還原成相應的字串,則需要藉助內建的解碼函數 decode(),藉助相應的編碼格式解碼為正常字串對象,如果採用錯誤的編碼格式解碼,則有可能發生錯誤:
老男孩Python 課堂筆記_Day2