王者荣耀简易角色管理系统:(完整代码在文章末尾)
1.添加角色:
选择“1”操作,添加角色的名称、性别和职业,添加完一个角色之后,“添加角色”系统模块就执行完毕,跳出该系统。如果需要继续添加则选择“1”操作。
"添加角色"代码:
if choice =='1':
print('添加角色:')
#添加角色:角色名,性别,职业
#按q或者Q退出添加功能
name = input('角色名:')
sex = input('性别:')
job = input('职业:')
role = [name,sex,job]
roles.append(role)
print('成功添加{}到王者荣耀角色系统!\n'.format(name))
“添加角色”运行结果:
2.删除角色:
选择“2”操作,输入要删除的角色名称,如果该角色存在则被删除,若角色不存在则无法删除,删除失败。
"删除角色"代码:
elif choice =='2':
print('删除角色:')
#删除角色
if len(roles)!=0:#判断系统里面有角色才能进行删除
dele_name = input('请输入要删除的角色名:')
for role in roles:#循环遍历系统中的角色
if dele_name in role:#如果要删除的元素在系统中
roles.remove(role)#则将其删除
print('成功删除角色:“{}”'.format(dele_name))
break
else:#如果不存在,则无法删除该角色
print('王者荣耀角色系统里已无{}角色,无法删除'.format(dele_name))
”删除角色“运行结果:
删除前系统里有三个角色:
删除典韦:
3.修改角色:
选择“3”操作,输入要修改角色的名称以及修改之后的名称,若该角色存在于系统之中,则修改成功,若不存在于系统之中,则修改失败。
"修改角色"代码:
elif choice =='3':#修改角色
print('修改角色:')
if len(roles)!=0:#判断系统里面有角色才能进行修改
modify_ago = input('请输入您要修改的角色名称:')
modify_now = input('请输入您修改后的名称:')
for role in roles:#循环遍历系统中的角色
if modify_ago in role:#判断要修改的角色名是否在系统里面
role[0] = modify_now#修改姓名
print('您已将{}修改为{}'.format(modify_ago,modify_now))
else:
print('王者荣耀角色系统里无{}角色'.format(modify_ago))
”修改角色“运行结果:
修改”小乔“之前:
将”小乔“修改为”妲己“:
4.查询角色:
选择“4”操作,若查询的角色名称存在于系统之中,则将显示该角色的信息,若不存在则查询失败。
"查询角色"代码:
elif choice =='4':
print('查询角色:')
#查询某个角色
search = input('请输入要查询的角色名称:')
for role in roles:#循环遍历系统中的角色
if search in role:#判断要查询的角色名是否在系统里面
print('王者荣耀管理系统存在{}角色'.format(search))
break
else:#for...else结构
print('王者荣耀管理系统不存在{}角色'.format(search))
(这里用了for...else结构,与c语言不同的是c只能是if...else。)
此处还有一种方法可以实现:即定义一个”开关“去控制
代码如下:
search = input('请输入要查询的角色名称:')
flag = False # 添加一个标志来指示是否找到匹配的角色
for role in roles:
if search in role:
flag = True
print('王者荣耀管理系统存在{}角色'.format(search))
break
if not flag :
print('王者荣耀管理系统不存在{}角色'.format(search))
千万要注意以下写法是错的!!!:
search = input('请输入要查询的角色名称:')
for role in roles:
if search in role:
print('王者荣耀管理系统存在{}角色'.format(search))
break
else:
print('王者荣耀管理系统不存在{}角色'.format(search))
那么这么写为什么错了呢???
错误的原因:
有一个小问题在于,如果在第一次循环中没有找到匹配的角色,就会执行else
语句,输出"王者荣耀管理系统不存在{}角色"。然而,这可能是因为在后续的循环中找到了匹配的角色。你可能希望等待整个循环结束后再确定是否存在匹配的角色。因此要使用for...else,只有在整个循环结束后都没有找到匹配的角色时,才会输出"不存在{}角色"的消息。
既然谈到了for...else,那么就来了解(回顾)一下:
for...else格式:
for 变量 in 序列:
重复执行的代码
...
...
else:
循环正常结束后要执行的代码
简而言之就是:先遍历一遭,如果我们找到了,就用break跳出循环。如果没找到就执行else后面的内容。除了有for...else,while也可以和else使用,即:while..else。(详细请在www.baidu.com上search以下)
”查询角色“运行结果:
系统中所有的角色:
如果查询的角色在系统之中:
如果查询的角色不在系统之中:
5.显示所有角色:
选择“5”操作,则显示你目前系统中存在的所有角色信息。
"显示所有角色"代码:
elif choice =='5':
print('显示所有角色:')
print('{}{}{}'.format('名称'.center(10),'性别'.center(10),'职业'.center(10)))
for role in roles:#循环遍历系统中的角色
print(role[0].center(10), end='')
print(role[1].center(10), end='')
print(role[2].center(10), end='')
print()#消除前面的print语句一直在同一行输出,使其后面的输出在下一行
”显示所有角色“运行结果:
6.退出系统:
选择“6”操作,退出系统(退出时有响应时间)。
"退出系统"代码:
elif choice == '6':
print('正在退出王者荣耀角色管理系统~~~~')
print('您已退出王者荣耀角色管理系统')
time.sleep(3)#线程暂停执行,指定秒数
break
else:
print('输入错误,重新选择')
”退出系统“运行结果:
7.完整代码:
import time
roles = []
print('~~~~~~~~~~欢迎进入王者荣耀角色管理系统~~~~~~~~~~~')
while True:
print(' 1.添加角色\n 2.删除角色\n 3.修改角色\n 4.查询角色\n 5.显示所有角色\n 6.退出系统')
choice = input(' 请您选择功能:\n')
#判断选择
if choice =='1':
print('添加角色:')
#添加角色:角色名,性别,职业
#按q或者Q退出添加功能
name = input('角色名:')
sex = input('性别:')
job = input('职业:')
role = [name,sex,job]
roles.append(role)#将角色、性别、职业添加到定义的roles里面
print('成功添加{}到王者荣耀角色系统!\n'.format(name))
elif choice =='2':
print('删除角色:')
#删除角色
if len(roles)!=0:#判断系统里面有角色才能进行删除
dele_name = input('请输入要删除的角色名:')
for role in roles:#循环遍历系统中的角色
if dele_name in role:#如果要删除的元素在系统中
roles.remove(role)#则将其删除
print('成功删除角色:“{}”'.format(dele_name))
break
else:#如果不存在,则无法删除该角色
print('王者荣耀角色系统里已无{}角色,无法删除'.format(dele_name))
elif choice =='3':#修改角色
print('修改角色:')
if len(roles)!=0:#判断系统里面有角色才能进行修改
modify_ago = input('请输入您要修改的角色名称:')
modify_now = input('请输入您修改后的名称:')
for role in roles:#循环遍历系统中的角色
if modify_ago in role:#判断要修改的角色名是否在系统里面
role[0] = modify_now#修改姓名
print('您已将{}修改为{}'.format(modify_ago,modify_now))
else:
print('王者荣耀角色系统里无{}角色'.format(modify_ago))
elif choice =='4':
print('查询角色:')
#查询某个角色
search = input('请输入要查询的角色名称:')
for role in roles:#循环遍历系统中的角色
if search in role:#判断要查询的角色名是否在系统里面
print('王者荣耀管理系统存在{}角色'.format(search))
break
else:#for...else结构
print('王者荣耀管理系统不存在{}角色'.format(search))
elif choice =='5':
print('显示所有角色:')
print('{}{}{}'.format('名称'.center(10),'性别'.center(10),'职业'.center(10)))
for role in roles:#循环遍历系统中的角色
print(role[0].center(10), end='')
print(role[1].center(10), end='')
print(role[2].center(10), end='')
print()#消除前面的print语句一直在同一行输出,使其后面的输出在下一行
elif choice == '6':
print('正在退出王者荣耀角色管理系统~~~~')
print('您已退出王者荣耀角色管理系统')
time.sleep(3)#线程暂停执行,指定秒数
break
else:
print('输入错误,重新选择')
运行界面:
实质上,这就是一个Python简易版的增删改查系统,这个系统很简单,删除、修改、查询都是根据姓名来进行操作的,可以后续自己增加根据性别、职业来进行删除、修改、查询。也可以整一个”Yes“ or ”No“来让操作者选择是否要进行这些操作。