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. ...
随机推荐
- bzoj 4310: 跳蚤【后缀数组+st表+二分+贪心】
先求一下SA 本质不同的子串个数是\( \sum n-sa[i]+1-he[i] \),按字典序二分子串,判断的时候贪心,也就是从后往前扫字符串,如果当前子串串字典序大于二分的mid子串就切一下,然后 ...
- the little schemer 笔记(4)
第四章 numbers games 14 是原子吗 是的,数都是原子 (atom? n) 是真还是假,其中n是14 真,14 是原子 -3是数吗 是的,不过我们暂不考虑负数 3.14159是数吗 是的 ...
- 洛谷p1115 最大子段和
题目链接: 最大子段和 题目分析: 动态规划O(n)求解,设f[i]表示以i为终点的最大子段和 分两种情况: 若f[i-1]>0,则显然f[i]=f[i-1]+a[i](a[i]必须包含在内) ...
- 洛谷 P4585 [FJOI2015]火星商店问题
(勿看,仅作笔记) bzoj权限题... https://www.luogu.org/problemnew/show/P4585 对于特殊商品,直接可持久化trie处理一下即可 剩下的,想了一段时间c ...
- 贪心 Codeforces Round #304 (Div. 2) B. Soldier and Badges
题目传送门 /* 题意:问最少增加多少值使变成递增序列 贪心:排序后,每一个值改为前一个值+1,有可能a[i-1] = a[i] + 1,所以要 >= */ #include <cstdi ...
- vue中methods中的方法闭包缓存问题
vue中methods中的方法闭包缓存问题 问题背景 需求描述 在路由的导航栏中需要, 判断是否为第一次点击 需要一个标志位来记录是否点击过 现状: 这个标志位只在一个函数中用过.不希望存放全局 希望 ...
- 题解报告:hdu 2196 Computer(树形dp)
Problem Description A school bought the first computer some time ago(so this computer's id is 1). Du ...
- Linux 导出Okular 编辑的pdf批注
1.环境 ubuntu 14.04 LTS Okular Version 0.19.3 Using KDE Development Platform 4.13.3 2.方法 2.1只导出批注,不改变p ...
- C#实现较为实用的SQLhelper
第一次写博客,想不到写什么好b( ̄▽ ̄)d ,考虑的半天决定从sqlhelper开始,sqlhelper对程序员来说就像helloworld一样,很简单却又很重要,helloworld代表着程序员萌新 ...
- poj3280 Cheapest Palindrome
思路: 区间dp.添加和删除本质相同. 实现: #include <iostream> #include <cstdio> using namespace std; int n ...