鱼C论坛

 找回密码
 立即注册
12
返回列表 发新帖
楼主: 靳子轩

[已解决]看看这段代码

[复制链接]
 楼主| 发表于 2020-6-9 17:15:42 | 显示全部楼层
@Twilight6
那提取的函数该怎么写呢
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-9 20:42:47 | 显示全部楼层
靳子轩 发表于 2020-6-9 17:15
@Twilight6
那提取的函数该怎么写呢

  1. from time import sleep
  2. from random import randint


  3. data = [{"ID": 1000000001, "name": "None", "sex": "男", "address": "青海"},
  4.         {"ID": 1929489285, "name": "False", "sex": "女", "address": "computer"}]
  5. while True:
  6.     # 循环开头显示功能
  7.     print("       ****************************************")
  8.     print("          欢迎使用学生管理系统v2.0(后续有3.0)")
  9.     print("                  1.显示所有学生")
  10.     print("                  2.新建学生档案")
  11.     print("                  3.查询学生信息")
  12.     print("                  4.修改学生档案")
  13.     print("                  5.删除学生档案")
  14.     print("                  6.保存学生档案")
  15.     print("                  7.提取学生档案")
  16.     print("                  0.退出")
  17.     print("       ****************************************")
  18.     print()


  19.     def print_all():
  20.         for student in data:
  21.             print(student)
  22.             pass
  23.         pass


  24.     def someThing_put_in():
  25.         ID = randint(1000000000, 9999999999)
  26.         try:
  27.             if ID in data:
  28.                 ID = randint(1000000000, 9999999999)
  29.         except:
  30.             print("调试错误!")
  31.         someName = input("输入姓名:")
  32.         someSex = input("输入性别:")
  33.         someAddress = input("输入地址:")
  34.         student = {"ID": ID, "name": someName, "sex": someSex, "address": someAddress}
  35.         data.append(student)


  36.     def find_student():
  37.         print("为了确保您是管理员,请输入学生全名(非小名)")
  38.         somename = input()
  39.         try:
  40.             for i in data:
  41.                 if i["name"] == somename:
  42.                     print(i)
  43.                     pass
  44.                 pass
  45.             pass
  46.         except:
  47.             print("有错误")


  48.     def write_student():
  49.         someBody = input("请输入学生全名(非小名):")
  50.         for j in data:
  51.             if j["name"] == someBody:
  52.                 TA_new_name = input("请输入新名字:")
  53.                 TA_new_ID = randint(1000000000, 9999999999)
  54.                 if TA_new_ID in data:
  55.                     TA_new_ID = randint(1000000000, 9999999999)
  56.                 else:
  57.                     TA_new_sex = input("输入性别:")
  58.                     TA_new_address = input("输入地址:")
  59.                     NEW_student = {"ID": TA_new_ID, "name": TA_new_name, "sex": TA_new_sex, "address": TA_new_address}
  60.                     data.append(NEW_student)
  61.                     LAST_name = input("输入原先的名字:")
  62.                     for k in data:
  63.                         if k["name"] == LAST_name:
  64.                             need_del = k
  65.                     data.remove(need_del)


  66.     def del_student():
  67.         someGuy = input("请输入学生全名(非小名):")
  68.         for find in data:
  69.             if find["name"] == someGuy:
  70.                 print()
  71.                 sleep(1)
  72.                 print("Find it!")
  73.                 data.remove(find)


  74.     def save():
  75.         if data!= []:
  76.             with open('data.txt','w',encoding='utf-8') as f:
  77.                 f.write('{:^10}{:^10}{:^10}{:^10}\n\n'.format('ID','Name','Sex','Address'))
  78.                 for i in data:
  79.                     f.write('{:^10}{:^10}{:^10}{:^10}\n\n'.format(i['ID'],i['name'],i['sex'],i['address']))
  80.             print('保存数据成功!')
  81.         else:
  82.             print('你的档案库为空!')

  83.     def extract():
  84.         global data
  85.         try:
  86.             with open('data.txt', encoding='utf-8') as f:
  87.                 temp = []
  88.                 for i in f:
  89.                     if i[0].isdigit():
  90.                         temp.append([each for each in i.split() if each != ''])
  91.                 for i in temp:
  92.                     temp_list = {}
  93.                     temp_list['ID'] = int(i[0])
  94.                     temp_list['name'] = i[1]
  95.                     temp_list['sex'] = i[2]
  96.                     temp_list['address'] = i[3]
  97.                     if temp_list not in data:
  98.                         data.append(temp_list)
  99.             print('提取学生档案成功!')
  100.         except OSError:
  101.             print('错误:档案文件<data.txt>不存在!')

  102.     someThing = input("Enter the num:")
  103.     if someThing == "0":
  104.         break
  105.     elif someThing == "1":
  106.         print_all()
  107.         continue
  108.     elif someThing == "2":
  109.         print("好的")
  110.         print()
  111.         sleep(1)
  112.         someThing_put_in()
  113.     elif someThing == "3":
  114.         print("OK")
  115.         print()
  116.         find_student()
  117.     elif someThing == "4":
  118.         print("OK")
  119.         sleep(1)
  120.         write_student()
  121.     elif someThing == "5":
  122.         print("OK")
  123.         print()
  124.         del_student()
  125.     elif someThing == "6":
  126.         save()
  127.     elif someThing == "7":
  128.         extract()
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-9 20:51:52 | 显示全部楼层
学习了,刚刚网不好
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-9 20:57:04 | 显示全部楼层

这样让我感觉前面的data定义有些多余,能不能删掉?
@Twilight6
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-9 20:58:15 | 显示全部楼层
靳子轩 发表于 2020-6-9 20:57
这样让我感觉前面的data定义有些多余,能不能删掉?
@Twilight6

你自己改动吧~能正常运行都行,我去忙啦
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-6-21 14:09

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表