Python基礎(模塊初識、字符串、列表、元組、字典的用法)
阿新 • • 發佈:2018-12-05
tde sort 開始 添加 isalnum 衢州 pca ascii碼表 單個
模塊(Module)初識
python模塊是一個python文件,以.py結尾。模塊中定義了一些變量及函數,可以在需要的時候引用模塊,調用其中的變量及函數。可以調用系統模塊或導入第三方模塊調用,也可以自行編寫模塊。
1 # 顯示系統中模塊存放的路徑 2 import sys # 引入模塊 3 print(sys.path) # 調用sys模塊中的函數
字符串(String)及其函數
字符串是python中最常用的數據類型之一,可以適用引號(‘或“)創建,以下為字符串的大部分函數。
1 name = ‘my name is {n},age is {a}‘ # 創建一個字符串變量 2print(name.count(‘m‘)) # 統計m的數量 3 print(name.capitalize()) # 將第一個字母大寫 My name is {n},age is {a} 4 print(name.center(50, ‘*‘)) # 輸出50個字符,不足用*號補齊,將字符串居中 5 print(name.encode()) # 將字符串編碼為二進制,可以使用decode()函數對二進制字符串做解碼 6 print(name.endswith(‘tt‘)) # 字符串是否以tt結尾,返回bool值 7 print(‘my\tname is‘.expandtabs(30)) #字符串中的tab為30個空格 8 print(name.format(n=‘catty‘, a=‘23‘)) # 輸出結果 my name is catty,age is 23 9 print(name.format_map({‘n‘: ‘catty‘, ‘a‘: ‘23‘})) # 輸出結果 my name is catty,age is 23 10 print(name.find(‘my‘)) # 查找,若在字符串中找不到目標字符串返回-1 11 print(‘23‘.isdigit()) # 字符串是否為整數,返回bool值 12 print(name.index(‘my‘)) #與find功能一樣,但若在字符串中找不到目標字符串則報錯 13 print(‘124‘.isalnum()) # 字符串是否由數字或字母組成,返回bool值 14 print(‘dsfdsewr‘.isalpha()) # 字符串是否由純字母組成,返回bool值 15 print(‘0x9e8f‘.isdecimal()) # 檢查字符串是否只包含十進制字符,返回bool值 16 print(‘_dfoiewfjei‘.isidentifier()) # 判斷是否是一個合法的標識符,但系統關鍵字無法判斷 17 print(‘sdjfoiA‘.islower()) # 判斷字符串是否全部為小寫字符 18 print(‘654623sdoi‘.isnumeric()) # 檢測字符串是否只由數字組成 19 print(‘ioew‘.isprintable()) # 是否可打印,linux中tty無法打印 20 print(‘‘.isspace()) # 是否是純空格 21 print(‘My Name ‘.istitle()) # 是否每個單詞首字符大寫 22 print(‘SFEGE‘.isupper()) # 是否全部為大寫字母 23 print(‘+‘.join([‘1‘, ‘2‘, ‘e‘])) # 輸出結果 1+2+e 24 print(name.ljust(50, ‘*‘)) # 將字符串在右側使用*補齊50個字符 25 print(name.rjust(50, ‘*‘)) # 將字符串在左側使用*補齊50個字符 26 print(name.lower()) # 轉為小寫 27 print(name.upper()) # 轉為大寫 28 print(‘-------------‘) 29 print(‘ \n alex\n‘.lstrip()) # 刪除字符串左側的空格及換行 30 print(‘-------------‘) 31 print(‘ \n alex\n‘.rstrip()) # 刪除字符串右側的空格及換行 32 print(‘-------------‘) 33 print(‘ \n alex\n‘.strip()) # 刪除字符串兩側的空格及換行 34 print(‘-------------‘) 35 # maketrans()與translate()兩個函數搭配使用 36 p = str.maketrans(‘abcdefg‘, ‘*%UE%@M‘) # 編碼 37 print(‘apple very good‘.translate(p)) # 翻譯 38 39 print(name.partition(‘ ‘)) # 按照參數的字符串(空格),將原始字符串切割為3部分 40 print(‘siiiioiefi‘.replace(‘i‘, ‘b‘, 5)) # 將字符串中的i替換為b,替換5次 41 print(‘sdioewawd‘.rfind(‘w‘)) # 從右側查找第一個w,返回其位置,若在字符串中找不到目標字符串返回-1 42 print(‘sdioewawd‘.rindex(‘w‘)) # 從右側查找第一個w,返回其位置,若在字符串中找不到目標字符串則報錯 43 print(‘apple very good‘.rpartition(‘ ‘)) 44 print(‘apple very good‘.rsplit(‘ ‘)) 45 print(‘ \n alex\n2483‘.splitlines()) # 按行分割 46 print(‘siiiioiefi‘.startswith(‘efo‘)) # 字符串是否以efo開頭,返回bool值 47 print(‘My Name ‘.swapcase()) # 輸出結果 mY nAME 48 print(‘apple very good‘.title()) # 輸出結果 Apple Very Good 49 print(‘apple very good‘.zfill(50)) # 左側用0填充
列表(List)及其函數
列表是python最基礎的數據結構,是一個有序的元素集合;列表中每個元素都有其索引,從0開始計數即第一個元素的索引為0;列表可以做嵌套,即列表中以子列表作為元素;列表中的元素可以做增、刪、改、查等操作,具體函數如下。
1 zj = [‘杭州市‘, ‘湖州市‘, ‘嘉興市‘, ‘衢州市‘, ‘紹興市‘, ‘臺州市‘, ‘溫州市‘, ‘舟山市‘] 2 list_t = [‘a‘, ‘b‘, ‘3‘, ‘4‘] 3 4 print(zj) # 打印整個列表 5 for i in zj: # 循環打印列表 6 print(i) 7 # cut 8 print(zj[4]) # 取list中第五個元素 9 print(zj[2:6]) # 取list中第三到第六個元素 10 print(zj[:3]) # 取list中第一到第三個元素 11 print(zj[-1]) # 取list中最後一個元素 12 print(zj[-2:]) # 取list中倒數兩個元素 13 print(zj[0:-1:2]) # 隔一個元素打印一次,從第一個元素打印至倒數第二個元素,步長為2 14 print(zj[::2]) # 隔一個元素打印一次,從第一個元素打印至最後一個元素,步長為2 15 # insert 16 zj.append(‘test‘) # 在list最後追加 17 zj.insert(2, ‘retest‘) # 在list第三位插入元素 18 # alter 19 zj[3] = ‘jinhuashi‘ # 對第四個元素進行修改 20 # delete 21 zj.remove(‘衢州市‘) # 刪除‘衢州市’這個元素 22 zj.pop() # 默認彈出最後一個元素 23 zj.pop(1) # 彈出第二個元素 24 del zj[5] # 刪除第六個元素 25 del zj # 刪除列表 26 # other 27 print(zj[zj.index(‘衢州市‘)]) # 查找‘衢州市’這個元素在列表中的索引,將這個索引位置的元素打印 28 print(zj.count(‘杭州市‘)) # 統計‘杭州市’這個元素在list中出現的次數 29 zj.reverse() # 反轉 30 zj.sort() # 排序(按ascii碼表) 31 zj.clear() # 清空list 32 zj.extend(list_t) # 將list_t與zj合並
淺談列表的淺copy和深copy
1 import copy 2 3 zj = [‘杭州市‘, ‘湖州市‘, ‘嘉興市‘, ‘衢州市‘, ‘紹興市‘, [‘越城區‘, ‘柯橋區‘], ‘臺州市‘, ‘溫州市‘, ‘舟山市‘] 4 5 # 淺copy,只copy列表的第一層,若列表中存在子列表,第一層存儲的是子列表的內存地址,故淺copy只能copy子列表的內存地址, 6 # 那麽無論是修改原列表的子列表中元素,還是修改新列表的子列表中元素,兩個list中的子列表的元素都會改變 7 zj2 = zj.copy() 8 zj[2] = ‘jiaxingshi‘ 9 zj[5][0] = ‘yuechengqu‘ 10 print(zj) 11 print(zj2) 12 # 淺copy的三種方式 13 zj1 = copy.copy(zj) 14 zj2 = zj[:] 15 zj3 = list(zj) 16 # 深copy,需要引入copy模塊,調用其中的deepcopy()函數,深copy將會copy子列表中的具體元素而不是只coyp子列表的內存地址 17 zj2 = copy.copy(zj) # 此函數等同於淺copy 18 zj3 = copy.deepcopy(zj) # 深copy,完全克隆 19 zj[2] = ‘jiaxingshi‘ 20 zj[5][0] = ‘yuechengqu‘ 21 print(zj) 22 print(zj2) 23 print(zj3)
元組(Tuple)及其函數
元組的使用方法基本與列表一樣,唯一的區別是元組中的元素不可修改(修改包括增加元素、修改元素值、刪除元素值),可將元組視為只讀列表。元組的定義即其函數如下。
1 data = (‘python‘,) 2 names = (‘catty‘, ‘test‘, ‘catty‘) # 元組 相當於只讀列表 3 print(names[0:2]) # 元組切片 4 print(names[1]) # 單個元素打印 5 tup = data + names # 雖然元組不可修改,但可以將兩個元組進行連接組合 6 print(tup) 7 print(names.count(‘catty‘)) # 統計該元素在元組中出現的次數 8 print(names.index(‘test‘)) # 返回該元素第一次出現在元組中的位置
另外,當需要創建只有一個元素的元組時,需要在元素後添加逗號,否則創建出的不是元組而是字符串,可以通過查看變量類型進行驗證。
1 data1 = (‘python‘) 2 print(type(data1)) # 輸出結果 <class ‘str‘> 3 data2 = (‘python‘,) 4 print(type(data2)) # 輸出結果 <class ‘tuple‘>
字典(Dictionary)及其函數
字典是另一種可變容器模型,且可存儲任意類型對象。字典中的元素成對存在,一個鍵(key)對應一個值(value),中間用冒號(:)連接,每對鍵值用逗號分開,最後用花括號({})括起來。字典中也可以嵌套。
1 info = { 2 ‘stu001‘: ‘張三‘, 3 ‘stu002‘: ‘李四‘, 4 ‘stu003‘: ‘王五‘ 5 } 6 7 print(info) 8 9 # select item 10 print(info[‘stu001‘]) 11 # alter item 12 info[‘stu002‘] = ‘tomcat‘ 13 # add item 14 info[‘stu004‘] = ‘nginx‘ 15 print(info) 16 # delete item 17 del info[‘stu003‘] 18 print(info) 19 info.pop(‘stu001‘) 20 print(info) 21 info.popitem() # 隨機彈出一個元素 22 print(info)
關於字典中鍵值的查找
1 info[‘stu005‘] # 若字典中不存在‘stu005‘,則程序報錯 2 print(info.get(‘stu005‘)) # 一個安全的查找元素的方式,若字典中不存在則返回none,存在則返回其對應的值 3 print(‘stu003‘ in info) # info.has_key(‘stu003‘) python2.x 判斷字典中是否存在某key值,返回bool值
關於字典的遍歷
1 for i in info: 2 print(i, info[i]) # 此種遍歷方式效率更高 3 4 for k, v in info.items(): 5 print(k, v) # 此遍歷方式會先將每對鍵值轉換為列表,再輸出打印
字典的其他操作
1 info = { 2 ‘stu001‘: ‘張三‘, 3 ‘stu002‘: ‘李四‘, 4 ‘stu003‘: ‘王五‘ 5 } 6 7 info2 = { 8 ‘stu003‘: ‘zhaoliu‘, 9 ‘sut004‘: ‘sdifoe‘, 10 ‘stu006‘: ‘quit‘ 11 } 12 13 info.update(info2) # 按照info2更新info,若找到相同key值,則將對應的info2的value值賦給info,若找不到key值則插入info 14 print(info) 15 print(info.items()) # 將字典轉為列表 16 c = dict.fromkeys([‘a‘, ‘b‘, ‘c‘], ‘test‘) 17 print(c) 18 c = dict.fromkeys([‘a‘, ‘b‘, ‘c‘], [1, {‘name‘: ‘tom‘}, 4444]) 19 print(c) 20 c[‘a‘][1][‘name‘] = ‘lily‘ # 類似淺copy機制 21 print(c)
嵌套字典的相關操作
1 info = { 2 ‘杭州‘: { 3 ‘西湖‘: [‘免費‘, ‘三潭映月‘], 4 ‘靈隱寺‘: [‘香火旺‘, ‘得道高僧‘], 5 ‘北高峰‘: [‘周末踏青好去處‘, ‘空氣好‘], 6 }, 7 ‘上海‘: { 8 ‘外灘‘: [‘人山人海‘, ‘繁華‘] 9 }, 10 ‘南京‘: { 11 ‘清涼山‘: [‘雨花石早市‘, ‘郁郁蔥蔥‘] 12 } 13 } 14 info[‘杭州‘][‘靈隱寺‘][1] = ‘收費‘ 15 info.setdefault(‘無錫‘, {‘黿頭渚‘: [‘櫻花‘, ‘太湖‘]}) # 去字典裏找這個key,若找不到則創建新值 16 info.setdefault(‘南京‘, {‘whatever‘: [1, 2]}) # 去字典裏找這個key,找到了則返回原值 17 print(info)
Python基礎(模塊初識、字符串、列表、元組、字典的用法)