天天看點

Python基礎架構總結1.資料類型2. 三大結構

文章目錄

  • 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類型

  1. 隻有True和False兩個值
  2. 可以進行算術運算,True的值為1,False的值為0

2.數值類型

  1. int類型: 整型沒有最大位數限制,受限于記憶體的大小,和傳統語言有一定差別

    1.1. bin(n)函數将n轉換為二進制

    1.2. oct(n)函數将n轉換為八進制

    1.3. hex(n)函數将n轉換為十六進制

  2. float類型: 實數類型,預設17位精度,也就是16位小數
  3. complex類型: 複數類型,由實部和虛部構成,形式為real + (imag)j 組成,虛部以J或j結尾

    3.1. 使用變量名.real方式檢視實部

    3.2. 使用變量名.imag方式檢視虛部

    3.3. 使用變量名.conjudate()函數檢視共轭複數,注意調用時函數

3.字元串類型

  1. str類型,由引号包裹的字母數字特殊字元等等,引号可以為單引号,雙引号,三引号.
  2. 字元串支援索引方式擷取子串,第一個元素的索引值為0,依次遞增
  3. 字元串的切片: 字元串名[start : stop : sep] start代表開始索引,stop代表結束索引,sep代表步長
  4. 字元串拼接: 使用+拼接兩個字元串
  5. 字元串重複: str*n 獲得n個原字元串組成一個字元串
  6. 常用索引函數:

    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. 字元串的分割函數:

    7.1. 普通分割str.split(sep,maxsplit) sep指定分隔符,maxsplit分割次數,以清單形式傳回分割後的字元串

    7.2. 按行分割:str.splitlines(keepands) 隻能按照\n或\r分割,keeppands隻能是True或False,選擇顯不顯示換行符

  8. 字元串替換函數:

    8.1. str.replace(old,new) old原值,new新值

  9. 字元串大小寫轉換函數

    9.1. str.lower() 全部轉小寫

    9.2. str.upper() 全部轉大寫

    9.3. str.swapcase() 反轉大小寫

    9.4. str.capitalize() 首字母大寫,其餘小寫

  10. 去除兩端特殊字元: str.strip(chars=) 預設去除空格,可以指定:\t制表符\n換行\r回車符 lstrip()和rstrip()可以分别去除左右端字元
  11. 字元串合并函數

    11.1. sep.join([str1,str2…]) 以sep作為分隔符, 将所有str合并

4.元組類型tuple

  1. 元組可以使用變量名 = (value1,value2…) 方式定義,當隻有一個值的時候需要在值的後面加一個逗号,表示是元組
  2. 使用tuple()函數可以将其它資料類型轉換為元組
  3. 元組不限制元素的資料類型’’
  4. 元組元素不支援修改
  5. 元組支援索引和切片: tuple[start:stop:sep]

1.2. 可變資料類型

1. 清單類型list

  1. 清單可以直接使用變量名 = [value1,value2…] 的方式定義.
  2. 使用list()函數可以将其它資料類型轉換為清單類型
  3. 清單中的資料類型不限制
  4. 清單的索引和切片:

    4.1. list[start:stop:sep] 和字元串索引切片方式相同, 開始索引,結束索引,步長

    4.2. 由于清單内部可以存放清單,是以清單可以是多元清單, 支援多元清單切片,list[][][]…

  5. 清單添加元素函數:

    5.1. list.append(list2): 将括号中的内容作為一個整體,追加到清單的最後,作為一個元素

    5.2. list.extend(list2): 将括号中的内容拆解為單個字元,每個作為一個元素追加到清單的最後

    5.3. list.insert(index,list2): 将list2作為一個元素.插入在指定的index索引前面,注意是前面…

  6. 清單删除元素函數:

    6.1. del list[index] del可謂是萬能删除,删除所有…

    6.2. list.chear() 清空清單,但清單存在

    6.3. list.pop(index) 參數清單中寫入删除的索引,預設删除最後一個元素

    6.4. list.remove(value) 用于删除清單中第一個與參數比對的項, 若删除元素重複,需要執行多次

  7. 清單查找元素函數:

    7.1. in 和 not in 函數,判斷一個元素是否在清單中

    7.2. list.index(value) 判斷元素在清單中第一次出現的位置,若元素不存在,則報錯

    7.3. list.count(value) 判斷元素出現次數

  8. 清單元素排序函數:

    8.1. list.sort(reverse) 一般用于數值排序,對其它類型可能錯誤, reverse為Bool類型,預設為False升序排列,指定為True則降序排序

    8.2. list.reverse() 清單元素排列反轉

2.字典類型dict

  1. 字典使用一對大括号定義: dict = {keys1:value1,keys2:value2…},一個鍵對應一個值,若鍵重複,則保留最後一次指派
  2. 字典添加函數

    2.1. dict[keys] = value 若鍵存在則修改原值,若不存在,則添加新鍵值對

    2.2. dict.setdefault(keys,values) 若鍵存在則不作為,若不存在則添加鍵值對

    2.3. dict.update(dict2) 将字典2的所有鍵值對添加到字典1中,若鍵存在則覆寫原值,類似于清單中extend函數

  3. 字典的删除函數

    3.1. del dict[keys]

    3.2. dict.pop(keys) 彈出鍵值對

    3.3. dict.clear() 請空字典,但空間還在

  4. 字典修改

    4.1. dict[keys] = values

  5. 字典查詢:

    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

  1. 集合中的元素不重複,并且無序
  2. 使用set()函數定義集合
  3. 集合添加元素函數

    3.1. set.add(value) 将value添加到集合中

    3.2. set.update(list) 将清單中的所有元素添加到集合中,添加過程中自動去重

  4. 集合删除元素函數:

    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循環可以互相轉換