基于Python语言的好友管理系统的设计
2022-10-15刘秀丽
刘秀丽
(山东华宇工学院,山东 德州 253034)
0 引 言
随着计算机的普及与智能设备的发展,各行各业离不开程序开发。Python凭借其开源、免费、语法简捷、易于阅读等优点,受到人工智能、网络爬虫、Web开发、机器学习、大数据与云计算等应用领域开发人员的青睐。而列表是Python提供的重要的复杂数据类型,它可以存储任意类型的数据,开发人员可以对列表中的元素进行添加、修改、删除等操作。
1 列表介绍
1.1 列表概述
假设一个班有50名学生,如果要存放所有学生的姓名,那么需要定义50个变量,每个变量存放一个学生的姓名。但是,如果有一千个甚至更多的学生,那怎么办呢?
Python提供的列表(list)可以很好地解决这个问题。列表是一个可变的数据结构,它没有长度限制,可以存放任意类型的数据,如整型、浮点型、布尔型、字符串、序列、对象等。列表中的长度和元素都可变,开发人员可以灵活地对列表中的数据进行各种操作,包括添加、删除、修改元素。
1.2 创建列表
Python创建列表的方式非常简单,既可以使用中括号[]创建,也可以使用Python提供的内置list()函数快速创建。
1.2.1 使用赋值运算符创建列表
基本语法格式:列表名=[元素1,元素2,元素3……]#,可以再加列表名是合法标识符等
例如:
friend=[]#空列表
list2=[10,1.5,True, 'hello']#列表中元素类型可以是任意数据类型
1.2.2 使用list()函数创建列表
基本语法格式:列表名=list(参数),其中参数必须是一个可迭代类型的数据,通常可以是range对象、字符串、元组或者其他可迭代类型的数据。
例如:创建一个10以内所有偶数的列表,可以使用下面的代码:
list3=list(range(0,11,2))或者list3=list(range(11,2))
1.3 访问列表元素
1.3.1 print()函数
基本语法格式:print(列表名)
例如:输出已经存在的friend列表中的所有元素值。
friend=['Tom','Lucy','Bob']
print(friend)
使用IDLE环境运行结果:['Tom', 'Lucy', 'Bob']
1.3.2 通过索引号访问
基本语法格式:列表名[索引]
索引表示元素值在列表的位置,可以是正数,也可以是负数。如表1所示。
表1 索引
例如:输出已经存在的friend列表中的最后一个元素值(两种方法)。
使用IDLE环境运行结果:
Bob
Bob
1.3.3 通过切片访问
基本语法格式:列表名[数字1: 数字2: 数字3]
表示从数字1开始,以数字3为间隔,截取从数字1到数字2之间(不包括数字2)的数据项,结果仍然是列表。其中3个数字均可以省略不写,但第一个冒号不可以省略。当省略数字1时,系统默认为0,当省略数字2时,系统默认为(为数据项个数),省略数字3时,系统默认为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环境运行结果:
['Tom', 'Bob', 'Lily']
['Lucy', 'Bob']
['Tom', 'Lucy', 'Bob']
['Bob', 'Kate', 'Lily', 'Mary']
['Tom', 'Lucy', 'Bob', 'Kate', 'Lily', 'Mary']
1.4 遍历列表
1.4.1 使用for循环遍历列表元素值
基本语法格式:
for item in listname:
#print(item)
其中item是列表元素的值,listname是列表名。
例如:输出已经存在的friend列表中的姓名。
friend=['Tom','Lucy','Bob','Kate','Lily','Mary']
for i in friend:
print(i,end=' ')
使用IDLE环境运行结果:
Tom Lucy Bob Kate Lily Mary
1.4.2 使用for循环和enumerate()函数遍历列表的索引和元素值
基本语法格式:
for index,item in enumerate(listname):
#print(index,item)
其中index是列表的索引,item是列表元素的值,listname是列表名。
例如:输出已经存在的friend列表中的姓名。
friend=['Tom','Lucy','Bob','Kate','Lily','Mary']for i,j in enumerate(friend):
print(i,j)
使用IDLE环境运行结果:
0 Tom
1 Lucy
2 Bob
3 Kate
4 Lily
5 Mary
1.5 添加元素
1.5.1 append()方法
append()方法用于在现有列表末尾添加新的元素。
基本语法格式:列表名.append(元素值)
例如:向已经存在的friend列表中添加一个新名字,如Tim。
friend=['Tom','Lucy','Bob']
friend.append('Tim')
print(friend)
使用IDLE环境运行结果:['Tom', 'Lucy', 'Bob', 'Tim']
注意:append()方法每次只能在列表末尾添加一个元素,如果需要添加多个元素,可以多次使用append()方法。或者将这多个元素放在另一个列表中,使用extend()方法。
1.5.2 extend()方法
extend()方法用于在现有列表末尾添加另一个列表。
基本语法格式:列表1.extend(列表2)
例如:向已经存在的friend列表中添加另一个列表,如list_num=[1,2,3]。
friend=['Tom','Lucy','Bob']
list_num=[1,2,3]
friend.extend(list_num)
print(friend)
使用IDLE环境运行结果:['Tom', 'Lucy', 'Bob', 1, 2, 3]
1.5.3 insert()方法
insert()方法可以将新元素插入到列表指定的位置。
基本语法格式:列表名.insert(索引,元素值)
例如:向已经存在的friend列表的第2个元素之后插入一个新名字,如Tim。
friend=['Tom','Lucy','Bob']
friend.insert(2,'Tim')
print(friend)
使用IDLE环境运行结果:['Tom', 'Lucy', 'Tim', 'Bob']
1.6 删除元素
1.6.1 del语句
使用del语句删除指定列表中指定的元素值。
基本语法格式:del 列表名[索引]
例如:删除已经存在的friend列表中第一个元素的值。
使用IDLE环境运行结果:['Lucy', 'Bob']
1.6.2 remove()方法
remove()方法删除列表中指定的元素值。若列表中有多个匹配的元素值,则只删除匹配到的第一个元素值。
基本语法格式:列表名.remove(元素值)
例如:删除已经存在的friend列表中值为Tom的元素值。
使用IDLE环境运行结果:['Lucy', 'Bob']
1.7 修改元素
修改列表元素是通过指定索引获取元素值并对该元素重新赋值。
例如:将已经存在的friend列表的Tom元素值改为Harry。
以上代码通过Tom找到索引为0,然后将列表中索引为0的元素重新赋值。
使用IDLE环境运行结果:['Harry', 'Lucy', 'Bob']
1.8 查找元素
in(not in)运算符可以判断某个元素是否在(不在)列表中,如果存在,返回True;否则返回False。
例如:查找已经存在的friend列表中指定的姓名。
name=input("请输入要查找的姓名:")
if name in friend:
print("查找成功")
else:
print("查找失败")
使用IDLE环境运行结果:
请输入要查找的姓名:Tom
查找成功
请输入要查找的姓名:Harry
查找失败
2 好友管理系统设计与应用
2.1 设计目标
基于Python编程语言设计好友管理系统,主要实现以下功能:添加好友信息、删除好友信息、修改好友信息、显示好友信息、查询好友信息和退出。为了更好控制每项功能,现为每个功能模块添加数字序号。如图1所示。
图1 好友管理系统初始化界面图
2.2 系统功能描述
好友管理系统中有6个功能,每个功能都对应一个序号,用户可根据提示“请输入您的选项”选择序号执行相应的操作,包括:
添加好友:用户根据提示“请输入要添加的好友:”输入要添加好友的姓名,添加后会提示“好友添加成功”。
删除好友:用户根据提示“请输入删除好友姓名:”输入要删除好友的姓名,删除成功后提示“删除成功”,否则提示“删除失败”。
修改好友:用户根据提示“请输入要修改的好友姓名:”和“请输入修改后的好友姓名:”分别输入修改前和修改后的好友姓名,修改后会提示“修改成功”。
展示好友:若用户还没有添加过好友,提示“好友列表为空”,否则返回每个好友的姓名。
查询好友:用户根据提示“请输入要查询的好友姓名:”输入要查询的好友姓名,查询到会提示“查询成功”,否则提示“查询失败”
退出:关闭好友管理系统。
2.3 系统功能设计
该系统需要一个对象存放可变的好友信息,结合列表是一个可变序列的特点,故选择列表。本系统中所使用的列表初始化时没有值,可以创建一个空列表,即friend=[]。
该系统初始化界面功能比较简单,只需要写7行print功能,原样输出系统中要显示的文字。具体代码如下:
print("欢迎使用好友管理系统")
print("1:添加好友")
print("2:删除好友")
print("3:修改好友")
print("4:显示好友")
print("5:查询好友")
print("6:退出")
然后通过输入1~6之间的整型数字来实现不同模块的功能。在程序设计过程中,为了达到运行一次系统可以实现验证所有情况的效果,于是可以采用循环结构来实现,由于该系统中存在退出功能,于是可以设计循环条件为True(或者非零值),循环体设计从输入一个整型数字开始,到程序最后。而且每次输入的有效数值是1~6,否则提示“请尝试输入1~6之间的整数”,对于合法数据,每个模块根据输入值的不同情况,来确定功能。具体代码为:
使用IDLE环境运行结果如图2所示。
图2 好友管理系统不同选项图
2.3.1 添加好友
添加好友模块主要实现向列表中添加一个元素的功能,因此可以使用列表的append()方法来完成。由于每个人输入的好友信息可能会有所不同,所以添加的好友姓名可以由用户自行输入,添加成功后并给出“好友添加成功”的提示。此模块对应的代码为:
使用IDLE环境运行结果如图3所示。
图3 添加好友模块
2.3.2 显示好友
显示好友模块主要实现将当前列表中的好友信息全部遍历一次且每位好友单独显示一行的功能。此模块对应的代码为:
使用IDLE环境运行结果如图4所示。
图4 显示好友模块
2.3.3 删除好友
删除好友模块主要实现从列表中删除一个元素的功能并且删掉的元素不能确定索引,因此可以使用列表的remove()方法来删除指定的值。由于每个人要删除的好友信息可能会有所不同,所以删除的好友姓名可以由用户自行输入,同时判断该姓名是否在列表中,如果在列表中可以成功删除后并给出“删除成功”的提示,否则提示“删除失败”。此模块对应的代码为:
使用IDLE环境运行结果如图5所示。
图5 删除好友模块
2.3.4 修改好友
修改好友模块主要实现将列表中已经存在的一个元素的值修改为另一个值的操作,如果该值没有查找到,提示“要修改的好友不存在”,否则执行修改代码。首先需要输入一个存在的好友姓名,并确定此人的索引值,然后输入一个修改后的好友姓名,最后执行重新赋值。此模块对应的代码为:
使用IDLE环境运行结果如图6所示。
图6 修改好友模块
2.3.5 查询好友
查询好友模块主要实现根据提示“请输入要查询的好友:”输入要查询的好友姓名,如果未查询到,给出“查询失败”的提示,否则输出查到此人及该生姓名并提示“查询成功”的功能。此模块对应的代码为:
使用IDLE环境运行结果如图7所示。
2.3.6 退出
退出模块主要实现退出好友管理系统,不能再输入选项测试该系统功能。此模块对应的代码为:
else:
break
图7 查询好友模块
使用IDLE环境运行结果如图8所示。
图8 退出模块
3 结 论
综上所述,使用Python提供的列表功能实现了好友管理系统的基本功能,但该系统还存在一些不足,如功能比较单一、实时性有待提升等,还需进一步优化。