赞
踩
目录
此图书管理系统偏简易版,提供大概思路,实际可以根据自己需求做更多拓展
主要从登录/注册 界面入手,进行一步一步拓展,将用户信息存入动态字典中,书籍信息存入列表中(当然,后续也可以增加更多功能,例如用户可以主动给图书馆捐赠书籍,设定积分系统来规定借的书的多少以及种类等等,如果是种类,则需要将列表换成字典),以及用户登录之后自行更改用户名和密码(本文中设定了index索引,所以更改这些信息很方便也很简单)-----可自己自行添加,比较简单,这里就不做拓展了
- # 定义变量区
- n = 0
- key = 0
- index = 0 # 判断用户是否存在的索引
- str1 = "0" # 存储用户名
- str_key = "0" # 存储密码
- users = {
- }
- book_list = ["老人与海", "红楼梦", "水浒传", "西游记",
- "三国演义", "解忧杂货铺", "哈利波特", "唐诗三百首",
- "小虎队大冒险", "查理九世", "鲁滨逊漂流记", "斯塔克工业制造"] # 书单名称
- day_time = 0 # 借书天数
- day_time1 = 0 # 用户实际使用天数
咳咳,因为是漫威迷,所以加上了这个书籍(不要在意~~)
这里必须先定义一个空字典,以备后续动态添加用户信息做准备,如果不提前设定,则会出现未定义
- print("图书管理系统--\n")
- print("请登录后再使用\n")
- key = int(input("登录-1,若无账号请注册-3,按其余任意键退出\n"))
- if key == 3:
- n += 1
- print("请输入用户名和密码\n")
- str1 = input("用户名:")
- print("\n")
- str_key = input("密码:")
- # 注意此时不从0开始,从1开始
- users[n] = {
- "user_num": n,
- "name": str1,
- "keywords": str_key
- }
- print("当前用户信息:\n")
- print(users)
- elif key == 1:
- print("请输入用户名 \n")
- str2 = input("用户名: ")
- # 判断用户是否存在
- for i, user in users.items(): # 前者接受users字典的索引,后者user接受其索引下的值
- if str2 == user["name"]:
- index = i
- print(index)
- break
- if index == 0:
- print("请先注册\n")
- str3 = input("按下任意键跳转")
- continue
- # 用户存在,输入密码
- print("欢迎尊敬的 " + str2 + " 用户")
- print("请输入密码")
- while 1:
- key1 = input("密码: ")
- if key1 == users[index]["keywords"]:
- print("登陆成功")
- break
- else:
- print("请重新输入")
这里 可以看出之前设定 n的目的是为了更加方便的自动给用户贴上标签(也就是排序),这里对字典的遍历采用item()对其变换为列表之后再遍历,相比于之间使用 for i in length(users) 在这种情况下会更为准确,for i in length(users)会出现第一个注册的信息无法访问
- # 开始访问内部界面
- while 1:
- print("1---查看书籍信息\n") # 提前创建好书籍信息
- print("2---租借书籍\n")
- print("3---归还书籍")
- print("任意键退出图书馆")
- kind_num = int(input("请选择选项: "))
- if kind_num == 1:
- print(book_list) # 打印列表
- print("是否继续操作?Yes or No")
- choice = input(" ")
- if choice == "Yes":
- print("请选择要借用的书籍:") # 进入借书界面,选择借用书籍,借用天数,并在后台实时更新剩余书籍数目
- print(book_list)
- book_name = input("请输入要借用的书籍名称")
- if book_name in book_list:
- day_time = int(input("请输入要借用的天数:"))
- print("借书成功,请按时归还")
- book_list.remove(book_name)
- print("剩余可借书籍")
- print(book_list)
- else:
- print("不存在此书")
- print("是否继续操作?Yes or No")
- choice = input(" ")
- if choice == "Yes":
- continue
- else:
- break
- else:
- break
- elif kind_num == 2:
- while 1:
- print("请选择要借用的书籍:") # 进入借书界面,选择借用书籍,借用天数,并在后台实时更新剩余书籍数目
- print(book_list)
- book_name = input("请输入要借用的书籍名称")
- if book_name in book_list:
- day_time = int(input("请输入要借用的天数:"))
- print("借书成功,请按时归还")
- book_list.remove(book_name)
- print("剩余可借书籍")
- print(book_list)
- else:
- print("图书馆暂未收藏此书籍")
- print("是否继续操作?Yes or No")
- choice = input(" ")
- if choice == "Yes":
- continue
- else:
- break
- elif kind_num == 3:
- # 进入归还界面,将书籍信息加入到列表中
- book_name = input("输入借用的书籍:")
- day_time1 = int(input("输入实际借用天数:"))
- if day_time1 <= day_time:
- book_list.append(book_name)
- else:
- print("已拉黑用户")
- del users[index] # 设定index索引的好处,因为登录之后,index并不会改变,所以可以很方便的进行操作信息,当然以后也可以根据这一点,让用户自行更改自己的用户名和密码
- print("当前用户信息: \n")
- print(users)
- else:
- # 任意键退出系统
- break
- # 图书管理系统----python综合实践
-
- # 定义变量区
- n = 0
- key = 0
- index = 0 # 判断用户是否存在的索引
- str1 = "0" # 存储用户名
- str_key = "0" # 存储密码
- users = {
- }
- book_list = ["老人与海", "红楼梦", "水浒传", "西游记",
- "三国演义", "解忧杂货铺", "哈利波特", "唐诗三百首",
- "小虎队大冒险", "查理九世", "鲁滨逊漂流记", "斯塔克工业制造"] # 书单名称
- day_time = 0 # 借书天数
- day_time1 = 0 # 用户实际使用天数
- # 实体部分区域
- while 1:
- print("图书管理系统--\n")
- print("请登录后再使用\n")
- key = int(input("登录-1,若无账号请注册-3,按其余任意键退出\n"))
- if key == 3:
- n += 1
- print("请输入用户名和密码\n")
- str1 = input("用户名:")
- print("\n")
- str_key = input("密码:")
- # 注意此时不从0开始,从1开始
- users[n] = {
- "user_num": n,
- "name": str1,
- "keywords": str_key
- }
- print("当前用户信息:\n")
- print(users)
- elif key == 1:
- print("请输入用户名 \n")
- str2 = input("用户名: ")
- # 判断用户是否存在
- for i, user in users.items(): # 前者接受users字典的索引,后者user接受其索引下的值
- if str2 == user["name"]:
- index = i
- print(index)
- break
- if index == 0:
- print("请先注册\n")
- str3 = input("按下任意键跳转")
- continue
- # 用户存在,输入密码
- print("欢迎尊敬的 " + str2 + " 用户")
- print("请输入密码")
- while 1:
- key1 = input("密码: ")
- if key1 == users[index]["keywords"]:
- print("登陆成功")
- break
- else:
- print("请重新输入")
- # 开始访问内部界面
- while 1:
- print("1---查看书籍信息\n") # 提前创建好书籍信息
- print("2---租借书籍\n")
- print("3---归还书籍")
- print("任意键退出图书馆")
- kind_num = int(input("请选择选项: "))
- if kind_num == 1:
- print(book_list) # 打印列表
- print("是否继续操作?Yes or No")
- choice = input(" ")
- if choice == "Yes":
- print("请选择要借用的书籍:") # 进入借书界面,选择借用书籍,借用天数,并在后台实时更新剩余书籍数目
- print(book_list)
- book_name = input("请输入要借用的书籍名称")
- if book_name in book_list:
- day_time = int(input("请输入要借用的天数:"))
- print("借书成功,请按时归还")
- book_list.remove(book_name)
- print("剩余可借书籍")
- print(book_list)
- else:
- print("不存在此书")
- print("是否继续操作?Yes or No")
- choice = input(" ")
- if choice == "Yes":
- continue
- else:
- break
- else:
- break
- elif kind_num == 2:
- while 1:
- print("请选择要借用的书籍:") # 进入借书界面,选择借用书籍,借用天数,并在后台实时更新剩余书籍数目
- print(book_list)
- book_name = input("请输入要借用的书籍名称")
- if book_name in book_list:
- day_time = int(input("请输入要借用的天数:"))
- print("借书成功,请按时归还")
- book_list.remove(book_name)
- print("剩余可借书籍")
- print(book_list)
- else:
- print("图书馆暂未收藏此书籍")
- print("是否继续操作?Yes or No")
- choice = input(" ")
- if choice == "Yes":
- continue
- else:
- break
- elif kind_num == 3:
- # 进入归还界面,将书籍信息加入到列表中
- book_name = input("输入借用的书籍:")
- day_time1 = int(input("输入实际借用天数:"))
- if day_time1 <= day_time:
- book_list.append(book_name)
- else:
- print("已拉黑用户")
- del users[index]
- print("当前用户信息: \n")
- print(users)
- else:
- # 任意键退出系统
- break
- else:
- break
-
首先安装pyinstaller
pip install -m pyinstaller
然后直接输出就行了(前提是当前代码文件需要在当前项目中,即保障路径一致性)
pyinstaller -F 文件名
网传是pyinstaller -F -w 文件名,但是因为本文中涉及到 input 的命令行窗口 ,所以需要去掉-w,否则会报错--- input(): lost sys.stdin
代码有任何问题请在评论区留言
制作不易,请多多点赞支持呐!
转载请说明出处
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。