文章目錄
- 1.資料類型
-
- 1.1.不可變資料類型
-
-
- 1. Bool類型
- 2.數值類型
- 3.字元串類型
- 4.元組類型tuple
-
- 1.2. 可變資料類型
-
-
- 1. 清單類型list
- 2.字典類型dict
- 3.集合類型set
-
- 2. 三大結構
-
- 1.順序結構
- 2.分支結構
-
- 2.1. if
- 2.2. if ... else...
- 2.3. if...elif...else...
- 2.4. 其它注意事項
- 3. 循環結構
-
- 3.1. while循環
- 3.2 .for循環
- 3.3. 循環 + else
- 3.4. 其它注意事項
1.資料類型
1.1.不可變資料類型
1. Bool類型
- 隻有True和False兩個值
- 可以進行算術運算,True的值為1,False的值為0
2.數值類型
-
int類型: 整型沒有最大位數限制,受限于記憶體的大小,和傳統語言有一定差別
1.1. bin(n)函數将n轉換為二進制
1.2. oct(n)函數将n轉換為八進制
1.3. hex(n)函數将n轉換為十六進制
- float類型: 實數類型,預設17位精度,也就是16位小數
-
complex類型: 複數類型,由實部和虛部構成,形式為real + (imag)j 組成,虛部以J或j結尾
3.1. 使用變量名.real方式檢視實部
3.2. 使用變量名.imag方式檢視虛部
3.3. 使用變量名.conjudate()函數檢視共轭複數,注意調用時函數
3.字元串類型
- str類型,由引号包裹的字母數字特殊字元等等,引号可以為單引号,雙引号,三引号.
- 字元串支援索引方式擷取子串,第一個元素的索引值為0,依次遞增
- 字元串的切片: 字元串名[start : stop : sep] start代表開始索引,stop代表結束索引,sep代表步長
- 字元串拼接: 使用+拼接兩個字元串
- 字元串重複: str*n 獲得n個原字元串組成一個字元串
-
常用索引函數:
6.1. 查找子串出現次數:str.count(sub[,start[,stop]]) sub指定查找值,start和stop分别代表開始和結束索引值,可省略不寫
6.2. 查找是否存在子串:
6.2.1. str.find(sub[,start[,stop]]) 找到傳回子串第一次出現的開始索引,找不到傳回-1 rfind()函數傳回最後一次子串出現的開始索引
6.2.2. str.index(sub[,start[,stop]]) 找到查找值傳回查找值第一次出現索引,找不到直接報錯, rindex()函數傳回最後一次子串出現的開始索引
-
字元串的分割函數:
7.1. 普通分割str.split(sep,maxsplit) sep指定分隔符,maxsplit分割次數,以清單形式傳回分割後的字元串
7.2. 按行分割:str.splitlines(keepands) 隻能按照\n或\r分割,keeppands隻能是True或False,選擇顯不顯示換行符
-
字元串替換函數:
8.1. str.replace(old,new) old原值,new新值
-
字元串大小寫轉換函數
9.1. str.lower() 全部轉小寫
9.2. str.upper() 全部轉大寫
9.3. str.swapcase() 反轉大小寫
9.4. str.capitalize() 首字母大寫,其餘小寫
- 去除兩端特殊字元: str.strip(chars=) 預設去除空格,可以指定:\t制表符\n換行\r回車符 lstrip()和rstrip()可以分别去除左右端字元
-
字元串合并函數
11.1. sep.join([str1,str2…]) 以sep作為分隔符, 将所有str合并
4.元組類型tuple
- 元組可以使用變量名 = (value1,value2…) 方式定義,當隻有一個值的時候需要在值的後面加一個逗号,表示是元組
- 使用tuple()函數可以将其它資料類型轉換為元組
- 元組不限制元素的資料類型’’
- 元組元素不支援修改
- 元組支援索引和切片: tuple[start:stop:sep]
1.2. 可變資料類型
1. 清單類型list
- 清單可以直接使用變量名 = [value1,value2…] 的方式定義.
- 使用list()函數可以将其它資料類型轉換為清單類型
- 清單中的資料類型不限制
-
清單的索引和切片:
4.1. list[start:stop:sep] 和字元串索引切片方式相同, 開始索引,結束索引,步長
4.2. 由于清單内部可以存放清單,是以清單可以是多元清單, 支援多元清單切片,list[][][]…
-
清單添加元素函數:
5.1. list.append(list2): 将括号中的内容作為一個整體,追加到清單的最後,作為一個元素
5.2. list.extend(list2): 将括号中的内容拆解為單個字元,每個作為一個元素追加到清單的最後
5.3. list.insert(index,list2): 将list2作為一個元素.插入在指定的index索引前面,注意是前面…
-
清單删除元素函數:
6.1. del list[index] del可謂是萬能删除,删除所有…
6.2. list.chear() 清空清單,但清單存在
6.3. list.pop(index) 參數清單中寫入删除的索引,預設删除最後一個元素
6.4. list.remove(value) 用于删除清單中第一個與參數比對的項, 若删除元素重複,需要執行多次
-
清單查找元素函數:
7.1. in 和 not in 函數,判斷一個元素是否在清單中
7.2. list.index(value) 判斷元素在清單中第一次出現的位置,若元素不存在,則報錯
7.3. list.count(value) 判斷元素出現次數
-
清單元素排序函數:
8.1. list.sort(reverse) 一般用于數值排序,對其它類型可能錯誤, reverse為Bool類型,預設為False升序排列,指定為True則降序排序
8.2. list.reverse() 清單元素排列反轉
2.字典類型dict
- 字典使用一對大括号定義: dict = {keys1:value1,keys2:value2…},一個鍵對應一個值,若鍵重複,則保留最後一次指派
-
字典添加函數
2.1. dict[keys] = value 若鍵存在則修改原值,若不存在,則添加新鍵值對
2.2. dict.setdefault(keys,values) 若鍵存在則不作為,若不存在則添加鍵值對
2.3. dict.update(dict2) 将字典2的所有鍵值對添加到字典1中,若鍵存在則覆寫原值,類似于清單中extend函數
-
字典的删除函數
3.1. del dict[keys]
3.2. dict.pop(keys) 彈出鍵值對
3.3. dict.clear() 請空字典,但空間還在
-
字典修改
4.1. dict[keys] = values
-
字典查詢:
5.1. 字典不支援切片
5.2. dict[keys] 傳回對應值
5.3. dict.get(keys,default) 由keys查找對應值,若果keys不存在,則傳回default值
5.4. dict.keys() 傳回所有鍵組成的清單
5.5. dict.values() 傳回所有值組成的清單
5.6. dict.items() 傳回所有鍵值對構成的清單
3.集合類型set
- 集合中的元素不重複,并且無序
- 使用set()函數定義集合
-
集合添加元素函數
3.1. set.add(value) 将value添加到集合中
3.2. set.update(list) 将清單中的所有元素添加到集合中,添加過程中自動去重
-
集合删除元素函數:
4.1. set.pop() 由于無序是以無法指定索引,随即删除一個元素,并傳回這個元素
4.2. set.remove(value) 删除value
4.3. set.clear() 清空集合
2. 三大結構
1.順序結構
程式執行自傷而下依次執行
2.分支結構
2.1. if
當滿足if後條件,則執行if中的語句,否則不執行
a=1
b=1
c=2
if a==b and a<c:
print('111')
2.2. if … else…
當滿足if條件時,執行if中的語句,否則執行else中的語句
a=1
b=1
c=2
if a==b and a>c:
print('111')
esle:
print('222')
2.3. if…elif…else…
如果不滿足if條件,則判斷是否滿足elif條件,否則執行else語句
a=1
b=1
c=2
if a!=b:
print('111')
elif a!=c:
print('222')
else:
print('333')
2.4. 其它注意事項
2.4.1. 同級if elif else語句隻會執行一條,分叉路,每次走隻能走一條路
2.4.2. 分支語句可以多層嵌套,将複雜的邏輯結構化
3. 循環結構
3.1. while循環
a = 1
sum = 0
while a<=100:
sum +=a
a += 1
3.2 .for循環
sum=0
for a in range(1,101):
sum += a
3.3. 循環 + else
當循環正常結束時, 執行else語句
for i in range(10):
print(i, end=', ')
else:
print('abc')
# 輸出:0, 1, 2, 3, 4, 5, 6, 7, 8, 9, abc
當循環被中斷時, 不執行else
a = 0
b = 10
while a < b:
print(a, end=', ')
if a == 5:
break
else:
print("abc")
# 輸出: 0, 1, 2, 3, 4, 5,
3.4. 其它注意事項
3.4.1. python 不支援do…while…循環語句
3.4.2. while和for循環可以互相轉換