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

 def log2():
# info_dict = {} # 不能定义在循环体外
info_list = []
num = input("请输入要录入信息的数量")
num = int(num)
for i in range(num):
info_dict = {} # 存储学生信息的字典要放在for循环内
print("录入第%s 位信息" % (i + 1))
name = input("输入姓名:")
id = input("输入学号")
info_dict["姓名"] = name
info_dict["学号"] = id
info_list.append(info_dict)
print(info_list)
for info in info_list:
for k ,v in info.items():
print('%s = %s' % (k,v))
log2()
 list2 =[]
for i in list2 : # 因为list2为空 所以根本无法遍历list2 (list 为空值也代表False)
print(i["name"]) # 这个pritn()语句无法执行

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

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

 #main_module
"""
@Time: 2018/8/29 17:42
"""
import program_moudle while True:
print("欢迎使用学生信息管理系统".center(20,"*"))
print("""1.添加学生
2.查询学生
3.修改学生
4.删除学生
5.显示所有学生
6.退出系统""")
print("*" * 32)
choice = input("选择你要使用的功能:")
if choice.isdigit():
choice = int(choice)
if choice == 1:
program_moudle.add_stu()
elif choice == 2:
program_moudle.sel_stu()
elif choice == 3:
program_moudle.cha_stu()
elif choice == 4:
program_moudle.del_stu()
elif choice == 5:
program_moudle.sho_stu()
elif choice == 6:
print("谢谢使用学生信息管理系统v1.0")
break
else:
print("请输入1-6数字")
else:
print("请输入1-6数字")
 """
@Time: 2018/8/29 18:02 """
# program_moudle
list = []
def add_stu():
active = True
while active:
signal = True
dict = {}
no = input("输入学号:")
if len(list) >0:
for i in list:
if i["学号"] == no:
print("学号已存在")
signal = False
if signal:
name = input("输入姓名:")
sex = input("输入性别:")
age = input("输入年龄:")
dict["学号"] = no
dict["姓名"] = name
dict["性别"] = sex
dict["年龄"] = age
list.append(dict)
print("添加成功")
ask = input("是否继续录入信息?(y/n)")
if ask == "y":
pass
else:
active = False
else:
continue
def sel_stu():
active = True
no = input("输入学生学号:")
for i in list:
if i["学号"] == no:
print("""该同学信息如下
学号:%s
姓名:%s
性别:%s
年龄:%s""" % (i["学号"],i["姓名"],i["性别"],i["年龄"]))
active = False
if active:
print("未查到该同学")
def cha_stu():
active = True
active1 = True
# signal = True # 不能添加在这
no = input("请输入学生学号:")
if len(list) > 0: # 若数据库内无数据,则返回无数据
for i in list:
if i["学号"] == no: # 存在查询学号,则显示该学生的信息
print("""该同学信息如下
学号:%s
姓名:%s
""" % (i["学号"],i["姓名"]))
active = False
while active1:
signal = True # 应该在这
no1 = input("输入学号:")
for i in list:
if i["学号"] == no: # 可以不修改学号,即学号可以按照原来学号来
pass
elif i["学号"] == no1:
print("学号已存在")
signal = False
if signal: # 不存在重复学号 ,signal不会被置为False
name = input("输入姓名:")
sex = input("输入性别:")
age = input("输入年龄:")
i["学号"] = no
i["姓名"] = name
i["性别"] = sex
i['年龄'] = age
active1 = False # 跳出while 循环
else:
continue # signal 为False ,代表出现重复学号,则继续while循环
if active:
print("未查找到该学生的信息") # 未找到数据 active为True
else:
print("无数据")
def del_stu():
active = True
no = input("请输入学生学号:")
for i in list:
if i["学号"] == no:
list.remove(i)
active = True
print("删除成功")
if active:
print("未查找到该学生的信息")
def sho_stu():
for i in list:
print("""信息如下
学号:%s
姓名:%s
性别:%s
年龄:%s""" % (i["学号"], i["姓名"], i["性别"], i["年龄"]))
print("*" * 32)

