今天任务不多,做了学生信息管理系统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. bzoj 4310: 跳蚤【后缀数组+st表+二分+贪心】

    先求一下SA 本质不同的子串个数是\( \sum n-sa[i]+1-he[i] \),按字典序二分子串,判断的时候贪心,也就是从后往前扫字符串,如果当前子串串字典序大于二分的mid子串就切一下,然后 ...

  2. the little schemer 笔记(4)

    第四章 numbers games 14 是原子吗 是的,数都是原子 (atom? n) 是真还是假,其中n是14 真,14 是原子 -3是数吗 是的,不过我们暂不考虑负数 3.14159是数吗 是的 ...

  3. 洛谷p1115 最大子段和

    题目链接: 最大子段和 题目分析: 动态规划O(n)求解,设f[i]表示以i为终点的最大子段和 分两种情况: 若f[i-1]>0,则显然f[i]=f[i-1]+a[i](a[i]必须包含在内) ...

  4. 洛谷 P4585 [FJOI2015]火星商店问题

    (勿看,仅作笔记) bzoj权限题... https://www.luogu.org/problemnew/show/P4585 对于特殊商品,直接可持久化trie处理一下即可 剩下的,想了一段时间c ...

  5. 贪心 Codeforces Round #304 (Div. 2) B. Soldier and Badges

    题目传送门 /* 题意:问最少增加多少值使变成递增序列 贪心:排序后,每一个值改为前一个值+1,有可能a[i-1] = a[i] + 1,所以要 >= */ #include <cstdi ...

  6. vue中methods中的方法闭包缓存问题

    vue中methods中的方法闭包缓存问题 问题背景 需求描述 在路由的导航栏中需要, 判断是否为第一次点击 需要一个标志位来记录是否点击过 现状: 这个标志位只在一个函数中用过.不希望存放全局 希望 ...

  7. 题解报告:hdu 2196 Computer(树形dp)

    Problem Description A school bought the first computer some time ago(so this computer's id is 1). Du ...

  8. Linux 导出Okular 编辑的pdf批注

    1.环境 ubuntu 14.04 LTS Okular Version 0.19.3 Using KDE Development Platform 4.13.3 2.方法 2.1只导出批注,不改变p ...

  9. C#实现较为实用的SQLhelper

    第一次写博客,想不到写什么好b( ̄▽ ̄)d ,考虑的半天决定从sqlhelper开始,sqlhelper对程序员来说就像helloworld一样,很简单却又很重要,helloworld代表着程序员萌新 ...

  10. poj3280 Cheapest Palindrome

    思路: 区间dp.添加和删除本质相同. 实现: #include <iostream> #include <cstdio> using namespace std; int n ...