# 定义添加学生信息的方法 defadd_stu(): global stu_list stu_dict = {} # 定义列表用于存储学生的信息 # 判断学生是否存在 sid = int(input("请输入添加学生的学号:")) for i in stu_list: if i['sid'] == sid: # 说明该学生已经存在 print("该学生已经存在!") break else: # 只有循环正常结束才会执行 name = input("请输入添加学生的姓名:") age = input("请输入添加学生的年龄:") tel = input("请输入添加学生的电话:") # 将用户输入的内容添加到字典中 stu_dict['sid'] = sid stu_dict['name'] = name stu_dict['age'] = age stu_dict['tel'] = tel # 将字典中的值添加到列表中 stu_list.append(stu_dict) print(stu_list)
# 修改学生信息 defmodify_stu(): global stu_list sid = int(input("请输入您要修改学生的学号:")) # 判断该学生信息是否存在 for i in stu_list: if i['sid'] == sid: new_sid = int(input("请输入新的学生学号:")) i['sid'] = new_sid new_name = input("请输入新的学生姓名:") i['name'] = new_name new_age = input("请输入新的学生年龄:") i['age'] = new_age new_tel = input("请输入新的学生电话:") i['tel'] = new_tel print("修改成功!") # cursor.execute('update stu set sid="new_sid" where sid=i["sid"]') break else: # for else 只有在循环正常结束后才会执行 print("抱歉,没有这个学生!")
# 删除学生的信息 defdel_stu(): sid = int(input("请输入要删除学生的学号:")) count = 0 # 判断学生的信息是否存在 for i in stu_list: if i['sid'] == sid: # 执行删除(del是按照元素下标进行删除的,remove是按照元素值进行删除的 del stu_list[count] print("删除成功!") break count += 1 else: # 当循环正常结束时执行else中的语句 print("没有这个学生!")
# 所有学生的信息 defshow_all(): print("学号\t姓名\t年龄\t电话\t") for i in stu_list: print(f"{i['sid']}\t\t{i['name']}\t{i['age']}\t{i['tel']}\t")
# 查询学生信息 defsearch_stu(): sid = int(input("请输入要查询学生的学号: ")) for i in stu_list: if i.get("sid") == sid: print("学号\t姓名\t年龄\t电话\t") print(f"{i['sid']}\t\t{i['name']}\t{i['age']}\t{i['tel']}\t") break else: print("没有查询到该学生的信息!")
# 读取数据函数 defread(): global stu_list # 定义空字典 cursor.execute('select sid,name,age,tel from test.stu;') data = cursor.fetchall() # 将从数据库中获取的数据写入到列表中 for i in data: # 这个字典,我开始放在了for循环上面,但实际上是错误的 """ 局部变量和全局变量的区别,for循环中定义,定义三次,每次的地址都不一样 如果放在外边,只有一个地址,内容发生变化,之前存储的内容也会变(尝试解释一通 """ stu_dict = {} stu_dict['sid'] = i[0] stu_dict['name'] = i[1] stu_dict['age'] = i[2] stu_dict['tel'] = i[3] stu_list.append(stu_dict) print(type(stu_list)) print(stu_list)
# 写入数据函数 defwrite(): global stu_list # 将列表中的数据写入到数据库中(首先清空数据库 cursor.execute("truncate table test.stu;") # 提交删除操作 conn.commit() for i in stu_list: print(i) # i是字典,字典的values为值 i["sid"],i["name"],i["age"],i["tel"] sid = i["sid"] name = i["name"] age = i["age"] tel = i["tel"] cursor.execute(f"insert into test.stu values ('{sid}','{name}',{age},'{tel}');") conn.commit() cursor.close()
# 定义添加学生信息的方法 defadd_stu(): global stu_list stu_dict = {} # 定义列表用于存储学生的信息 # 判断学生是否存在 sid = int(input("请输入添加学生的学号:")) for i in stu_list: if i['sid'] == sid: # 说明该学生已经存在 print("该学生已经存在!") break else: # 只有循环正常结束才会执行 name = input("请输入添加学生的姓名:") age = input("请输入添加学生的年龄:") tel = input("请输入添加学生的电话:") # 将用户输入的内容添加到字典中 stu_dict['sid'] = sid stu_dict['name'] = name stu_dict['age'] = age stu_dict['tel'] = tel # 将字典中的值添加到列表中 stu_list.append(stu_dict) print(stu_list)
# 修改学生信息 defmodify_stu(): global stu_list sid = int(input("请输入您要修改学生的学号:")) # 判断该学生信息是否存在 for i in stu_list: if i['sid'] == sid: new_sid = int(input("请输入新的学生学号:")) i['sid'] = new_sid new_name = input("请输入新的学生姓名:") i['name'] = new_name new_age = input("请输入新的学生年龄:") i['age'] = new_age new_tel = input("请输入新的学生电话:") i['tel'] = new_tel print("修改成功!") # cursor.execute('update stu set sid="new_sid" where sid=i["sid"]') break else: # for else 只有在循环正常结束后才会执行 print("抱歉,没有这个学生!")
# 删除学生的信息 defdel_stu(): sid = int(input("请输入要删除学生的学号:")) count = 0 # 判断学生的信息是否存在 for i in stu_list: if i['sid'] == sid: # 执行删除(del是按照元素下标进行删除的,remove是按照元素值进行删除的 del stu_list[count] print("删除成功!") break count += 1 else: # 当循环正常结束时执行else中的语句 print("没有这个学生!")
# 所有学生的信息 defshow_all(): print("学号\t姓名\t年龄\t电话\t") for i in stu_list: print(f"{i['sid']}\t\t{i['name']}\t{i['age']}\t{i['tel']}\t")
# 查询学生信息 defsearch_stu(): sid = int(input("请输入要查询学生的学号: ")) for i in stu_list: if i.get("sid") == sid: print("学号\t姓名\t年龄\t电话\t") print(f"{i['sid']}\t\t{i['name']}\t{i['age']}\t{i['tel']}\t") break else: print("没有查询到该学生的信息!")
# 读取数据函数 defread(): global stu_list withopen("student.txt", "r", encoding="utf8") as f: data = f.readlines() # str类型 1,小威,23,17627763251 for i in data: # <class 'list'>: ['1,小威,23,17627763251\n', '2,小华,23,17627763251'] stu_dict = {} # i为字符串1,小威,23,17627763251\n stu_dict["sid"] = i.split(",")[0] stu_dict["name"] = i.split(",")[1] stu_dict["age"] = i.split(",")[2] stu_dict["tel"] = i.split(",")[3][0:-1] stu_list.append(stu_dict) f.close()
# 写入数据函数 defwrite(): global stu_list # stu_list 是列表套字典 withopen("student.txt", "w", encoding="utf8") as f: for i in stu_list: f.write(f'{i["sid"]},{i["name"]},{i["age"]},{i["tel"]}\n')