【python入门】学习字典的随笔,附使用字典做一个学生管理系统

#字典(dictionary)
#字典与list同样是可变的储存方式,以键:值的方式进行表示
#字典的存储是无序的
#字典的Value可以储存任何数据


#定义一个字典
#格式 {key:value,key:value,...}
dict = {'name':'王大麻','age':18}
print(dict)
#字典当中,key不能重复,也就是不可更改.如果发生重复的情况,那么以最后的一个结果为准
dic = {'name':'李寻欢','name':'楚留香','name':'陆小凤'}
print(dic)


#字典的访问
dictionary = {'name':'杨过','Pet':'大雕','age':45}
print(dictionary['name'])#根据key获取对应的值


#print(dictionary['Sex']) 这里的Sex在字典中并没有存在,所以这里访问会报异常


#添加字典元素
dictionary['Sex'] = True #对于不存在的键,这种方式是添加
print(dictionary['Sex'])


#修改字典元素
dictionary['name'] = '小龙女' #对于存在的键,这种方式是修改
print(dictionary['name'])


#删除
del dictionary['Pet'] #删除Pet以及对应的值
print(dictionary)
dictionary.clear()    #清空字典中所有的键值
print(dictionary)
del dictionary  #删除字典
#print(dictionary)    因为上面将字典对象直接删除了,所以这里会报未定义异常


#字典常用的函数
#len(字典)获取字典中键的个数
dict1 = {1:'3','T':False,'Hello':'World'}
length = len(dict1)
print('length:',length)


#str(字典): 将字典转换成字符串
string = str(dict1)
#print(string['Hello']) 会发生错误,因为string是一个字符串


#type(变量) 返回一个变量对应的类型
intValue = 3
print(type(intValue))# 这里因为intValue是int类型,所以这里返回的就是'int;
print(type(dict1)) #这里因为dict1是dict类型,所以这里返回的就是'dict'


#字典常用的方法:
#clear() 清楚字典中所有的元素
#copy()  返回一个字典的浅复制
# dictTemp1 = {'name':'花花'}
# dictTemp2 = dictTemp1.copy()
# print(dictTemp2)
# dictTemp2['name'] = '大牛'
# print(dictTemp1['name'])


#keys() 获取字典中所有的key
print(dict1.keys())
#values() 获取字典中所有的value
print(dict1.values())


#items() 以list的方式返回 由键和值组成的元组组成的列表
#简单来说就是,键和值组成了元组,然后很多个元组又组成了list
listWithDict = dict1.items()
print(listWithDict)


#setdefault(key,default = Node) 如果键不存在,那么创建这个键,并且设默认值
dict1.setdefault('name','变色龙')
print(dict1)


#update(字典) 将另一个字典,更新到已有的字典中
dictT = {'sex':'男'}
dict1.update(dictT)
print(dict1)


print('name' in dict1)#判断这个键是否在dict1中


------------------------------------------------------

用字典做学生管理程序

