0


Python学生信息管理系统-简易版(Python基础)

Python学生信息管理系统-简易版

1.学生名片信息管理系统-普通版

1、添加名片
2、删除名片
3、修改名片
4、查询名片
5、退出系统
6、要求:程序运行后,除非选择退出系统,否则重复执行功能
7、运行界面
在这里插入图片描述
参考代码:

default =['张三','男','18']
card_all =[default]whileTrue:print("************************** 名片管理器 **************************")print("-------------------------- 1.添加名片 --------------------------")print("-------------------------- 2.删除名片 --------------------------")print("-------------------------- 3.修改名片 --------------------------")print("-------------------------- 4.查询名片 --------------------------")print("-------------------------- 5.查询所有 --------------------------")print("-------------------------- 6.退出系统 --------------------------")print("************************** 名片管理器 **************************")
    action =int(input("请输入对应数字进行操作:"))print("-"*30)# 分隔线if action ==1:
        name =str(input("请输入姓名:"))
        gender =str(input("请输入性别:"))
        age =str(input("请输入年龄:"))print("-"*30)# 分隔线
        name_card =[name, gender, age]
        card_all.append(name_card)print("【Information】:名片添加成功!")print("-"*30)# 分隔线elif action ==2:
        ID =str(input("请输入管理员账号:"))
        password =str(input("请输入密码:"))print("-"*30)# 分隔线if ID =="admin"or password =="123456":
            name =str(input("请输入姓名:"))
            gender =str(input("请输入性别:"))
            age =str(input("请输入年龄:"))print("-"*30)# 分隔线
            name_card =[name, gender, age]if name_card in card_all:
                card_all.remove(name_card)print("删除成功!")else:print("【ERROR】:查无此人,请重新输入!")else:print("【ERROR】:账号或密码错误,请重新输入!")elif action ==3:
        ID =str(input("请输入管理员账号:"))
        password =str(input("请输入密码:"))print("-"*30)# 分隔线if ID =="admin"and password =="123456":
            name =str(input("请输入姓名:"))
            gender =str(input("请输入性别:"))
            age =str(input("请输入年龄:"))print("-"*30)# 分隔线
            name_card =[name, gender, age]if name_card in card_all:
                card_all.remove(name_card)
                new_name =str(input("请输入修改后的姓名:"))
                new_gender =str(input("请输入修改后的性别:"))
                new_age =str(input("请输入修改后的年龄:"))print("-"*30)# 分隔线
                new_name_card =[new_name, new_gender, new_age]
                card_all.append(new_name_card)print("修改成功!")else:print("【ERROR】:查无此人,请重新输入!")else:print("【ERROR】:账号或密码错误,请重新输入!")elif action ==4:
        ID =str(input("请输入管理员账号:"))
        password =str(input("请输入管理员密码:"))print("-"*30)# 分隔线if ID =="admin"and password =="123456":
            seek =str(input("请输入名字,性别,或年龄之一:"))print("-"*40)# 分隔线
            i =-1
            k =1
            j =1while k <=len(card_all):# 可以用for循环直接找,不用这么麻烦,到下一版本修改
                k +=1
                i +=1
                card = card_all[i]if card.count(seek)==0and j <len(card_all):
                    j +=1continueelif card.count(seek)==0and j >=len(card_all):print("【ERROR】:没有找到,请重新输入!")else:print(card)else:print("【ERROR】:账号或密码错误,请重新输入!")elif action ==5:
        ID =str(input("请输入管理员账号:"))
        password =str(input("请输入密码:"))print("-"*30)# 分隔线if ID =="admin"and password =="123456":print("【INFO】:所有学生信息如下:")print(card_all)else:print("【ERROR】:账号或密码错误,请重新输入!")elif action ==6:
        sign =input("【Information】:确定退出吗?(yes/no):")if sign =="yes":print("-"*50)print("【Information】:谢谢使用,您已成功退出系统!")
            exit()# break 也可以else:continueelse:print("【ERROR】:输入有误,请重新输入!")

2.学生名片信息管理系统-字典版

将上述学生名片管理系统数据保存格式改成字典的形式
例如:
把: [[“关羽”, “40”, “男”],[“诸葛亮”, “45”, “男”]]
改成 [{“name”: “关羽”, “age”:“40”, “sex”: “男”},{“name”: “诸葛亮”, “age”:“45”, “sex”: “男”}]

参考答案:

info_list =[]# 用来存放所有学生数据,每一个学生的数据都是一个列表
username ="admin"
password ="123456"whileTrue:# 1、界面print("************************** 名片管理器 **************************")print("-------------------------- 1.添加名片 --------------------------")print("-------------------------- 2.删除名片 --------------------------")print("-------------------------- 3.修改名片 --------------------------")print("-------------------------- 4.查询名片 --------------------------")print("-------------------------- 5.查询所有 --------------------------")print("-------------------------- 6.退出系统 --------------------------")print("************************** 名片管理器 **************************")# 2、输入,接收用户的输入的数字,执行对应的操作
    command =int(input("请输入1到6之间的数字,进行对应操作:"))# 3、通过判断用户输入的数字是1,还是2,还是3... 执行对应的操作if command ==1:# 添加学生信息# 让用户输入姓名、年龄、性别
        name =input("请输入姓名:")
        age =input("请输入年龄:")
        sex =input("请输入性别:")# [name, age, sex]
        info_list.append({"name": name,"age": age,"sex": sex})print("【INFO】:添加成功!")elif command ==2:# 删除学生信息
        name =input("请输入姓名:")# 遍历info_list这个列表(要找到这个人)for i in info_list:if name in i.values():# 在这个列表中就执行删除#
                info_list.remove(i)print("【INFO】:删除成功!")break# 已经找到这个人了,后面的人就不需要在遍历else:print("【ERROR】:查无此人!")elif command ==3:# 修改学生信息
        name =input("请输入姓名:")# 遍历info_list这个列表(要找到这个人)for i in info_list:if name in i.values():# 在这个列表中就执行修改
                age =input("请输入修改后的年龄:")
                sex =input("请输入修改后的性别:")# 格式:info_list[下标] =
                info_list[info_list.index(i)]={"name": name,"age": age,"sex": sex}print("【INFO】:修改成功!")break# 已经找到这个人了,后面的人就不需要在遍历else:print("【ERROR】:查无此人!")elif command ==4:# 查询学生信息
        name =input("请输入姓名:")# 遍历info_list这个列表(要找到这个人)for i in info_list:if name in i.values():print("【INFO】:此人信息如下:%s"% i)break# 已经找到这个人了,后面的人就不需要在遍历else:print("【ERROR】:查无此人!")elif command ==5:# 查询所有学生信息
        uname =input("请输入管理员账号:")
        upwd =input("请输入管理员密码:")if uname == username and upwd == password:print("【INFO】:所有学生信息如下:")for i in info_list:for k in i.values():print(k, end="\t")print()else:print("【ERROR】:账号或者密码错误!")elif command ==6:# 退出系统# print("【INFO】:退出成功!谢谢使用!")
        sign =input("【INFO】:确定要退出吗?(yes or no):")if sign =="yes":print("【INFO】:退出成功!谢谢使用!")breakelse:continueelse:print("【ERROR】:请重新输入1到5之间的数字!")

3.学生名片信息管理系统-函数版

思路:
1.先定义全局变量
2.再定义函数
添加函数 add
查找函数 search
删除函数 remove
修改函数 alter
管理员账号密码验证函数 verify
3.完成主程序函数或界面,将所有内容整合打包
类似于:def main()

4.for  语句:
      if 条件:breakelse:# for循环自然结束的时候才会执行这里的代码!!!!# 如果通过break结束的循环,那么这里的代码是不会执行!

参考代码:

# 定义全局变量
info_list =[{"name":'张三',"gender":'男',"age":27}]
admin_id ="python"
password ="123456"defadd_info_name():# 输入姓名
    name =str(input("请输入姓名:"))return name

