python项目主界面_python项目案例
#_*_ coding:utf-8 _*_
import re #导入正则表达式模块
import os #导入操作系统模块
filename= "students.txt" #定义保存学生信息的文件名
defmenu():#输出菜单
print('''╔———————学生信息管理系统————————╗
│ │
│ =============== 功能菜单 =============== │
│ │
│ 1 录入学生信息 │
│ 2 查找学生信息 │
│ 3 删除学生信息 │
│ 4 修改学生信息 │
│ 5 排序 │
│ 6 统计学生总人数 │
│ 7 显示所有学生信息 │
│ 0 退出系统 │
│ ========================================== │
│ 说明:通过数字或↑↓方向键选择菜单 │
╚———————————————————————╝''')defmain():
ctrl= True #标记是否退出系统
while(ctrl):
menu()#显示菜单
option = input("请选择:") #选择菜单项
option_str = re.sub("\D", "", option) #提取数字,去除字符串空格
if option_str in ['0', '1', '2', '3', '4', '5', '6', '7']:
option_int=int(option_str)if option_int == 0: #退出系统
print('您已退出学生成绩管理系统!')
ctrl=Falseelif option_int == 1: #录入学生成绩信息
insert()elif option_int == 2: #查找学生成绩信息
search()elif option_int == 3: #删除学生成绩信息
delete()elif option_int == 4: #修改学生成绩信息
modify()elif option_int == 5: #排序
sort()elif option_int == 6: #统计学生总数
total()elif option_int == 7: #显示所有学生信息
show()'''1 录入学生信息'''
definsert():
stdentList= [] #保存学生信息的列表
mark = True #是否继续添加
whilemark:
id= input("请输入ID(如 1001):")if not id: #ID为空,跳出循环
breakname= input("请输入名字:")if not name: #名字为空,跳出循环
break
try:
english= int(input("请输入英语成绩:"))
python= int(input("请输入Python成绩:"))
c= int(input("请输入C语言成绩:"))except:print("输入无效,不是整型数值....重新录入信息")continuestdent= {"id": id, "name": name, "english": english, "python": python, "c": c} #将输入的学生信息保存到字典
stdentList.append(stdent) #将学生字典添加到列表中
inputMark = input("是否继续添加?(y/n):")if inputMark == "y": #继续添加
mark =Trueelse: #不继续添加
mark =False
save(stdentList)#将学生信息保存到文件
print("学生信息录入完毕!!!")#将学生信息保存到文件
defsave(student):try:
students_txt= open(filename, "a") #以追加模式打开
exceptException as e:
students_txt= open(filename, "w") #文件不存在,创建文件并打开
for info instudent:
students_txt.write(str(info)+ "\n") #按行存储,添加换行符
students_txt.close() #关闭文件
'''2 查找学生成绩信息'''
defsearch():
mark=True
student_query= [] #保存查询结果的学生列表
whilemark:
id= ""name= ""
if os.path.exists(filename): #判断文件是否存在
mode = input("按ID查输入1;按姓名查输入2:")if mode == "1":
id= input("请输入学生ID:")elif mode == "2":
name= input("请输入学生姓名:")else:print("您的输入有误,请重新输入!")
search()#重新查询
with open(filename, 'r') as file: #打开文件
student = file.readlines() #读取全部内容
for list instudent:
d= dict(eval(list)) #字符串转字典
if id is not "": #判断是否按ID查
if d['id'] ==id:
student_query.append(d)#将找到的学生信息保存到列表中
elif name is not "": #判断是否按姓名查
if d['name'] ==name:
student_query.append(d)#将找到的学生信息保存到列表中
show_student(student_query) #显示查询结果
student_query.clear() #清空列表
inputMark = input("是否继续查询?(y/n):")if inputMark == "y":
mark=Trueelse:
mark=Falseelse:print("暂未保存数据信息...")return
'''3 删除学生成绩信息'''
defdelete():
mark= True #标记是否循环
whilemark:
studentId= input("请输入要删除的学生ID:")if studentId is not "": #判断要删除的学生是否存在
if os.path.exists(filename): #判断文件是否存在
with open(filename, 'r') as rfile: #打开文件
student_old = rfile.readlines() #读取全部内容
else:
student_old=[]
ifdel= False #标记是否删除
if student_old: #如果存在学生信息
with open(filename, 'w') as wfile: #以写方式打开文件
d = {} #定义空字典
for list instudent_old:
d= dict(eval(list)) #字符串转字典
if d['id'] !=studentId:
wfile.write(str(d)+ "\n") #将一条学生信息写入文件
else:
ifdel= True #标记已经删除
ififdel:print("ID为 %s 的学生信息已经被删除..." %studentId)else:print("没有找到ID为 %s 的学生信息..." %studentId)else: #不存在学生信息
print("无学生信息...")break #退出循环
show() #显示全部学生信息
inputMark = input("是否继续删除?(y/n):")if inputMark == "y":
mark= True #继续删除
else:
mark= False #退出删除学生信息功能
'''4 修改学生成绩信息'''
defmodify():
show()#显示全部学生信息
if os.path.exists(filename): #判断文件是否存在
with open(filename, 'r') as rfile: #打开文件
student_old = rfile.readlines() #读取全部内容
else:returnstudentid= input("请输入要修改的学生ID:")
with open(filename,"w") as wfile: #以写模式打开文件
for student instudent_old:
d= dict(eval(student)) #字符串转字典
if d["id"] == studentid: #是否为要修改的学生
print("找到了这名学生,可以修改他的信息!")while True: #输入要修改的信息
try:
d["name"] = input("请输入姓名:")
d["english"] = int(input("请输入英语成绩:"))
d["python"] = int(input("请输入Python成绩:"))
d["c"] = int(input("请输入C语言成绩:"))except:print("您的输入有误,请重新输入。")else:break #跳出循环
student = str(d) #将字典转换为字符串
wfile.write(student + "\n") #将修改的信息写入到文件
print("修改成功!")else:
wfile.write(student)#将未修改的信息写入到文件
mark = input("是否继续修改其他学生信息?(y/n):")if mark == "y":
modify()#重新执行修改操作
'''5 排序'''
defsort():
show()#显示全部学生信息
if os.path.exists(filename): #判断文件是否存在
with open(filename, 'r') as file: #打开文件
student_old = file.readlines() #读取全部内容
student_new =[]for list instudent_old:
d= dict(eval(list)) #字符串转字典
student_new.append(d) #将转换后的字典添加到列表中
else:returnascORdesc= input("请选择(0升序;1降序):")if ascORdesc == "0": #按升序排序
ascORdescBool = False #标记变量,为False表示升序排序
elif ascORdesc == "1": #按降序排序
ascORdescBool = True #标记变量,为True表示降序排序
else:print("您的输入有误,请重新输入!")
sort()
mode= input("请选择排序方式(1按英语成绩排序;2按Python成绩排序;3按C语言成绩排序;0按总成绩排序):")if mode == "1": #按英语成绩排序
student_new.sort(key=lambda x: x["english"], reverse=ascORdescBool)elif mode == "2": #按Python成绩排序
student_new.sort(key=lambda x: x["python"], reverse=ascORdescBool)elif mode == "3": #按C语言成绩排序
student_new.sort(key=lambda x: x["c"], reverse=ascORdescBool)elif mode == "0": #按总成绩排序
student_new.sort(key=lambda x: x["english"] + x["python"] + x["c"], reverse=ascORdescBool)else:print("您的输入有误,请重新输入!")
sort()
show_student(student_new)#显示排序结果
'''6 统计学生总数'''
deftotal():if os.path.exists(filename): #判断文件是否存在
with open(filename, 'r') as rfile: #打开文件
student_old = rfile.readlines() #读取全部内容
ifstudent_old:print("一共有 %d 名学生!" %len(student_old))else:print("还没有录入学生信息!")else:print("暂未保存数据信息...")'''7 显示所有学生信息'''
defshow():
student_new=[]if os.path.exists(filename): #判断文件是否存在
with open(filename, 'r') as rfile: #打开文件
student_old = rfile.readlines() #读取全部内容
for list instudent_old:
student_new.append(eval(list))#将找到的学生信息保存到列表中
ifstudent_new:
show_student(student_new)else:print("暂未保存数据信息...")#将保存在列表中的学生信息显示出来
defshow_student(studentList):if notstudentList:print("(o@.@o) 无数据信息 (o@.@o) \n")returnformat_title= "{:^6}{:^12}\t{:^8}\t{:^10}\t{:^10}\t{:^10}"
print(format_title.format("ID", "名字", "英语成绩", "Python成绩", "C语言成绩", "总成绩"))
format_data= "{:^6}{:^12}\t{:^12}\t{:^12}\t{:^12}\t{:^12}"
for info instudentList:print(format_data.format(info.get("id"), info.get("name"), str(info.get("english")), str(info.get("python")),
str(info.get("c")),
str(info.get("english") + info.get("python") + info.get("c")).center(12)))if __name__ == "__main__":
main()
python项目主界面_python项目案例相关推荐
- python网络安全工具箱界面_Python开发案例:设计启动工具箱,显示图形界面的方式...
本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 以下文章来源于云+社区,作者 用户2870857 转载地址 https://bl ...
- python页面自动化测试代码覆盖率_Python项目在Jenkins中的自动化测试实践(语法检查、单元测试,coverage(代码覆盖率)、自动打包)...
requirments OS: Ubuntu 14.04+ Gitlab 8.1 + Jenkins 2.19.0 + 使用Jenkins对Python项目进行自动化测试主要依赖nose(单元测试). ...
- python基础课程设计项目_python项目
泉州信息工程学院 软件学院 课程设计报告书 课程名:python课程设计 课程设计项目名称:基于Django的中餐厅网站的设计与实现 团队成员: 刘冬华.杨艺萍 一.项目简介 1.1 项目博客地址 1 ...
- python实现语音播放_Python学习案例之Web版语音合成播报
前言 语音合成技术能将用户输入的文字,转换成流畅自然的语音输出,并且可以支持语速.音调.音量设置,打破传统文字式人机交互的方式,让人机沟通更自然. 应用场景 将游戏场景中的公告.任务或派单信息通过语音 ...
- python制作软件界面_python界面设计工具Qtdesigner
QtDesigner Qtdesigner是python中的界面设计工具.创建的界面保存为ui类型的文件,再用Pyuic工具把UI界面文件转化为py代码. 安装PyQt5-tools 先要安装pyqt ...
- python成绩登录界面_python实现登录界面
关注公众号:Python爬虫数据分析挖掘,回复[开源源码]免费获取更多源码 本例,展示了通过登录界面打开主界面的实现方式. 其中,登录的账号与密码判断都比较简单,请大家根据自己需要,自行完善补充. [ ...
- python制作窗口界面_python爬虫如何制作可视化界面?(pyqt5环境配置篇)
却道天凉好个秋~ pyqt5+python+qtdesigner+pycharm制作一个可视化的GUI爬虫工具 前言: 最近闲来无聊又开始了py之路,这次需要的是制作一个贴吧的关键词搜索相关帖子的工具 ...
- 汉化python语言编程界面_python设置中文界面实例方法
下面,小编将通过一组实例演示,让大家更直观,更清楚明白的了解要设置中文这一内容的操作步骤. 首先展示实例代码: import pygame from pygame.locals import * de ...
- python软件运行界面_python运行界面 python的图形用户界面怎么运行
为什么用Python开发界面应用程序 1)wxWidgets是一个比MFC优雅的库,TortoiseCVS用wxWidges而不用MFC,就是因为wxWidgets好用,而不是为了可以移植. 2)Py ...
最新文章
- win8系统服务器地址怎么查,win8服务器地址怎么查
- Oracle客户端工具出现“Cannot access NLS data files or invalid environment specified”错误的解决办法...
- 【英语学习】【Daily English】U06 Shopping L01 We are out of pasta.
- 基于JAVA+SpringMVC+Mybatis+MYSQL的电影购票系统
- 基建管控系统_催生智慧园区三维管控系统解决方案,新基建背景下构建可视化监控平台...
- 51nod 1274 最长递增路径(DP)
- [Vue warn]: Cannot find element: #main
- 2013.8.4thinkPHp学习
- linux cp覆盖每次都有提示
- 嵌入式Linux_ARM裸机_ARM汇编指令用法说明1:global/ldr,str/mcr,mrc/bic,orr/bl b/ 汇编写延时
- 3D游戏模型之鼻子的建模
- WebPack+React.Js+BootStrap 实现进制转换工具
- ChatGPT介绍以及一些使用案例
- 我爬取交通学博士分享的GIS资源
- 四川多多开店:拼多多如何获取好的评价
- Qt笔记(四十一)之qtcreator添加pri文件
- 牛客网sql练习题解(22-32)
- MACbook安装双系统,启动转换助理提示“需要64位windows10或更高版本的ISO文件”
- 【Android】自定义FlowLayout,支持多种布局优化--android-flowlayout
- scrapy简单爬取内容
热门文章
- fatal error: nsync_cv.h: No such file or directory
- Bitmap和YUV的转换
- java 文档注释不显示泛型_使用Swagger进行说明 - 使用泛型时无法生成文档资源模型...
- hive load data inpath 空目录_走近大数据之Hive进阶(一、Hive数据的导入)
- 一次数据库泄露的解决经历
- qt c语言程序运行时间,c – 在Qt中计时事件的最佳方法
- 用g++编译生成动态连接库*.so的方法及连接(dlopen() dlsym() dlclose())
- matlab mnl,LaTex中插入VISO 和 MATLAB 经验总结
- 计算机组成原理DMA方式原理,计算机组成原理4(程序查询方式、程序中断方式、DMA方式及其I/O接口电路)...
- 初识好朋友计算机课件,初识电脑朋友.ppt