0003-20180422-自動化第三章-python基礎學習筆記 ...
3章
內容回顧:
1. 電腦組成
2. 程式編譯器
3. 變數
4. 條件
5. 迴圈
6. py2與py3區別
- 預設編碼,
- 除法,
- input ,raw_input
7. 位,位元組關係
8. 運算符:
- and or
- in not
- py2 除法特殊代碼
- += -=
9. 編碼
漢字在utf-8里位3個位元組,24位;漢字在GBK里是兩個位元組,16位
ascii --> unicode(4個位元組,32位表示) ->(優化) utf-8/utf-16/utf-32
10. 字元串格式化
tpl = "asdfa&s,asdf%d" %("二哥", 666,)
問題:
tpl = "我是%s",年齡%d,學習進度100%%" %('張勤學',99)
今日內容:
- 數據類型
- 整數(int類) v = 1 ----擅長計算
- v = 1
- v.bit_length()
- 布爾值(bool類) v = True -----擅長真或假
- 0 "" 為False,其他為True
- v = 2 or 1 ----V的值是2
- 字元串(str類) 引號引起來 "1" v = "1"
- 類提供的功能:
- 變大、小寫
- 去除空白
- 替換
- 分割(分割後是列表類型)
- 首字母大寫
PS:字元串本身不變化
- 公共功能:
- 長度
- 索引(只能取值)
- for迴圈
"張勤學,二個,成績,XXX,信息,"
[“鄭勤學,“二個”]
- 列表(list類) v = ["XX",“OO”, "666"] #---存取多個值比較方便
- 類提供功能:
- 追加
- 插入
PS:列表本身發生變化
- 公共功能:
- 長度
- 索引(取值,修改,刪除) 特殊的:v[0:2] = ["asdf",]
- for迴圈
v[2]
v[1] = "孫騎兵"
- 元組(tuple類) v = ("XX",“OO”, "666") #PS:----元素不可以被修改
- 類提供功能:
- 無
- 公共功能:
- 長度
- for迴圈
- 索引(只能取值)
- 字典(dict類)-----無序的 v = {"name":"張勤學","age":18}
- 類提供的功能:
- get
- 公共功能:
- 長度
- 索引(取值,刪除,修改)
- for迴圈
- for a in v.keys()
- for a in v.values()
- for a,b in v.items()
v = "鄭勤學,18" #-----字元串表示姓名年齡
v = ["鄭勤學",18] #-----列表表示姓名年齡
v = {
"name":"張勤學",
"age":18
} #-----字典表示姓名年齡
v['name'] #指名字
v['age'] #指年齡
===> 相同類的值(指定類的對象)具有相同的功能,功能保存在類中(只有一份)
今日作業:
內容整理
=============================================腳本=======================================
字元串類中的功能腳本:
1 ###############################str類中為當前對象提供的功能######################### 2 #str 3 # v1 = "alEx" 4 5 #1. 變大寫 6 # value = v1.upper() 7 # print(v1,value) 8 9 10 #2,.變小寫 11 # value = v1.lower() 12 # print(v1.value) 13 14 15 #3. 首字母變大寫 16 # value = v1.capitalize() 17 # print(v1,value) 18 19 #4. 去除收尾空格 20 # v1 = " asdfasdf " 21 # print(v1) 22 23 24 # v1 = " asdfasdf " 25 # value = v1.strip() 26 # print(v1,value) 27 28 """ 29 name = input("請輸入用戶名:") 30 if name == 'alex': 31 print('登錄成功') 32 """ 33 34 """ 35 name = input("請輸入用戶名:") 36 value = name.strip() 37 if value == 'alex': 38 print('登錄成功') 39 """ 40 41 """ 42 #去除左邊空格 -----去除指定空格-----左邊或右邊 43 44 name = input("請輸入用戶名:") 45 value = name.lstrip() 46 if value == 'alex': 47 print('登錄成功') 48 49 """ 50 51 """ 52 去除右邊空格 53 name = input("請輸入用戶名:") 54 value = name.rstrip() 55 if value == 'alex': 56 print('登錄成功') 57 """ 58 59 60 #7. 替換 61 """ 62 v1 = "ASCII第一次以規範標準的型態發表是在1967年標準,最後一次更新則標準是在1986年,至今為標準止共定義了128個字元,其中33個字元無法顯示" 63 64 # value = v1.replace("標準", "**") 65 # print(value) 66 67 68 #只替換第1個標準,後面的不替換 69 value = v1.replace("標準", "**",1) 70 data = value.replace('第一次','#') 71 print(data) 72 """ 73 74 #8. 分割: 75 """ 76 v1 = "ASCII第一次以規範標準的型態發" 77 value = v1.split('第一次') #分割之後是列表類型 78 print(value) 79 """ 80 """ 81 v1 = "ASCII第一次以規範標準的型態發以規範標準的型態以規範標準的型態" 82 value = v1.split('標準') #分割之後是列表類型 83 print(value) 84 """ 85 86 """ 87 v1 = "ASCII第一次以規範標準的型態發以規範標準的型態以規範標準的型態" 88 value = v1.split('標準',2) #分割之後是列表類型 89 print(value) 90 """ 91 92 #9. 判斷當前字元串中是否全部都為數字 93 """ 94 v = "abc123fsdf" 95 for item in v: 96 print(item) #item = "a", item = "b" 97 """ 98 99 """ 100 v = "123" 101 val = v.isdecimal() 102 print(val) 103 """ 104 105 """ 106 v = "a123" 107 val = v.isdecimal() 108 print(val) 109 """ 110 111 #統計字元串中有多少個數字?-------"abc01234fsdf" 112 """ 113 count = 0 114 v = "abc01234fsdf" 115 for item in v: 116 if item.isdecimal(): 117 print(item) 118 count += 1 119 print(count) 120 """ 121 122 #重點重點重點:原值不變 123 124 ###################公共功能############### 125 126 # 1.計算當前字元串長度 127 128 """ 129 v = "徐芳名sdf" 130 value = len(v) 131 print(value) 132 133 """ 134 135 """ 136 name = input(">>>") 137 value = len(name) 138 print(value) 139 """ 140 141 #取首字元或第幾個字元 142 #2. 根據“索引” “下標” 143 # - 單個值:v[0] 144 # - 多個值:v[起始位置:結束位置] 145 # - 多個值: v[起始位置:結束位置:步長] 146 # PS: -1 表示最後 147 148 # 取第一個字元-----取單個字元 149 # v = "ASCII第一次以規範標準的型態發" 150 # value = v [0] 151 # print(value) 152 153 #取倒數第3個字元 154 # v = "ASCII第一次以規範標準的型態發" 155 # value = v [-3] 156 # print(value) 157 158 159 #動態計算取最後一個字元 160 # v = "ASCII第一次以規範標準的型態發" 161 # le = len(v) - 1 162 #-1表示最後一個字元 163 # value = v [le] 164 # print(value) 165 166 #取一部分字元,取從0到第幾個之前的字元------連續字元 167 # v = "ASCII第一次以規範標準的型態發" 168 # value = v [0:5] # 0 1 2 3 4 169 # print(value) 170 171 #取某兩個之間的字元 172 # v = "ASCII第一次以規範標準的型態發" 173 # value = v [4:5] 174 # print(value) 175 176 #取從第幾個開始到結尾的字元 177 # v = "ASCII第一次以規範標準的型態發" 178 # value = v [4:] 179 # print(value) 180 181 # #取從第幾個開始到最後一個之間的字元 182 # v = "ASCII第一次以規範標準的型態發" 183 # value = v [4:-1] 184 # print(value) 185 186 187 #取從第幾個開始到第幾個之間的字元,中括弧中第3個數字表示步長,表示每隔幾取一個 188 # v = "ASCII第一次以規範標準的型態發" 189 # value = v [1:15:3] 190 # print(value) 191 192 193 #題 : v = "ASCII第一次以規範標準的型態發" 連續將每個字元大印出來 194 """ 195 v = "ASCII第一次以規範標準的型態發" 196 length = len(v) 197 index = 0 198 while True: 199 data = v[index] 200 print(data) 201 index += 1 202 if index == length: 203 break 204 print(data) 205 """ 206 207 """ 208 v = "ASCII第一次以規範標準的型態發" 209 length = len(v) 210 index = 0 211 while index < length: 212 data = v[index] 213 print(data) 214 index += 1 215 """ 216 217 #3. 迴圈 218 # 將對象中每個元素,分別迴圈顯示出來 219 """ 220 v = "ASCII第一次以規範標準的型態發" 221 for item in v: 222 print(item) 223 """
上節回顧字元串格式化腳本:
1 # tpl = "我是%s,年齡%d,學習進度100%" %('張勤學',99) 2 # print(tpl) 3 4 5 #占位符只有格式化時才有意義 6 # tpl = "我是%s,年齡%d,學習進度100%" 7 # print(tpl) 8 9 10 # tpl = "我是%s,年齡%d,學習進度100" %('張勤學',99) 11 # print(tpl) 12 13 14 #如果想要%,需要寫兩個% 15 tpl = "我是%s,年齡%d,學習進度100%%" %('張勤學',99) 16 print(tpl)
int整數類腳本:
1 #int 2 # v1 = 1 3 # v2 = 23 4 5 6 7 #前戲 8 # 十進位 0 1 2...9 9 #八進位 0 1 2 ..7 10 10 #二進位 0 1 10 11 100 11 12 # v = 11 在電腦里是怎麼存的? 13 # ascii 00110001 00110001 14 15 # v1 = 11 16 # data = v1.bit_length() 17 # print(data) 18 #本質上的內部存儲:00110001 00110001 19 # 11 -> 20 21 #二進位 八進位 十進位 十六進位 22 # 0 0 0 0 23 # 1 1 1 1 24 # 10 2 2 2 25 # 11 3 3 3 26 # 100 4 4 4 27 # 101 6 6 6 28 # 111 7 7 7 29 # 1000 10 7 8 30 # 1001 11 9 9 31 # 1010 12 10 A 32 # 1011 13 11 B 33 # 1100 14 12 C 34 # 1101 15 13 D 35 # 1110 16 14 E 36 # 1111 17 15 F 37 # 10000 20 16 10 38 39 ########################################1個需要註意 40 v1 = 16 41 #當前十進位用二進位表示時,最少使用的位數 42 data = v1.bit_length() 43 print(data) 44 45 #str 46 v1 = "alex" 47 48 # new_v1 = v1.upper() 49 # print(v1) 50 # print(new_v1) 51 52 53 # new_v1 = v1.capitalize() 54 # print(v1) 55 # print(new_v1)
布爾類腳本:
1 v1 = True # 1 2 v2 = False # 0
整數、布爾值、字元串之間轉換腳本:
1 #int 8 9 2 #bool True False 3 #str "sdf" "7" ----只有字元串可以迴圈取值 4 5 6 #加法計算器 7 # v1 = input("請輸入第一個值:") 8 # v2 = input("請輸入第二個值:") 9 # v3 = int(v1) + int(v2) # 通過int將字元串轉換為整數 10 # print(v3) 11 12 #字元串--> 整數 13 14 # v = True 15 # val = int(v) 16 # print(val) 17 18 19 # v = False 20 # val = int(v) 21 # print(val) 22 23 #布爾值-->整數 int(值) 24 #整數,布爾值----> 字元串 str(值) 25 # 整數,字元串 ----布爾 bool(值) 26 # - 0 False ,其他都為True 27 # - 字元串和空格都為True,只有不填時才為False 28 29 # v = 8 30 # val = str(v) 31 # print(val,type(val)) 32 33 34 # v = True 35 # val = str(v) 36 # print(val,type(val)) 37 38 39 # v = -1 40 # val = bool(v) 41 # print(val,type(val)) 42 43 44 # v = 0 45 # val = bool(v) 46 # print(val,type(val)) 47 48 49 # v = "abdcd" 50 # val = bool(v) 51 # print(val,type(val)) 52 53 54 # v = " " 55 # val = bool(v) 56 # print(val,type(val)) 57 58 59 # v = "" 60 # val = bool(v) 61 # print(val,type(val)) 62 63 # 面試題: 64 # a = 1 == 1 or 2 > 3 65 # print(a) 66 #True 67 68 # a = True or 2 > 3 69 # print(a) 70 #True 71 72 # a = False or 2 > 3 73 # print(a) 74 #False 75 76 # a = 0 or 2 > 3 77 # print(a) 78 #False 79 80 81 # a = 9 or 2 > 3 82 # print(a) 83 #9 84 85 86 # a = "asdf" or 2 > 3 87 # print(a) 88 # asdf 89 90 #總結: 91 # - 互相轉換原則 類(值) 92 # -布爾值:只有0 ""為False 93 # -a = 9 or 2 > 3 94 95 # a = 0 or 6 96 # print(a) 97 # 6
列表類功能相關腳本:
1 ####################list類中為當前對象提供的功能##################### 2 3 """ 4 v = [11,22,33,44,"蔣毅"] 5 6 #1. 在列表尾部追加一個值-----修改了本身的值 7 v.append('李俊義') 8 print(v) 9 """ 10 11 """ 12 v = [] 13 while True: 14 name = input("請輸入用戶名:") 15 if name == 'q': 16 break 17 v.append(name) 18 print(v) 19 """ 20 21 """ 22 v = [] 23 while True: 24 name = input("請輸入用戶名:") 25 if name == 'q' or name == "Q": 26 break 27 v.append(name) 28 print(v) 29 """ 30 31 """ 32 v = [] 33 while True: 34 name = input("請輸入用戶名:") 35 if name.lower() == 'q': 36 break 37 v.append(name) 38 print(v) 39 40 """ 41 42 """ 43 #2.在列表中間指定位置插入數據----insert 44 v = [11,22,33,44,"蔣毅"] 45 v.insert(4,"孫騎兵") 46 print(v) 47 """ 48 #3. 反轉 49 """ 50 v = [11,22,33,44] 51 #print(v) 52 v.reverse() 53 print(v) 54 """ 55 56 57 58 59 #####################公共功能###################### 60 #1.通過索引取值----和字元串相同 61 # - v[0] 62 # - v[0:4] 63 # - v[0:4:2] 64 #2.計算長度 65 #2.5 替換或修改 66 # 替換: 67 """ 68 v = ["張勤學","成大井","成績","劉龍華"] 69 v[3] = "吳國勝" 70 print(v) 71 """ 72 73 """ 74 #刪除: 75 v = ["張勤學","成大井","成績","劉龍華"] 76 del v[3] 77 print(v) 78 """ 79 80 """ 81 v = ["張勤學","成大井","成績","劉龍華","ALEX"] 82 del v[3] 83 del v[2] 84 print(v) 85 """ 86 """ 87 v = ["張勤學","成大井","成績","劉龍華","ALEX"] 88 del v[2:4] 89 print(v) 90 """ 91 92 """ 93 v = ["張勤學","成大井","成績","劉龍華","ALEX"] 94 v[2:4] = "吳國勝" 95 print(v) 96 """ 97 """ 98 v = ["張勤學","成大井","成績","劉龍華","ALEX"] 99 v[2:4] = ["吳國勝"] 100 print(v) 101 """ 102 """ 103 v = ["張勤學","成大井","成績","劉龍華","ALEX"] 104 v[2:4] = ["吳國勝","狗勝","牛勝"] 105 print(v) 106 """ 107 108 #3.for迴圈 109 110 """ 111 v = [11,22,33,44,"蔣毅"] 112 print(v[3]) 113 114 115 v = [11,22,33,44,"蔣毅"] 116 val1 = v [3] 117 val2 = v [4] 118 119 val1.bit_length() 120 val2.split("蔣") 121 """ 122 123 """ 124 v = [11,22,33,44,"蔣毅"] 125 val = v[0:5:2] 126 print(val) 127 128 """ 129 130 """ 131 v = [11,22,33,44,"蔣毅"] 132 val = len(v) 133 print(val) 134 """ 135 """ 136 v = [11,22,33,44,"蔣毅"] 137 for i in v: 138 print(i) 139 """ 140 141 #練習: 142 """ 143 v = ["123","孫騎兵",666] 144 # val = len(v) 145 # print(val) 146 val = v[1][1] 147 print(val) 148 print(v[1]) 149 """ 150 """ 151 #將孫奇兵和666替換為王猛 152 v = ["123","孫騎兵",666] 153 v[1:3] = ["王猛",] 154 print(v) 155 """ 156 """ 157 #尾部添加王皓林 158 v = ["123","孫騎兵",666] 159 v.append('王皓林') 160 print(v) 161 """ 162 163 #補充: 164 #1.列表中元素可以是:數字,字元串,布爾值,另外一個列表 165 """ 166 li = [11,22,[6,5,7],33,True,"蔣毅",55] 167 v = len(li) 168 print(v) 169 val = li[2] 170 print(val) 171 """ 172 """ 173 li = [11,22,[6,"88991"],33,True,"蔣毅",55] 174 val = li[2][1][-2] 175 print(val) 176 """ 177 178 """ 179 #將33換成66 180 li = [11,22,[6,"88991"],33,True,"蔣毅",55] 181 li[3] = 66 182 print(li) 183 """ 184 #將7換成77 185 """ 186 li = [11,22,[6,"88991",7],33,True,"蔣毅",55] 187 li[2][2] = 77 188 print(li) 189 190 """ 191 #將88991換成666 192 """ 193 li = [11,22,[6,"88991",7],33,True,"蔣毅",55] 194 li[2][1] = 666 195 print(li) 196 """ 197 198 #字元串中數據替換 199 """ 200 v = "蔣毅" 201 v = v.replace('蔣','江') 202 print(v) 203 """ 204 205 #將"蔣毅"中的蔣替換為江 206 """ 207 li = [11,22,[6,"88991",7],33,True,"蔣毅",55] 208 val = li[5].replace('蔣','江') 209 li[5] = val 210 print(li) 211 """ 212 #簡寫 213 """ 214 li = [11,22,[6,"88991",7],33,True,"蔣毅",55] 215 li[5] = li[5].replace('蔣','江') 216 print(li) 217 """
元組類相關腳本:
1 #tuple 2 3 #v = (11,'ffff',22,33,44,) 4 5 ###########tuple 類中為當前對象提供的功能########### 6 #無 7 8 ##########公共功能############ 9 #1. 長度 10 11 12 """ 13 v = (11,'ffff',22,33,44,) 14 val = len(v) 15 print(val) 16 """ 17 #索引取值 18 """ 19 v = (11,'ffff',22,33,44,) 20 print(v[0]) 21 print(v[1]) 22