python 04 学生信息管理系统
今天任务不多,做了学生信息管理系统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、纯python编写学生信息管理系统
1.效果图 2.python code: class studentSys(object): ''' _init_(self) 被称为类的构造函数或初始化方法, self 代表类的实例,self 在定 ...
- python之学生信息管理系统
1 #!usr/bin/python 2 #encoding=utf-8 3 4 #1. 打印学生管理系统界面 5 def printStd(): 6 print ("*"*50) ...
- Python基础案例练习:制作学生信息管理系统
一.前言 学生信息管理系统,相信大家或多或少都有做过 最近看很多学生作业都是制作一个学生信息管理系统 于是,今天带大家做一个简单的学生信息管理系统 二.开发环境: 我用到的开发环境 Python 3. ...
- Python学生信息管理系统的开发
# 第一题:设计一个全局变量,来保存很多个学生信息:学生(学号, 姓名,年龄):思考要用怎样的结构来保存:# 第二题:在第一题基础上,完成:让用户输入一个新的学生信息(学号,姓名,年龄):你将其保存在 ...
- 【python免费代码】设计一个简单的学生信息管理系统
文章目录 前言 一.理解 二.部分截图展示 三.代码 四.总结 前言 设计一个简单的学生信息管理系统,实现以下功能(bug) : 录入学生信息,信息以文件方式存储 以学生学号或者学生姓名为条件查询该学 ...
- python3 简陋的学生信息管理系统
# 编写一个“学生信息管理系统”# 输入序号:1. 输入学生信息,学生信息包括:id,name,age,gender(用什么数据类型保存?)# 2. 查询:输入学生姓名和id,显示学生个人信息# 3. ...
- 基于数组或链表的学生信息管理系统(小学期C语言程序实训)
1.基于数组的学生信息管理系统 实验内容: 编写并调试程序,实现学校各专业班级学生信息的管理.定义学生信息的结构体类型,包括:学号.姓名.专业.班级.3门成绩. 实验要求: (1) main函数:以菜 ...
- 基于数据库MySQL的简易学生信息管理系统
通过这几天学习Mysql数据库,对其也有了基本的了解,为了加深印象,于是就写了一个最简易的学生信息管理系统. 一:基本要求 1.通过已知用户名和密码进行登录: 2.可以显示菜单: 3.可以随时插入学生 ...
- C++ 简单的学生信息管理系统
// // main.cpp // 2013-7-17作业1 // // Created by 丁小未 on 13-7-17. // Copyright (c) 2013年 dingxiaowei. ...
随机推荐
- python 字符串操作二 内建函数
一.查看字符串的内建函数 >>> dir(str) ['__add__', '__class__', '__contains__', '__delattr__', '__dir__' ...
- 洛谷 P1314 聪明的质监员【二分+前缀和】
真是zz, 题目很显然是二分W,然后判断,我一开始是用线段树维护当前w[i]>W的个数和v(公式就是区间满足要求的个数*满足要求的v的和),然后T成70 后来想到树状数组差分常数或许会小,于是改 ...
- P2579 [ZJOI2005]沼泽鳄鱼
传送门 话说邻接矩阵居然还能快速幂的么-- 把原图的邻接矩阵\(G\)打出来,那么\(G[u][v]\)表示一秒后\(u\)到\(v\)的方案数,\(G^2[u][v]\)表示\(2\)秒后的方案数- ...
- IT兄弟连 Java Web教程 Servlet的生命周期
JavaWeb应用的生命周期由Servlet容器来控制,而Servlet作为JavaWeb应用的最核心的组件,其生命周期也由Servlet容器来控制.Servlet的生命周期可以分为3个阶段:初始化阶 ...
- 7天学完Java基础之7/7
Object类的toString方法 类Object是类层次结构的根类 每个都使用Object作为超类 所有对象都实现这个类的方法 //这个是Object类的子类,实现了其所有方法 public cl ...
- JQuery动态添加表格,然后动态删除不成功问题
背景: 自己做了一个测试网页,想动态添加表格,然后删除,按照网上的教程写完,发现点击"删除参数"按钮没用 源码: function addtr() { var trinfo = & ...
- Web | 解决中文乱码
设定文件的编码格式在head中添加 <head> <meta http-equiv="Content-Type" content="text/html; ...
- C++11 多线程相关的头文件
C++11 新标准中引入了四个头文件来支持多线程编程,他们分别是<atomic> ,<thread>,<mutex>,<condition_variable& ...
- Jumping on Walls CodeForces - 198B
Jumping on Walls CodeForces - 198B 应该是一个隐式图的bfs,或者叫dp. 先是一个TLE的O(nklogn) #include<cstdio> #inc ...
- DFS/并查集 Codeforces Round #286 (Div. 2) B - Mr. Kitayuta's Colorful Graph
题目传送门 /* 题意:两点之间有不同颜色的线连通,问两点间单一颜色连通的路径有几条 DFS:暴力每个颜色,以u走到v为结束标志,累加条数 注意:无向图 */ #include <cstdio& ...