listClass=[{'name':'王红云','age':'22','subject':'软件测试','sorce':'100'}]    #定义一个序列存放字典,为了方便放了初始值
userName=passWord=''  #可以不用全局变量。
loginBool=False  #登录Bool
def Begin():   #定义一个开始的函数
global userName
global passWord
print('请输入你的用户名')
userName=input()
print('请输入你的密码')
passWord=input()
Login(userName,passWord)
def show():   #定义展示界面的方法
global userName #全局变量的使用
print('-----欢迎进入学生信息管理系统-----')
print(userName+'老师你好!')
print('1.添加学生信息          2.修改学生星系')
print('3.根据姓名查找学生      4.根据年龄查找学生')
print('5.根据科目查找学生      6.根据成绩查找学生')
print('7.根据姓名删除学生信息  8.显示全部信息')
print('请选择你需要的操作,如想退出请输入0')
num=int(input())
return num   #返回你输入的选项
def useEx(Num):   #定义一个运行方法,参数是你的选项
global loginBool 
if(Num==1):
print('请输入你想添加的学生姓名,年龄,科目,成绩/输完一项信息时请按回车键再继续输入下一项信息')
addStu(input(),input(),input(),input())
shwoAllStu()
elif(Num==2):
upateStu()
elif(Num==3):
print('请输入你想查找的学生姓名')
name=input()
selectStuOfName(name)
elif(Num==4):
print('请输入你想查找的学生年龄')
age=input()
selectStuOfAge(age)
elif(Num==5):
print('请输入你想查找的学生科目')
subject=input()
selectStuOfSubject(subject)
elif(Num==6):
print('请输入你想查找的学生成绩')
sorce=input()
selectStuOfAge(sorce)
elif(Num==7):
print('请输入你想删除的学生姓名')
name=input()
delStu(name)
shwoAllStu()
elif(Num==8):
shwoAllStu()
elif(Num==0):
loginBool=False #当输入了0即选择了退出,使登录bool值变为false,即退出循环
else:
print('你是猪吗?乱输入!')


def Login(name,psword): #登录方法 这里是一个固定的帐号密码,大家可以尝试其他方法保存帐号密码来验证
global loginBool
if(name=='why' and psword=='1111'):
print('登录成功!')
loginBool=True
return loginBool
else:
print('登录失败')
return loginBool


def isEquels(EqValue):    #判断输入的信息是否存在 
eqBool=False
global listClass
for index in listClass:
if EqValue in index.values():
eqBool= True
return eqBool 


def getValues(getValue):    #通过字典里的值来显示这个学生的所有信息
global listClass
if(isEquels(getValue)):
for index in listClass:
if getValue in index.values():
print(getValue+'的学生信息:%s'%(index))
else:
print('没有检索到此信息')
def addStu(name,age,subject,sorce):   #添加学生信息  
global listClass
dictTemp={'name':name,'age':age,'subject':subject,'sorce':sorce}
listClass.append(dictTemp)


def upateStu(): #更新学生信息
global listClass
print('请输入你想要更新学生的姓名')
contentValue=input()
if(isEquels(contentValue)):
for index in listClass:   #循环遍历序列里的字典
if contentValue in index.values():  #查找字典里是否存在输入的元素
print(index)
print('请输入你想更新哪项信息:姓名为name,年龄为age,学科为subject,分数为sorce')
updateValueIndex=input()
if(updateValueIndex=='name' or updateValueIndex=='age' or updateValueIndex=='subject' or updateValueIndex=='sorce'):
print('请输入更新后的信息')
updateValue=input()
if(updateValueIndex=='name'):
index['name']=updateValue    #判断用户需要更新的key,通过key来改变里面的value
if(updateValueIndex=='age'):
index['age']=updateValue
if(updateValueIndex=='subject'):
index['subject']=updateValue
if(updateValueIndex=='sorce'):
index['sorce']=updateValue
print(index)
return
else:
print('你输入了错误的选项信息')
return
else:
print('没有这个人的信息,输入错误')


def selectStuOfName(name):   #调用通过姓名查找学生的方法
getValues(name)
def selectStuOfAge(age):  #调用通过年龄查找学生的方法
getValues(age)
def selectStuOfSubject(subject):  #调用通过学科查找学生的方法
getValues(subject)
def selectStuOfSorce(sorce):   #调用通过成绩查找学生的方法
getValues(sorce)

def delStu(name):        #删除学生的方法
global listClass
if(isEquels(name)):
for index in listClass:
if name in index.values():
listClass.remove(index)   #这里是序列移除元素的函数
print('删除成功')
return
else:
print('没有检索到此信息')
def shwoAllStu():   #显示全部学生信息的方法
global listClass
print(listClass)



Begin()
while(loginBool==True):  #当你登录后,你要没有输入0退出,就一直在运行系统
useEx(show())


  • 1
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值