终于学完了字典,挑战写写小小项目
简介:
- 用户进入系统有5个选项,分别为:借书,还书,查询(作者),查看所有书籍,退出操作来供用户操作
- 主要是简单的while循环,if判断来组成建议的管理系统
难点:字典和列表嵌套运用
下面附上代码:
初始化图书库
lib=[{'书名':'西游记','作者':'吴承恩','价格':99,'剩余':100,'已借阅':0}, {'书名':'红楼梦','作者':'曹雪芹','价格':88,'剩余':121,'已借阅':0}, {'书名':'三国演义','作者':'罗贯中','价格':60,'剩余':45,'已借阅':0}, {'书名':'水浒传','作者':'施耐庵','价格':100,'剩余':34,'已借阅':0}]#图书库存
定义一些全局变量
a,b,c,d,e,f=0,0,0,0,0,0#下面代码分别解释 MyBook=dict()#创建一个自己的借书篮子 flag=True#逻辑为真
输入操作指令
print("1.借书\n2.还书\n3.查询(作者)\n4.查看所有书籍\n5.退出操作") a = int(input('请输入你的操作:')) if a!=1 and a!=2 and a!=3 and a!=4 and a!=5:#判断输入的数是否符合操作序号 print('输入错误,请重新输入\n') while a!=1 and a!=2 and a!=3 and a!=4 and a!=5:#直到输入正确方可跳出循环 print("请输入你的操作:\n1.借书\n2.还书\n3.查询(作者)\n4.查看所有书籍\n5.退出操作:") a = int(input('请输入你的操作:'))
在a=1的情况下执行下面操作
if a==1: print("\t")#空一行 b=input('请输入要借的书籍:') if b==lib[0]['书名'] or b==lib[1]['书名'] or b==lib[2]['书名'] or b==lib[3]['书名']:#判断输入是否规范 c=int(input('是否借阅?是按1,否按2,则退出系统')) if c!=1 and c!=2: print('输入错误,请重新输入') while c!=1 and c!=2:#直到输入成功为止 c = input('是否借阅?是按1,否按2:')
else: if c==1:#将借阅的书籍及其信息放入自己的篮子 d=int(input("输入借阅数量:")) MyBook['书名']=b if b==lib[0]['书名']:#添加作者,价格,并且更行原库存数量 MyBook['作者']=lib[0]['作者'] MyBook['价格']= lib[0]['价格'] lib[0]['剩余'] -= d lib[0]['已借阅']+=d elif b==lib[1]['书名']: MyBook['作者']=lib[1]['作者'] MyBook['价格'] = lib[1]['价格'] lib[1]['剩余'] -= d lib[1]['已借阅'] += d elif b==lib[2]['书名']: MyBook['作者']=lib[2]['作者'] MyBook['价格']= lib[2]['价格'] lib[2]['剩余'] -= d lib[2]['已借阅'] += d elif b==lib[3]['书名']: MyBook['作者']=lib[3]['作者'] MyBook['价格'] = lib[3]['价格'] lib[3]['剩余'] -= d lib[3]['已借阅']+= d print('所借书籍信息:',MyBook) print('恭喜你借书成功!') print("\t") else: flag=False
如果输入的不是正确的书名会让你重新输入
else: print('你输入的不符合,请重新输入') print("\t")
如果a=2,就执行指令为2的操作
elif a==2: print("\t") e=input('请输入要还的书名:') if e==lib[0]['书名'] :#更新库存的借阅 f=int(input('请输入归还数量:')) lib[0]['已借阅']-=f lib[0]['剩余']+= f if e==lib[1]['书名'] : f=int(input('请输入归还数量:')) lib[1]['已借阅']-=f lib[1]['剩余'] += f if e==lib[2]['书名'] : f=int(input('请输入归还数量:')) lib[2]['已借阅']-=f lib[2]['剩余'] += f if e==lib[3]['书名'] : f=int(input('请输入归还数量:')) lib[3]['已借阅']-=f lib[3]['剩余'] += f print('恭喜你归还成功!还有%d本未归还!'%(d-f))
a=3时的操作
if a==3: g=input('请输入作者:') if g==lib[0]['作者'] :#判断查询的作者及其书本信息 print(lib[0]) if g==lib[1]['书名'] : print(lib[1]) if g==lib[2]['书名'] : print(lib[2]) if g==lib[3]['书名'] : print(lib[3]) print('查询成功!')
a=4的操作
if a==4:#打印所有书籍信息 print('所有书籍信息:\n{0}\n{1}\n{2}\n{3}'.format(lib[0],lib[1],lib[2],lib[3])) print("\t")#空一行,看得清楚
a=5的退出操作
if a==5:#退出系统 flag=False
以上代码从 输入操作指令开始,实在一个while中实现
下面为完整代码
*注:该代码是有GUG的,有一些逻辑我还无法实现,等我学的深一点会来完善的
lib=[{'书名':'西游记','作者':'吴承恩','价格':99,'剩余':100,'已借阅':0},
{'书名':'红楼梦','作者':'曹雪芹','价格':88,'剩余':121,'已借阅':0},
{'书名':'三国演义','作者':'罗贯中','价格':60,'剩余':45,'已借阅':0},
{'书名':'水浒传','作者':'施耐庵','价格':100,'剩余':34,'已借阅':0}]#图书库存
a,b,c,d,e,f=0,0,0,0,0,0
MyBook=dict()#创建一个自己的借书篮子
flag=True
while flag:#进入系统
print("1.借书\n2.还书\n3.查询(作者)\n4.查看所有书籍\n5.退出操作")
a = int(input('请输入你的操作:'))
if a!=1 and a!=2 and a!=3 and a!=4 and a!=5:#判断输入的数是否符合操作序号
print('输入错误,请重新输入\n')
while a!=1 and a!=2 and a!=3 and a!=4 and a!=5:#直到输入正确方可跳出循环
print("请输入你的操作:\n1.借书\n2.还书\n3.查询(作者)\n4.查看所有书籍\n5.退出操作:")
a = int(input('请输入你的操作:'))
else:
if a==1:
print("\t")#空一行
b=input('请输入要借的书籍:')
if b==lib[0]['书名'] or b==lib[1]['书名'] or b==lib[2]['书名'] or b==lib[3]['书名']:#判断输入是否规范
c=int(input('是否借阅?是按1,否按2,则退出系统'))
if c!=1 and c!=2:
print('输入错误,请重新输入')
while c!=1 and c!=2:#直到输入成功为止
c = input('是否借阅?是按1,否按2:')
else:
if c==1:#将借阅的书籍及其信息放入自己的篮子
d=int(input("输入借阅数量:"))
MyBook['书名']=b
if b==lib[0]['书名']:#添加作者,价格,并且更行原库存数量
MyBook['作者']=lib[0]['作者']
MyBook['价格']= lib[0]['价格']
lib[0]['剩余'] -= d
lib[0]['已借阅']+=d
elif b==lib[1]['书名']:
MyBook['作者']=lib[1]['作者']
MyBook['价格'] = lib[1]['价格']
lib[1]['剩余'] -= d
lib[1]['已借阅'] += d
elif b==lib[2]['书名']:
MyBook['作者']=lib[2]['作者']
MyBook['价格']= lib[2]['价格']
lib[2]['剩余'] -= d
lib[2]['已借阅'] += d
elif b==lib[3]['书名']:
MyBook['作者']=lib[3]['作者']
MyBook['价格'] = lib[3]['价格']
lib[3]['剩余'] -= d
lib[3]['已借阅']+= d
print('所借书籍信息:',MyBook)
print('恭喜你借书成功!')
print("\t")
else:
flag=False
else:
print('你输入的不符合,请重新输入')
print("\t")
elif a==2:
print("\t")
e=input('请输入要还的书名:')
if e==lib[0]['书名'] :#更新库存的借阅
f=int(input('请输入归还数量:'))
lib[0]['已借阅']-=f
lib[0]['剩余']+= f
if e==lib[1]['书名'] :
f=int(input('请输入归还数量:'))
lib[1]['已借阅']-=f
lib[1]['剩余'] += f
if e==lib[2]['书名'] :
f=int(input('请输入归还数量:'))
lib[2]['已借阅']-=f
lib[2]['剩余'] += f
if e==lib[3]['书名'] :
f=int(input('请输入归还数量:'))
lib[3]['已借阅']-=f
lib[3]['剩余'] += f
print('恭喜你归还成功!还有%d本未归还!'%(d-f))
if a==3:
g=input('请输入作者:')
if g==lib[0]['作者'] :#判断查询的作者及其书本信息
print(lib[0])
if g==lib[1]['书名'] :
print(lib[1])
if g==lib[2]['书名'] :
print(lib[2])
if g==lib[3]['书名'] :
print(lib[3])
print('查询成功!')
if a==4:#打印所有书籍信息
print('所有书籍信息:\n{0}\n{1}\n{2}\n{3}'.format(lib[0],lib[1],lib[2],lib[3]))
print("\t")#空一行,看得清楚
if a==5:#退出系统
flag=False
学python真快乐,继续加油!!!