defadd_info_gender():# 输入性别whileTrue:
        gender =str(input("请输入性别:"))if gender in"男女":return gender
        else:print("【ERROR_1】:性别输入有误,请输入男或女!")defadd_info_age():# 输入年龄whileTrue:
        age =str(input("请输入年龄:"))if age.isdigit()isTrue:return age
        else:print("【ERROR_2】:年龄输入有误,请输入纯数字!")defsearch():# 按姓名查找
    name = add_info_name()for i in info_list:if name in i.values():print(i)returnelse:print("【ERROR_3】:查无此人,请重新输入!")defremove():# 删除函数
    name = add_info_name()for i in info_list:if name in i.values():
            info_list.remove(i)print("【INFO_1】:删除成功!")returnelse:print("【ERROR_3】:查无此人,请重新输入!")defalter():# 修改函数
    name = add_info_name()for i in info_list:if name in i.values():
            info_list[info_list.index(i)]={"name": name,"gender": add_info_gender(),"age": add_info_age()}print("【INFO_2】:修改成功!")returnelse:print("【ERROR_5】:查无此人,请重新输入!")defverify():
    ad =str(input("请输入管理员账号:"))
    pd =str(input("请输入管理员密码:"))if ad == admin_id and pd == password:returnTrueelse:print("【ERROR_6】:管理员账号或密码错误,请重新输入!")defmain():whileTrue:print("************************** 名片管理器 **************************")print("-------------------------- 1.添加名片 --------------------------")print("-------------------------- 2.删除名片 --------------------------")print("-------------------------- 3.修改名片 --------------------------")print("-------------------------- 4.查询名片 --------------------------")print("-------------------------- 5.查询所有 --------------------------")print("-------------------------- 6.退出系统 --------------------------")print("************************** 名片管理器 **************************")
        command =str(input("请输入对应数字进行操作:"))# 采用字符串形式,避免用户输入时报错print("-"*30)# 分隔线if command =="1":# 采用字符串形式,避免用户输入时报错
            dic ={"name": add_info_name(),"gender": add_info_gender(),"age": add_info_age()}
            info_list.append(dic)print("【INFO_3】:添加成功!")elif command =="2":if verify():
                remove()else:passelif command =="3":if verify():
                alter()else:passelif command =="4":if verify():
                search()else:passelif command =="5":if verify():print("【INFO_4】:所有员工信息为:")print(info_list)else:passelif command =="6":print("【INFO_5】:谢谢使用,您已成功退出系统!")
            exit()else:print("【ERROR_7】:输入有误,请重新输入相应数字进行操作!")

main()

4.学生名片信息管理系统-文件版

要求:将数据保存在txt文件中

参考代码:

# 定义全局变量import os
info_list =[]# 用来存放所有学生数据,每个学生的数据都是一个列表
filename ="info.txt"
admin_id ="python"
password ="123456"defload_info():# 每次打开程序都有对文件夹里的信息进行读取,所以要有登陆界面global info_list
    f =open(filename,"r", encoding="utf-8")
    str1 = f.read()
    info_list =eval(str1)
    f.close()defsave_info():# 添加信息后,退出程序时,需要将信息保存到文件夹
    f =open(filename,"w", encoding="utf-8")
    f.write(str(info_list))
    f.close()defadd_info_name():# 输入姓名
    name =str(input("请输入姓名:"))return name

defadd_info_gender():# 输入性别whileTrue:
        gender =str(input("请输入性别:"))if gender in"男女":return gender
        else:print("【ERROR_1】:性别输入有误,请输入男或女!")defadd_info_age():# 输入年龄whileTrue:
        age =str(input("请输入年龄:"))if age.isdigit()isTrue:return age
        else:print("【ERROR_2】:年龄输入有误,请输入纯数字!")defsearch():# 按姓名查找
    name = add_info_name()for i in info_list:if name in i.values():print(i)returnelse:print("【ERROR_3】:查无此人,请重新输入!")defremove():# 删除函数
    name = add_info_name()for i in info_list:if name in i.values():
            info_list.remove(i)print("【INFO_1】:删除成功!")returnelse:print("【ERROR_3】:查无此人,请重新输入!")defalter():# 修改函数
    name = add_info_name()for i in info_list:if name in i.values():
            info_list[info_list.index(i)]={"name": name,"gender": add_info_gender(),"age": add_info_age()}print("【INFO_2】:修改成功!")returnelse:print("【ERROR_5】:查无此人,请重新输入!")defverify():
    ad =str(input("请输入管理员账号:"))
    pd =str(input("请输入管理员密码:"))if ad == admin_id and pd == password:returnTrueelse:print("【ERROR_6】:管理员账号或密码错误,请重新输入!")defmain():if os.path.exists(filename):# 判断这个文件是否存在,存在才加载
        load_info()else:# 不存在就创建,创建后也要记得加载数据
        f =open(filename,"w")
        f.write("[]")
        f.close()
        load_info()whileTrue:print("************************** 名片管理器 **************************")print("-------------------------- 1.添加名片 --------------------------")print("-------------------------- 2.删除名片 --------------------------")print("-------------------------- 3.修改名片 --------------------------")print("-------------------------- 4.查询名片 --------------------------")print("-------------------------- 5.查询所有 --------------------------")print("-------------------------- 6.退出系统 --------------------------")print("************************** 名片管理器 **************************")
        command =str(input("请输入对应数字进行操作:"))# 采用字符串形式,避免用户输入时报错print("-"*30)# 分隔线if command =="1":# 采用字符串形式,避免用户输入时报错
            dic ={"name": add_info_name(),"gender": add_info_gender(),"age": add_info_age()}
            info_list.append(dic)print("【INFO_3】:添加成功!")elif command =="2":if verify():
                remove()else:passelif command =="3":if verify():
                alter()else:passelif command =="4":if verify():
                search()else:passelif command =="5":if verify():print("【INFO_4】:所有员工信息为:")print(info_list)else:passelif command =="6":
            sign =input("确定要退出吗?是(y)或否(n):")if sign =="y":
                save_info()# 退出时一定要记得保存信息print("【INFO_5】:谢谢使用,您已成功退出系统!")
                exit()else:continueelse:print("【ERROR_7】:输入有误,请重新输入相应数字进行操作!")