python 04 学生信息管理系统的更多相关文章

  1. 1、纯python编写学生信息管理系统

    1.效果图 2.python code: class studentSys(object): ''' _init_(self) 被称为类的构造函数或初始化方法, self 代表类的实例,self 在定 ...

  2. python之学生信息管理系统

    1 #!usr/bin/python 2 #encoding=utf-8 3 4 #1. 打印学生管理系统界面 5 def printStd(): 6 print ("*"*50) ...

  3. Python基础案例练习:制作学生信息管理系统

    一.前言 学生信息管理系统,相信大家或多或少都有做过 最近看很多学生作业都是制作一个学生信息管理系统 于是,今天带大家做一个简单的学生信息管理系统 二.开发环境: 我用到的开发环境 Python 3. ...

  4. Python学生信息管理系统的开发

    # 第一题:设计一个全局变量,来保存很多个学生信息:学生(学号, 姓名,年龄):思考要用怎样的结构来保存:# 第二题:在第一题基础上,完成:让用户输入一个新的学生信息(学号,姓名,年龄):你将其保存在 ...

  5. 【python免费代码】设计一个简单的学生信息管理系统

    文章目录 前言 一.理解 二.部分截图展示 三.代码 四.总结 前言 设计一个简单的学生信息管理系统,实现以下功能(bug) : 录入学生信息,信息以文件方式存储 以学生学号或者学生姓名为条件查询该学 ...

  6. python3 简陋的学生信息管理系统

    # 编写一个“学生信息管理系统”# 输入序号:1. 输入学生信息,学生信息包括:id,name,age,gender(用什么数据类型保存?)# 2. 查询:输入学生姓名和id,显示学生个人信息# 3. ...

  7. 基于数组或链表的学生信息管理系统(小学期C语言程序实训)

    1.基于数组的学生信息管理系统 实验内容: 编写并调试程序,实现学校各专业班级学生信息的管理.定义学生信息的结构体类型,包括:学号.姓名.专业.班级.3门成绩. 实验要求: (1) main函数:以菜 ...

  8. 基于数据库MySQL的简易学生信息管理系统

    通过这几天学习Mysql数据库,对其也有了基本的了解,为了加深印象,于是就写了一个最简易的学生信息管理系统. 一:基本要求 1.通过已知用户名和密码进行登录: 2.可以显示菜单: 3.可以随时插入学生 ...

  9. C++ 简单的学生信息管理系统

    // // main.cpp // 2013-7-17作业1 // // Created by 丁小未 on 13-7-17. // Copyright (c) 2013年 dingxiaowei. ...

随机推荐

  1. Codeforces731D 80-th Level Archeology

    考虑将两个单词变成有序,我们可以得到一个或者两个旋转次数的区间. 然后考虑将两组单词变成有序,比如[l,mid]和[mid+1,r],对于mid和mid+1这两个单词我们可以求出使他们有序的旋转次数的 ...

  2. IT兄弟连 JavaWeb教程 经典面试题3

    1.简述什么是重定向? 服务器向浏览器发送—个302状态码及一个Location消息头(该消息头的值是一个地址,称之为重定向地址),浏览器收到后会立即向重定向地址发出请求. 2.简述什么是转发?怎么实 ...

  3. Springboot 配置 application.yml 连接MySQL数据库

    1.在pom.xml的<dependencies></dependencies>标签中中加入以下依赖 <dependency> <groupId>org ...

  4. (DP)51NOD 1007正整数分组

    将一堆正整数分为2组,要求2组的和相差最小. 例如:1 2 3 4 5,将1 2 4分为1组,3 5分为1组,两组和相差1,是所有方案中相差最少的.   输入 第1行:一个数N,N为正整数的数量. 第 ...

  5. 51Nod 1019 逆序数 (归并排序)

    #include <iostream> #include <cstring> using namespace std; ; int a[maxn]; int res[maxn] ...

  6. win32 寄存器

    跳转指令分三类: 一.无条件跳转: JMP ;无条件跳转 二.根据CX.ECX寄存器的值跳转: JCXZ ;CX 为 0 则跳转 JECXZ;ECX 为 0 则跳转 三.根据EFLAGS寄存器的PSW ...

  7. Coloring Trees CodeForces - 711C

    Coloring Trees CodeForces - 711C 题意:有n个点,每个点有一个c值,如果为0表示它没有被染色,否则表示它被染成了c值的颜色.颜色有1到m.把第i棵树染成颜色j所需要的代 ...

  8. angularjs <input>标签获取时间显示问题

    一般的后台管理中,几乎每个管理后台都有设置新密码的功能,但是获取的时候为了好看,都有统一用一定的标签,比如input标签,ng-model来控制显示数据,但是在获取时间的时候用会显示错乱 代码为: & ...

  9. ES6学习笔记(5)----数值的扩展

    参考书<ECMAScript 6入门>http://es6.ruanyifeng.com/ 数值的扩展 1.Number对象的扩展(1)javascript的全局函数isNaN,isFin ...

  10. Java网络编程学习笔记

    Java网络编程,我们先来看下面这一张图: 由图可得:想要进行网络编程,首先是服务器端通过ServerSocket对某一个端口进行监听.通过accept来判断是否有客户端与其相连.若成功连上,则通过r ...