python基础语法(十四)

目录

  • 综合案例: 学生管理系统
    • 需求说明
    • 创建入口函数
    • 实现菜单函数
    • 实现增删查操作
      • 新增学生
      • 显示学生
      • 查找学生
      • 删除学生
    • 加入存档读档
      • 约定存档格式
      • 实现存档函数
      • 实现读档函数
    • 打包成 exe 程序发布
      • 安装 pyinstaller
      • 打包程序

感谢各位大佬对我的支持,如果我的文章对你有用,欢迎点击以下链接
个人主页
C语言
️️️C语言例题
python

综合案例: 学生管理系统

需求说明

实现一个命令行版本的学生管理系统
功能:
新增学生
显示学生
查找学生
删除学生
存档到文件

创建入口函数

使用一个全局列表 students 表示所有学生信息.

使用 menu 函数和用户交互. 这是一个自定义函数.

使用 insert , show , find , delete 这几个自定义函数完成增删查操作.

使用 sys.exit 实现程序退出

# 使用列表表示所有的学生
students = []
def main():
	"""
	程序的入口函数
	"""
print('+--------------------------+')
print('| 欢迎来带学生管理系统! |')
print('+--------------------------+')
while True:
	choice = menu()
	if choice == 0:
		sys.exit()
	if choice == 1:
		insert()
	elif choice == 2:
		show()
	elif choice == 3:
		find()
	elif choice == 4:
		delete()
	else:
		print('您的输入有误! 请重新输入!')
main()

实现菜单函数

def menu():
	"""
	显示程序菜单
	"""
	print(" 1. 新增学生信息")
	print(" 2. 显示所有同学信息")
	print(" 3. 根据名字查找学生信息")
	print(" 4. 删除学生信息")
	print(" 0. 退出程序")
	choice = input(" 请输入您的选择: ")
	return int(choice

实现增删查操作

新增学生

def insert():
	print("[新增学生] 开始!")
	studentId = input("请输入学生的学号: ")
	name = input("请输入学生的姓名: ")
	gender = input("请输入学生的性别: ")
	if gender not in ('男', '女'):
		print("性别不符合要求! 新增学生失败!")
		return
	className = input("请输入学生的班级: ")
	# 使用一个字典表示学生信息
	student = {
		'studentId': studentId,
		'name': name,
		'gender': gender,
		'className': className
}
# 把字典添加到学生列表中
global students
students.append(student)
print("[新增学生] 完毕!")

显示学生

def show():
	print("[显示学生] 开始!")
	for s in students:
	print(f"
[{s['studentId']}]\t{s['name']}\t{s['gender']}\t{s['className']}")
	print(f"[显示学生] 完毕! 共显示了 {len(students)} 条记录!")

查找学生

def find():
	print("[查找学生] 开始!")
	name = input("请输入要查找的同学姓名: ")
	count = 0
	for s in students:
		if name == s['name']:
			print(f"
[{s['studentId']}]\t{s['name']}\t{s['gender']}\t{s['className']}")
			count += 1
	print(f"[查找学生] 完毕! 共查找到 {count} 条记录!")

删除学生

def delete():
	print("[删除学生] 开始!")
	studentId = input("请输入要删除的同学学号: ")
	count = 0
	for s in students:
		if studentId == s['studentId']:
			print(f"删除 {s['name']} 同学的信息!")
			students.remove(s)
			count += 1
	print(f"[删除学生] 完毕! 共删除 {count} 条记录!")

加入存档读档

约定存档格式

约定存档文件放到 d:/record.txt 文件中.
并且以行文本的方式来保存学生信息. 格式如下:

学号\t名字\t性别\t班级
学号\t名字\t性别\t班级
学号\t名字\t性别\t班级

每个同学占一行.
每个同学的信息之间使用 \t 制表符进行分隔

实现存档函数

def save():
	"""
	存档函数
	"""
	with open('d:/record.txt', 'w') as f:
		for s in students:
			f.write(f"
{s['studentId']}\t{s['name']}\t{s['gender']}\t{s['className']}\n")
	print(f"[存档成功] 共存储了 {len(students)} 条记录!")

在 insert 和 delete 末尾, 调用 save 函数进行存档

# 执行存档
save()

实现读档函数

def load():
	"""
	读档函数
	"""
	# 如果存档文件不存在, 则跳过读档环节
	if not os.path.exists('d:/record.txt'):
		return
	# 先清空全局变量里的数据
	global students
	students = []
	with open('d:/record.txt', 'r') as f:
		for line in f:
			# 去除末尾的换行符
			line = line.strip()
			tokens = line.split('\t')
			if len(tokens) < 4:
				print(f"文件格式有误! line={line}")
				continue
			student = {
				'studentId': tokens[0],
				'name': tokens[1],
				'gender': tokens[2],
				'className': tokens[3]
			}
			students.append(student)
	print(f"[读档成功] 共读取了 {len(students)} 条记录!")

打包成 exe 程序发布

当前虽然已经实现了一个管理系统, 但是 .py 的文件只能在安装了 Python 环境的机器上运行.

为了能够更好的部署到其他主机上, 可以借助 pyinstaller 来把 Python 程序打包成 exe 程序

安装 pyinstaller

pip install pyinstaller

打包程序

-F 表示打包成单个 exe (不带动态库)

pyinstall -F 学生管理系统.py

注意: 如果提示找不到 pyinstaller 命令, 则需要重启一下 PyCharm.

你可能感兴趣的:(python,python,microsoft,数据库,开发语言,经验分享,笔记,课程设计)