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