劉秀麗
(山東華宇工學(xué)院,山東 德州 253034)
隨著計算機(jī)的普及與智能設(shè)備的發(fā)展,各行各業(yè)離不開程序開發(fā)。Python憑借其開源、免費(fèi)、語法簡捷、易于閱讀等優(yōu)點(diǎn),受到人工智能、網(wǎng)絡(luò)爬蟲、Web開發(fā)、機(jī)器學(xué)習(xí)、大數(shù)據(jù)與云計算等應(yīng)用領(lǐng)域開發(fā)人員的青睞。而列表是Python提供的重要的復(fù)雜數(shù)據(jù)類型,它可以存儲任意類型的數(shù)據(jù),開發(fā)人員可以對列表中的元素進(jìn)行添加、修改、刪除等操作。
假設(shè)一個班有50名學(xué)生,如果要存放所有學(xué)生的姓名,那么需要定義50個變量,每個變量存放一個學(xué)生的姓名。但是,如果有一千個甚至更多的學(xué)生,那怎么辦呢?
Python提供的列表(list)可以很好地解決這個問題。列表是一個可變的數(shù)據(jù)結(jié)構(gòu),它沒有長度限制,可以存放任意類型的數(shù)據(jù),如整型、浮點(diǎn)型、布爾型、字符串、序列、對象等。列表中的長度和元素都可變,開發(fā)人員可以靈活地對列表中的數(shù)據(jù)進(jìn)行各種操作,包括添加、刪除、修改元素。
Python創(chuàng)建列表的方式非常簡單,既可以使用中括號[]創(chuàng)建,也可以使用Python提供的內(nèi)置list()函數(shù)快速創(chuàng)建。
1.2.1 使用賦值運(yùn)算符創(chuàng)建列表
基本語法格式:列表名=[元素1,元素2,元素3……]#,可以再加列表名是合法標(biāo)識符等
例如:
friend=[]#空列表
list2=[10,1.5,True, 'hello']#列表中元素類型可以是任意數(shù)據(jù)類型
1.2.2 使用list()函數(shù)創(chuàng)建列表
基本語法格式:列表名=list(參數(shù)),其中參數(shù)必須是一個可迭代類型的數(shù)據(jù),通??梢允莚ange對象、字符串、元組或者其他可迭代類型的數(shù)據(jù)。
例如:創(chuàng)建一個10以內(nèi)所有偶數(shù)的列表,可以使用下面的代碼:
list3=list(range(0,11,2))或者list3=list(range(11,2))
1.3.1 print()函數(shù)
基本語法格式:print(列表名)
例如:輸出已經(jīng)存在的friend列表中的所有元素值。
friend=['Tom','Lucy','Bob']
print(friend)
使用IDLE環(huán)境運(yùn)行結(jié)果:['Tom', 'Lucy', 'Bob']
1.3.2 通過索引號訪問
基本語法格式:列表名[索引]
索引表示元素值在列表的位置,可以是正數(shù),也可以是負(fù)數(shù)。如表1所示。
表1 索引
例如:輸出已經(jīng)存在的friend列表中的最后一個元素值(兩種方法)。
使用IDLE環(huán)境運(yùn)行結(jié)果:
Bob
Bob
1.3.3 通過切片訪問
基本語法格式:列表名[數(shù)字1: 數(shù)字2: 數(shù)字3]
表示從數(shù)字1開始,以數(shù)字3為間隔,截取從數(shù)字1到數(shù)字2之間(不包括數(shù)字2)的數(shù)據(jù)項,結(jié)果仍然是列表。其中3個數(shù)字均可以省略不寫,但第一個冒號不可以省略。當(dāng)省略數(shù)字1時,系統(tǒng)默認(rèn)為0,當(dāng)省略數(shù)字2時,系統(tǒng)默認(rèn)為(為數(shù)據(jù)項個數(shù)),省略數(shù)字3時,系統(tǒng)默認(rèn)為1。
例如:
friend=['Tom','Lucy','Bob','Kate','Lily','Mary']
print(friend[0:5:2])
print(friend[1:3])
print(friend[:3])
print(friend[2:])
print(friend[:])
使用IDLE環(huán)境運(yùn)行結(jié)果:
['Tom', 'Bob', 'Lily']
['Lucy', 'Bob']
['Tom', 'Lucy', 'Bob']
['Bob', 'Kate', 'Lily', 'Mary']
['Tom', 'Lucy', 'Bob', 'Kate', 'Lily', 'Mary']
1.4.1 使用for循環(huán)遍歷列表元素值
基本語法格式:
for item in listname:
#print(item)
其中item是列表元素的值,listname是列表名。
例如:輸出已經(jīng)存在的friend列表中的姓名。
friend=['Tom','Lucy','Bob','Kate','Lily','Mary']
for i in friend:
print(i,end=' ')
使用IDLE環(huán)境運(yùn)行結(jié)果:
Tom Lucy Bob Kate Lily Mary
1.4.2 使用for循環(huán)和enumerate()函數(shù)遍歷列表的索引和元素值
基本語法格式:
for index,item in enumerate(listname):
#print(index,item)
其中index是列表的索引,item是列表元素的值,listname是列表名。
例如:輸出已經(jīng)存在的friend列表中的姓名。
friend=['Tom','Lucy','Bob','Kate','Lily','Mary']for i,j in enumerate(friend):
print(i,j)
使用IDLE環(huán)境運(yùn)行結(jié)果:
0 Tom
1 Lucy
2 Bob
3 Kate
4 Lily
5 Mary
1.5.1 append()方法
append()方法用于在現(xiàn)有列表末尾添加新的元素。
基本語法格式:列表名.append(元素值)
例如:向已經(jīng)存在的friend列表中添加一個新名字,如Tim。
friend=['Tom','Lucy','Bob']
friend.append('Tim')
print(friend)
使用IDLE環(huán)境運(yùn)行結(jié)果:['Tom', 'Lucy', 'Bob', 'Tim']
注意:append()方法每次只能在列表末尾添加一個元素,如果需要添加多個元素,可以多次使用append()方法?;蛘邔⑦@多個元素放在另一個列表中,使用extend()方法。
1.5.2 extend()方法
extend()方法用于在現(xiàn)有列表末尾添加另一個列表。
基本語法格式:列表1.extend(列表2)
例如:向已經(jīng)存在的friend列表中添加另一個列表,如list_num=[1,2,3]。
friend=['Tom','Lucy','Bob']
list_num=[1,2,3]
friend.extend(list_num)
print(friend)
使用IDLE環(huán)境運(yùn)行結(jié)果:['Tom', 'Lucy', 'Bob', 1, 2, 3]
1.5.3 insert()方法
insert()方法可以將新元素插入到列表指定的位置。
基本語法格式:列表名.insert(索引,元素值)
例如:向已經(jīng)存在的friend列表的第2個元素之后插入一個新名字,如Tim。
friend=['Tom','Lucy','Bob']
friend.insert(2,'Tim')
print(friend)
使用IDLE環(huán)境運(yùn)行結(jié)果:['Tom', 'Lucy', 'Tim', 'Bob']
1.6.1 del語句
使用del語句刪除指定列表中指定的元素值。
基本語法格式:del 列表名[索引]
例如:刪除已經(jīng)存在的friend列表中第一個元素的值。
使用IDLE環(huán)境運(yùn)行結(jié)果:['Lucy', 'Bob']
1.6.2 remove()方法
remove()方法刪除列表中指定的元素值。若列表中有多個匹配的元素值,則只刪除匹配到的第一個元素值。
基本語法格式:列表名.remove(元素值)
例如:刪除已經(jīng)存在的friend列表中值為Tom的元素值。
使用IDLE環(huán)境運(yùn)行結(jié)果:['Lucy', 'Bob']
修改列表元素是通過指定索引獲取元素值并對該元素重新賦值。
例如:將已經(jīng)存在的friend列表的Tom元素值改為Harry。
以上代碼通過Tom找到索引為0,然后將列表中索引為0的元素重新賦值。
使用IDLE環(huán)境運(yùn)行結(jié)果:['Harry', 'Lucy', 'Bob']
in(not in)運(yùn)算符可以判斷某個元素是否在(不在)列表中,如果存在,返回True;否則返回False。
例如:查找已經(jīng)存在的friend列表中指定的姓名。
name=input("請輸入要查找的姓名:")
if name in friend:
print("查找成功")
else:
print("查找失敗")
使用IDLE環(huán)境運(yùn)行結(jié)果:
請輸入要查找的姓名:Tom
查找成功
請輸入要查找的姓名:Harry
查找失敗
基于Python編程語言設(shè)計好友管理系統(tǒng),主要實(shí)現(xiàn)以下功能:添加好友信息、刪除好友信息、修改好友信息、顯示好友信息、查詢好友信息和退出。為了更好控制每項功能,現(xiàn)為每個功能模塊添加數(shù)字序號。如圖1所示。
圖1 好友管理系統(tǒng)初始化界面圖
好友管理系統(tǒng)中有6個功能,每個功能都對應(yīng)一個序號,用戶可根據(jù)提示“請輸入您的選項”選擇序號執(zhí)行相應(yīng)的操作,包括:
添加好友:用戶根據(jù)提示“請輸入要添加的好友:”輸入要添加好友的姓名,添加后會提示“好友添加成功”。
刪除好友:用戶根據(jù)提示“請輸入刪除好友姓名:”輸入要刪除好友的姓名,刪除成功后提示“刪除成功”,否則提示“刪除失敗”。
修改好友:用戶根據(jù)提示“請輸入要修改的好友姓名:”和“請輸入修改后的好友姓名:”分別輸入修改前和修改后的好友姓名,修改后會提示“修改成功”。
展示好友:若用戶還沒有添加過好友,提示“好友列表為空”,否則返回每個好友的姓名。
查詢好友:用戶根據(jù)提示“請輸入要查詢的好友姓名:”輸入要查詢的好友姓名,查詢到會提示“查詢成功”,否則提示“查詢失敗”
退出:關(guān)閉好友管理系統(tǒng)。
該系統(tǒng)需要一個對象存放可變的好友信息,結(jié)合列表是一個可變序列的特點(diǎn),故選擇列表。本系統(tǒng)中所使用的列表初始化時沒有值,可以創(chuàng)建一個空列表,即friend=[]。
該系統(tǒng)初始化界面功能比較簡單,只需要寫7行print功能,原樣輸出系統(tǒng)中要顯示的文字。具體代碼如下:
print("歡迎使用好友管理系統(tǒng)")
print("1:添加好友")
print("2:刪除好友")
print("3:修改好友")
print("4:顯示好友")
print("5:查詢好友")
print("6:退出")
然后通過輸入1~6之間的整型數(shù)字來實(shí)現(xiàn)不同模塊的功能。在程序設(shè)計過程中,為了達(dá)到運(yùn)行一次系統(tǒng)可以實(shí)現(xiàn)驗(yàn)證所有情況的效果,于是可以采用循環(huán)結(jié)構(gòu)來實(shí)現(xiàn),由于該系統(tǒng)中存在退出功能,于是可以設(shè)計循環(huán)條件為True(或者非零值),循環(huán)體設(shè)計從輸入一個整型數(shù)字開始,到程序最后。而且每次輸入的有效數(shù)值是1~6,否則提示“請嘗試輸入1~6之間的整數(shù)”,對于合法數(shù)據(jù),每個模塊根據(jù)輸入值的不同情況,來確定功能。具體代碼為:
使用IDLE環(huán)境運(yùn)行結(jié)果如圖2所示。
圖2 好友管理系統(tǒng)不同選項圖
2.3.1 添加好友
添加好友模塊主要實(shí)現(xiàn)向列表中添加一個元素的功能,因此可以使用列表的append()方法來完成。由于每個人輸入的好友信息可能會有所不同,所以添加的好友姓名可以由用戶自行輸入,添加成功后并給出“好友添加成功”的提示。此模塊對應(yīng)的代碼為:
使用IDLE環(huán)境運(yùn)行結(jié)果如圖3所示。
圖3 添加好友模塊
2.3.2 顯示好友
顯示好友模塊主要實(shí)現(xiàn)將當(dāng)前列表中的好友信息全部遍歷一次且每位好友單獨(dú)顯示一行的功能。此模塊對應(yīng)的代碼為:
使用IDLE環(huán)境運(yùn)行結(jié)果如圖4所示。
圖4 顯示好友模塊
2.3.3 刪除好友
刪除好友模塊主要實(shí)現(xiàn)從列表中刪除一個元素的功能并且刪掉的元素不能確定索引,因此可以使用列表的remove()方法來刪除指定的值。由于每個人要刪除的好友信息可能會有所不同,所以刪除的好友姓名可以由用戶自行輸入,同時判斷該姓名是否在列表中,如果在列表中可以成功刪除后并給出“刪除成功”的提示,否則提示“刪除失敗”。此模塊對應(yīng)的代碼為:
使用IDLE環(huán)境運(yùn)行結(jié)果如圖5所示。
圖5 刪除好友模塊
2.3.4 修改好友
修改好友模塊主要實(shí)現(xiàn)將列表中已經(jīng)存在的一個元素的值修改為另一個值的操作,如果該值沒有查找到,提示“要修改的好友不存在”,否則執(zhí)行修改代碼。首先需要輸入一個存在的好友姓名,并確定此人的索引值,然后輸入一個修改后的好友姓名,最后執(zhí)行重新賦值。此模塊對應(yīng)的代碼為:
使用IDLE環(huán)境運(yùn)行結(jié)果如圖6所示。
圖6 修改好友模塊
2.3.5 查詢好友
查詢好友模塊主要實(shí)現(xiàn)根據(jù)提示“請輸入要查詢的好友:”輸入要查詢的好友姓名,如果未查詢到,給出“查詢失敗”的提示,否則輸出查到此人及該生姓名并提示“查詢成功”的功能。此模塊對應(yīng)的代碼為:
使用IDLE環(huán)境運(yùn)行結(jié)果如圖7所示。
2.3.6 退出
退出模塊主要實(shí)現(xiàn)退出好友管理系統(tǒng),不能再輸入選項測試該系統(tǒng)功能。此模塊對應(yīng)的代碼為:
else:
break
圖7 查詢好友模塊
使用IDLE環(huán)境運(yùn)行結(jié)果如圖8所示。
圖8 退出模塊
綜上所述,使用Python提供的列表功能實(shí)現(xiàn)了好友管理系統(tǒng)的基本功能,但該系統(tǒng)還存在一些不足,如功能比較單一、實(shí)時性有待提升等,還需進(jìn)一步優(yōu)化。