你可以试试这个----------------------------------------------------------
# -*- coding:UTF-8 -*-
students=[]
def meun():
print("="*30)
print("*"*10+"学生信息管理"+"*"*10)
print("1.添加学生信息")
print("2.删除学生信息")
print("3.指定学号查询学生信息")
print("4.查询全部学生信息")
print("5.保存信息")
print("0.退出系统")
print("="*30)
def add_new_info():
global students
print("您选择了添加学生信息功能")
name = input("请输入学生姓名:")
拍此岁 stuId = input("请输入学生学号(学号不可重复):")
age = input("请输入学生年龄:")
#验证学号是否唯一
i = 0
leap = 0
for temp in students:
if temp['id'] == stuId:
leap = 1
break
else:
i = i + 1
if leap == 1:
print("输入学生学号重复,添加失败!")
break
else:
# 定义一个字典,存放单个学生信息
stuInfo = {}
stuInfo['name'] = name
stuInfo['id'] = stuId
stuInfo['age'] = age
# 单个学生信息放入列表
students.append(stuInfo)
print("添加成功!")
def del_info():
global students
print("您选择了删除学生功能")
delId=input("请输入要删除的学生学号:")
#i记录要删除的下标,leap为标志位,如果找到leap=1,否则为0
i = 0
leap = 0
for temp in students:
if temp['id'] == delId:
leap = 1
break
else:
i=i+1
if leap == 0:
print("没有此学生学号,删除失败!")
else:
del students[i]
print("删除成功!")
def search_info():
global students
searchID=input("请输入你要查询学生的学号:")
扒胡 #验证是否有此学号
i = 0
leap = 0
for temp in students:
if temp['id'] == searchID:
leap = 1
break
else:
i = i + 1
if leap == 0:
print("没有此学生学号,查询失败!")
else:
print("找到此学生,信息如下:")
print("学号:%s\n姓名袭睁:%s\n年龄:%s\n"%(temp['id'],temp['name'],temp['age']))
def print_all_info():
print("序号\t\t学号\t\t姓名\t\t年龄")
for temp in students:
print("sno:%s,stuName:%s,stuAge:%s" %(temp['id'],temp['name'],temp['age']))
print("*"*20)
def loda_data():
#加在之前存储的数据
global students
f = open("info_data.data")
content = f.read()
info_list = eval(content)
f.close()
def main():
#加在数据(先存好数据,在打开这个数据直接读取数据)
#load_data()
while True:
#1.打印工程
meun()
#2.获取用户的选择
key = input("请输入要进行的 *** 作):")
#3.根据用户的选择,作出相应的事件
if key == "1":
add_new_info()
elif key == "2":
del_info()
elif key == "3":
search_info()
elif key == "4":
print_all_info()
elif key == "5":
save_data()
elif key == "0":
exit_flag = input("你确定要退出吗?(yes or no)")
if exit_flag == "yes":
break
else:
print("输入有误,请重新输入。。。")
input("\n\n\n按回车键可以继续。。。")
continue
#程序开始
main()
摘自 网页链接-------------------------------------------------------------------
请采纳,谢谢
dict使用items()遍历字典的方法握颂(python3是items(),python2是iteritems())。
dict1 = {'a': 2, 'b': 3, 'c': 2 }def dict(value):
巧念 孝皮困 for k, v in dict1.items():
if v == value:
print("{%s: %s}" % (k, v))
dict(2)
1.传统的文字表达式:>>>
d={'name':'allen','age':21,'gender':'male'困判}>>>
d
{'age':
21,
'name':
'allen',
'gender':
'male'}123
如果你可以事先拼出整个字典,这种方式是很方便的。
2.动态分配键值:
>>>
d={}>>>
d['name']='allen'>>>
d['age']=21>>>
d['gender']='male'>>>
d
{'age':
21,
'name':
'轮启allen',
'gender':
'male'}123456
如果你需要一次动态地建立一个字典的一个字段,那么这种方式比较合适。
字典与列表不同,不能通过偏移量进行复制,只能通过键来读取或赋值,所以也可以这样为字典赋值,当然访问不存在的键会报错:
>>>
d[1]='abcd'>>>
d
{1:
'abcd',
'age':
21,
'name':
'allen',
'gender':
'male'}>>>
d[2]
traceback
(most
recent
call
last):
file
"
",
line
1,
in
d[2]
keyerror:
212345678
3.字典键值表
>>>
c
=
dict(name='allen',
age=14,
gender='male')>>>
c
{'gender':
'male',
'name':
'allen',
'age':
14}123
因为这种形式语法简单,不易出错,所以非常流行。
这种形式所需的代码比常量少,但是键必须都是字符串才行,所以下列代码会报错:
>>>
c
=
dict(name='allen',
age=14,
gender='male',
1='abcd')syntaxerror:
keyword
can't
be
an
expression12
4.字典键值元组表
>>>
e=dict([('name','allen'),('age',21),('gender','male')])>>>
e
{'age':
21,
'name':
'allen',
'gender':
'male'}123
如果你需要在程序运行时把键和值逐步建成序列,那么这种方式比较有用。
5.所有键的值都相同或者赋予初始汪桐改值:
>>>
f=dict.fromkeys(['height','weight'],'normal')>>>
f
{'weight':
'normal',
'height':
'normal'}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)