python 基礎一
阿新 • • 發佈:2018-03-29
tin mov lac rate mes 不能 返回值 center replace
- 列表、元組操作
- 字符串操作
- 字典操作
- 集合操作
- 文件操作
- 字符編碼與轉碼
列表、元組操作
切片
>>> names = ["test","Tenglan","Eric","Rain","Tom","Amy"] >>> names[1:4] #取下標1至下標4之間的數字,包括1,不包括4 [‘Tenglan‘, ‘Eric‘, ‘Rain‘] >>> names[1:-1] #取下標1至-1的值,不包括-1 [‘Tenglan‘, ‘Eric‘, ‘Rain‘, ‘Tom‘] >>> names[0:3] [‘test‘, ‘Tenglan‘, ‘Eric‘] >>> names[:3] #如果是從頭開始取,0可以忽略,跟上句效果一樣 [‘test‘, ‘Tenglan‘, ‘Eric‘] >>> names[3:] #如果想取最後一個,必須不能寫-1,只能這麽寫 [‘Rain‘, ‘Tom‘, ‘Amy‘] >>> names[3:-1] #這樣-1就不會被包含了 [‘Rain‘, ‘Tom‘] >>> names[0::2] #後面的2是代表,每隔一個元素,就取一個 [‘test‘, ‘Eric‘, ‘Tom‘] >>> names[::2] #和上句效果一樣 [‘test‘, ‘Eric‘, ‘Tom‘]
追加操作--append
插入操作
修改操作
刪除操作
擴展操作
拷貝操作
統計操作
排序和反轉操作
獲取索引值操作
元組操作
字符串操作
format函數和join函數
replace函數
字典操作
增加操作
修改操作
刪除操作
查找操作
其他操作
循環
集合
集合是一個無序的,不重復的數據組合,它的主要作用如下:
去重,把一個列表變成集合,就自動去重了
關系測試,測試兩組數據之前的交集、差集、並集等關系
示例
l1 = [1,2,5,3,6,7,9] l2 = [2,3,5,8,9] ①、設置一個集合 list_1 = set(l1) ###設置一個集合 print (type(list_1)) ###打印類型,為集合 打印結果: {1, 2, 3, 5, 6, 7, 9} <class ‘set‘> ②、交集/並集/差集/對稱差集 ###交集 (&) c = l1.intersection(l2) #print (c,type(c)) ###並集 (|) d = l1.union(l2) print (d,type(d)) ###差集 (-) e = l1.difference(l2) ###l1裏面有,但是l2裏面沒有 print (e) f = l2.difference(l1) ###l2裏面有,但是l1裏面沒有 print (f) ####子集 g = l1.issubset(l2) print (g) ###返回false,這裏l1不是l2的子集 ####父集 h = l1.issuperset(l2) print (h) ####返回fasle,這裏l1不是l2的父集 ###對稱差集(把兩個集合裏互相沒有的取出來) (^) i = l1.symmetric_difference(l2) print (i) ③、增刪改查 添加: l1.add(‘x‘) ###添加一項 l1.update(1,2,3) ###添加多項 刪除: pop ###刪除一個元素並打印刪除的返回值 remove ###刪除指定的元素
文件操作
對文件操作流程
1.打開文件,得到文件句柄並賦值給一個變量
2.通過句柄對文件進行操作
3.關閉文件
f = open("aaaa",encoding="utf-8") # 打開文件 first_line = f.readline() print(‘first line:‘, first_line) # 讀一行 print(‘我是分隔線‘.center(50, ‘-‘)) #打印結果 ----------------------我是分隔線----------------------- data = f.read() # 讀取剩下的所有內容,文件大時不要用 print(data) # 打印文件 all_lines = f.readlines() print ("all_line:",all_lines) ###讀取所有行 f.close() # 關閉文件 #打印前5行 for i in range(5): print (f.readline())
#####一行一行的讀取(推薦使用,比較高效) f = open("aaaa") # 打開文件 count = 0 for line in f: if count == 2: print ("llall") count += 1 continue print (line) count += 1 簡寫: count = 0 for line in f: print(line) count += 1 if count == 2: print ("llall") continue ####一次性讀取所有文件內容 打印前10行,如果打印到第6行時跳過(讀取時直接讀取所有到內存,遇到大文件不適合用): for index,value in enumerate(f.readlines()): ####enumerate枚舉,下標從0開始, if index == 2: print ("daf") ###此處可不寫,直接跳出循環從新開始 continue
編碼解碼
1.在python2(先轉成unicode,先decode成unicode在encode成gbk或者utf-8)默認編碼是ASCII, python3裏默認是unicode bytes編碼的經過decode 成中文字符串
2.unicode 分為 utf-32(占4個字節),utf-16(占兩個字節),utf-8(占1-4個字節), so utf-16就是現在最常用的unicode版本, 不過在文件裏存的還是utf-8,因為utf8省空間
3.在py3中encode,在轉碼的同時還會把string 變成bytes類型,decode在解碼的同時還會把bytes變回string
示例:
import sys print(sys.getdefaultencoding()) msg = "我愛北京天安門" ##此時為unicode msg_gb2312 = msg.encode(encoding="gb2312") ###此時只能encode gb2312_to_gbk = msg_gb2312.decode("gbk").encode("gbk") print(msg) print(msg_gb2312) print(gb2312_to_gbk) 打印結果: utf-8 我愛北京天安門 b‘\xce\xd2\xb0\xae\xb1\xb1\xbe\xa9\xcc\xec\xb0\xb2\xc3\xc5‘ b‘\xce\xd2\xb0\xae\xb1\xb1\xbe\xa9\xcc\xec\xb0\xb2\xc3\xc5‘ 所有的轉碼必須先轉成unicode 在從encode成“utf-8”或者“gb-2312”
python 基礎一