main()

5.学生名片信息管理系统-异常版

要求:每次登陆时对文件夹里的信息进行读取,如果读取不到文件则抛出异常,通过 try…except…来完成。

参考代码:

# 定义全局变量import os
info_list =[]# 用来存放所有学生数据,每个学生的数据都是一个列表
filename ="info.txt"
admin_id ="python"
password ="123456"defload_info():# 每次打开程序都有对文件夹里的信息进行读取,所以要有登陆界面global info_list
    try:
        f =open(filename,"r", encoding="utf-8")except FileNotFoundError:# 捕获到“找不到文件”这个异常# 创建文件
        f =open(filename,"w", encoding="utf-8")
        f.write("[]")
        f.close()
        f =open(filename,"r", encoding="utf-8")

    str1 = f.read()
    info_list =eval(str1)
    f.close()defsave_info():# 添加信息后,退出程序时,需要将信息保存到文件夹
    f =open(filename,"w", encoding="utf-8")
    f.write(str(info_list))
    f.close()defadd_info_name():# 输入姓名
    name =str(input("请输入姓名:"))return name

defadd_info_gender():# 输入性别whileTrue:
        gender =str(input("请输入性别:"))if gender in"男女":return gender
        else:print("【ERROR_1】:性别输入有误,请输入男或女!")defadd_info_age():# 输入年龄whileTrue:
        age =str(input("请输入年龄:"))if age.isdigit()isTrue:return age
        else:print("【ERROR_2】:年龄输入有误,请输入纯数字!")defsearch():# 按姓名查找
    name = add_info_name()for i in info_list:if name in i.values():print(i)returnelse:print("【ERROR_3】:查无此人,请重新输入!")defremove():# 删除函数
    name = add_info_name()for i in info_list:if name in i.values():
            info_list.remove(i)print("【INFO_1】:删除成功!")returnelse:print("【ERROR_3】:查无此人,请重新输入!")defalter():# 修改函数
    name = add_info_name()for i in info_list:if name in i.values():
            info_list[info_list.index(i)]={"name": name,"gender": add_info_gender(),"age": add_info_age()}print("【INFO_2】:修改成功!")returnelse:print("【ERROR_5】:查无此人,请重新输入!")defverify():
    ad =str(input("请输入管理员账号:"))
    pd =str(input("请输入管理员密码:"))if ad == admin_id and pd == password:returnTrueelse:print("【ERROR_6】:管理员账号或密码错误,请重新输入!")defmain():
    load_info()whileTrue:print("************************** 名片管理器 **************************")print("-------------------------- 1.添加名片 --------------------------")print("-------------------------- 2.删除名片 --------------------------")print("-------------------------- 3.修改名片 --------------------------")print("-------------------------- 4.查询名片 --------------------------")print("-------------------------- 5.查询所有 --------------------------")print("-------------------------- 6.退出系统 --------------------------")print("************************** 名片管理器 **************************")
        command =str(input("请输入对应数字进行操作:"))# 采用字符串形式,避免用户输入时报错print("-"*30)# 分隔线if command =="1":# 采用字符串形式,避免用户输入时报错
            dic ={"name": add_info_name(),"gender": add_info_gender(),"age": add_info_age()}
            info_list.append(dic)print("【INFO_3】:添加成功!")elif command =="2":if verify():
                remove()else:passelif command =="3":if verify():
                alter()else:passelif command =="4":if verify():
                search()else:passelif command =="5":if verify():print("【INFO_4】:所有员工信息为:")print(info_list)else:passelif command =="6":
            sign =input("确定要退出吗?是(y)或否(n):")if sign =="y":
                save_info()# 退出时一定要记得保存信息print("【INFO_5】:谢谢使用,您已成功退出系统!")
                exit()else:continueelse:print("【ERROR_7】:输入有误,请重新输入相应数字进行操作!")if __name__ =="__main__":# 只有本文件才能调用的判定
    main()# 入口函数
标签: python 字典

本文转载自: https://blog.csdn.net/Artificial_idiots/article/details/111792966
版权归原作者 若如初见kk 所有, 如有侵权,请联系我们删除。

“Python学生信息管理系统-简易版(Python基础)”的评论:

还没有评论