python 04 学生信息管理系统

  今天任务不多,做了学生信息管理系统1.0,使用字典存储学生个体信息,列表存储学生字典。注意dict定义要在循环体内,若定义成全局变量或循环体外,则旧数据会被新数据覆盖。dict属于可变类型数据,内容改变时引用不会变。dict = {},给dict赋新值(直接换内容了),字典的地址会发生改变;dict.clear(),将字典的内容清空(对内容修改),引用不变。

 1 def log2():
 2 #   info_dict = {}  # 不能定义在循环体外
 3     info_list = []
 4     num = input("请输入要录入信息的数量")
 5     num = int(num)
 6     for i in range(num):
 7         info_dict = {}   # 存储学生信息的字典要放在for循环内
 8         print("录入第%s 位信息" % (i + 1))
 9         name = input("输入姓名:")
10         id  = input("输入学号")
11         info_dict["姓名"] = name
12         info_dict["学号"] = id
13         info_list.append(info_dict)
14     print(info_list)
15     for info in info_list:
16         for k ,v in info.items():
17             print('%s = %s' % (k,v))
18 log2()


1 list2 =[]
2 for i in list2 : # 因为list2为空 所以根本无法遍历list2  (list 为空值也代表False)
3     print(i["name"]) # 这个pritn()语句无法执行

  所以,代码对list的长度进行了判断。

  学生信息管理系统1.0如下,只实现了基本功能,后期可进行迭代。

 1 #main_module
 2 """
 3  @Time: 2018/8/29 17:42
 4 """
 5 import program_moudle
 6 
 7 while True:
 8     print("欢迎使用学生信息管理系统".center(20,"*"))
 9     print("""1.添加学生
10 2.查询学生
11 3.修改学生
12 4.删除学生
13 5.显示所有学生
14 6.退出系统""")
15     print("*" * 32)
16     choice = input("选择你要使用的功能:")
17     if choice.isdigit():
18         choice = int(choice)
19         if choice == 1:
20             program_moudle.add_stu()
21         elif choice == 2:
22             program_moudle.sel_stu()
23         elif choice == 3:
24             program_moudle.cha_stu()
25         elif choice == 4:
26             program_moudle.del_stu()
27         elif choice == 5:
28             program_moudle.sho_stu()
29         elif choice == 6:
30             print("谢谢使用学生信息管理系统v1.0")
31             break
32         else:
33             print("请输入1-6数字")
34     else:
35         print("请输入1-6数字")
View Code
  1 """
  2  @Time: 2018/8/29 18:02
  3  
  4 """
  5 # program_moudle
  6 list = []
  7 def add_stu():
  8     active = True
  9     while active:
 10         signal = True
 11         dict = {}
 12         no = input("输入学号:")
 13         if len(list) >0:
 14             for i in list:
 15                 if i["学号"] == no:
 16                     print("学号已存在")
 17                     signal = False
 18         if signal:
 19             name = input("输入姓名:")
 20             sex = input("输入性别:")
 21             age = input("输入年龄:")
 22             dict["学号"] = no
 23             dict["姓名"] = name
 24             dict["性别"] = sex
 25             dict["年龄"] = age
 26             list.append(dict)
 27             print("添加成功")
 28             ask = input("是否继续录入信息?(y/n)")
 29             if ask == "y":
 30                 pass
 31             else:
 32                 active = False
 33         else:
 34             continue
 35 def sel_stu():
 36     active = True
 37     no = input("输入学生学号:")
 38     for i in list:
 39         if i["学号"] == no:
 40             print("""该同学信息如下
 41 学号:%s
 42 姓名:%s
 43 性别:%s
 44 年龄:%s""" % (i["学号"],i["姓名"],i["性别"],i["年龄"]))
 45             active = False
 46     if active:
 47         print("未查到该同学")
 48 def cha_stu():
 49     active = True
 50     active1 = True
 51     # signal = True  # 不能添加在这
 52     no = input("请输入学生学号:")
 53     if len(list) > 0:  # 若数据库内无数据,则返回无数据
 54         for i in list:
 55             if i["学号"] == no:  # 存在查询学号,则显示该学生的信息
 56                 print("""该同学信息如下
 57     学号:%s
 58     姓名:%s
 59     """ % (i["学号"],i["姓名"]))
 60                 active = False
 61                 while active1:
 62                     signal = True  # 应该在这
 63                     no1 = input("输入学号:")
 64                     for i in list:
 65                         if i["学号"] == no:  # 可以不修改学号,即学号可以按照原来学号来
 66                             pass
 67                         elif i["学号"] == no1:
 68                             print("学号已存在")
 69                             signal = False
 70                     if signal:  # 不存在重复学号 ,signal不会被置为False
 71                         name = input("输入姓名:")
 72                         sex = input("输入性别:")
 73                         age = input("输入年龄:")
 74                         i["学号"] = no
 75                         i["姓名"] = name
 76                         i["性别"] = sex
 77                         i['年龄'] = age
 78                         active1 = False  # 跳出while 循环
 79                     else:
 80                         continue  # signal 为False ,代表出现重复学号,则继续while循环
 81         if active:
 82             print("未查找到该学生的信息")  # 未找到数据 active为True
 83     else:
 84         print("无数据")
 85 def del_stu():
 86     active = True
 87     no = input("请输入学生学号:")
 88     for i in list:
 89         if i["学号"] == no:
 90             list.remove(i)
 91             active = True
 92             print("删除成功")
 93     if active:
 94         print("未查找到该学生的信息")
 95 def sho_stu():
 96     for i in list:
 97         print("""信息如下
 98 学号:%s
 99 姓名:%s
100 性别:%s
101 年龄:%s""" % (i["学号"], i["姓名"], i["性别"], i["年龄"]))
102         print("*" * 32)
View Code

 

posted @ 2018-08-29 22:49  与二月  阅读(676)  评论(0编辑  收藏  举报