python输入姓名 性别身高_python简单实现学生管理系统
#!/usr/bin/env python
# -*- coding: UTF-8 -*-
# Author:Du Fei
import os
#学号,姓名,年龄,性别,身高
allStudentsList=[]
#从文件中读取数据
def readFromFile(fileName):
if not os.path.exists(fileName):# 如果文件不存在,则新增一个空文件
f = open(fileName,"w")
f.close()
with open(fileName,"r",encoding="utf-8") as f:
for onStr in f:
oneList=onStr.strip("\n").split(",")
oneList[0]=int(oneList[0])#学号
oneList[1]=oneList[1]#姓名
oneList[2]=int(oneList[2])#年龄
oneList[3]=oneList[3]#性别
oneList[4]=float(oneList[4])#身高
allStudentsList.append(oneList)
#将数据写入文件
def writeToFile(fileName):
f =open(fileName,"w")
f.close()
with open(fileName,"a",encoding="utf-8") as f:
for oneList in allStudentsList:
oneStr=str(str(oneList[0])+","+oneList[1]+","+str(oneList[2])+","+oneList[3]+","+str(oneList[4])+"\n")
f.write(oneStr)
#显示所有学生信息
def allStudentsShow():
for one in allStudentsList:
print("学号:%d,姓名:%s,年龄:%d,性别:%s,身高:%f" % (one[0], one[1], one[2], one[3],one[4]))
#新增学生
def addNewStudent(newStuList):
#check学号是否重复复
for one in allStudentsList:
if one[0] == newStuList[0]:
return -1 #学号重复
allStudentsList.append(newStuList)
writeToFile("student.txt")
return 1
#修改学生年龄
def updateStudentsAge(id,newAge):
for one in allStudentsList:
if one[0]==id:
one[2]=newAge
break
else:
return -1#找不到此学号
writeToFile("student.txt")
return 1
#删除学生
def deleteStudent(id):
index =0
for one in allStudentsList:
if one[0] ==id:
del allStudentsList[index]
break
index +=1
else:
return -1#找不到要删除的学号
writeToFile("student.txt")
return 1
#按照姓名查找
def searchStudents(name):
flag =0
for one in allStudentsList:
if one[1]==name:
print("学号:%d,姓名:%s,年龄:%d,性别:%s,身高:%f" % (one[0], one[1], one[2], one[3], one[4]))
flag=1
if flag==0:
return -1#查无此人
return 1
def sortMe(oneList):
return oneList[0]
#按序号排序
def orderById(flag):#flag:1升序,2降序
if flag==1:#升序
allStudentsList.sort(reverse=False,key=lambda oneList:oneList[0])
else:
allStudentsList.sort(reverse=True,key=sortMe)
#功能菜单
def menuShow():
print("**********************************")
print("*1.查看所有学生信息****************")
print("*2.新增学生************************")
print("*3.修改学生************************")
print("*4.删除学生************************")
print("*5.按姓名查找**********************")
print("*6.按学号排序**********************")
print("*7.保存***************************")
print("*8.退出***************************")
print("**********************************")
if __name__ == "__main__":
#从文件中读取数据
readFromFile("student.txt")
# print(allStudentsList)
while True:
# 显示主菜单
menuShow()
select =int(input("请选择功能选项:"))
if select == 1:
allStudentsShow()
elif select == 2:
while True:
try:
id = int(input("请输入学号:"))
name = input("请输入姓名:")
age = int(input("请输入年龄:"))
sex = input("请输入性别:")
height = float(input("请输入身高:"))
newStuList=[id,name,age,sex,height]
if addNewStudent(newStuList) ==-1:
print("学号已存在,请重新输入")
else:
flag=input("新增用户成功,是否继续新增(y/n)?:")
if flag.lower() !="y":
break
except:
print("输入有误请重新输入")
elif select == 3:
while True:
id=int(input("请输入序号:"))
newAge=int(input("请输入新的年龄:"))
if updateStudentsAge(id,newAge) ==-1:
print("找不到此学号的学生,请重新输入")
else:
flag = input("修改成功,是否继续修改(y/n)?:")
if flag.lower() != "y":
break
elif select == 4:
while True:
id =int(input("请输入删除的学号:"))
if deleteStudent(id) == -1:
print("找不到此学号的学生,请重新输入")
else:
flag = input("删除成功,是否继续删除(y/n)?:")
if flag.lower() != "y":
break
elif select == 5:
while True:
name=input("请输入查找的姓名:")
if searchStudents(name) ==-1:
print("查无此人")
flag = input("是否继续查找(y/n)?:")
if flag.lower() != "y":
break
elif select == 6:
flag=int(input("请选择排序方式(1:升序,2:降序)"))
orderById(flag)
allStudentsShow()
elif select == 7:
writeToFile("student.txt")
else:
exit()
原文:https://www.cnblogs.com/coding2018/p/10072386.html
python输入姓名 性别身高_python简单实现学生管理系统相关推荐
- python输入姓名 性别身高_Python编程:从入门到实践 Day9
学到"类"这一章的时候,应该算是真正接触面向对象编程了,与之前的流程化的完全不一样了,所以学得稍显吃力,有些没写清楚或写错的请及时指正. 第九章 类 1.创建和使用类 个人理解,类 ...
- python输入姓名 性别身高_孤荷凌寒自学python第十一天初识Python的字典类
孤荷凌寒自学python第十一天初识Python的字典类 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) Python的字典其实是一张二维对照表 下面举例说明: 键名Key 姓名 性别 身高 ...
- python输入姓名专业班级_Python — 学生成绩管理
Python - 学生成绩管理 摘要 本次实验要求使用python语言,读取现有的班级花名册,写入SQlite数据库,逐个显示每一个学生的学号姓名,输入其python.英语等课程的成绩,写入SQLit ...
- python输入姓名输出欢迎_python 3 基础之输入输出
输出 格式化输出符号 格式符号转换 %c字符 %s字符串 %d有符号十进制整数 %u无符号十进制整数 %o八进制整数 %x十六进制整数(小写字母0x) %X十六进制整数(大写字母0X) %f浮点数 % ...
- python输入姓名输出欢迎_python试卷
2016 年上海市高等学校计算机等级考试试卷 二级 Python 语言程序设计(模拟卷) (本试卷考试时间 120 分钟) 一.单选题( 10 小题,每小题 1.5 分,共 15 分) 1. &quo ...
- python输入姓名输出职务_python题中输入姓名的笔画数,输出所属性格,及该种性格人的典型代表?...
展开全部 你是没看懂吗?还是我讲的不明白?好有挫败感啊 有问题就e68a843231313335323631343130323136353331333431353861说class suanming( ...
- python输入姓名专业班级_python自动生成姓名
# Author:BeeLe # -*- coding: utf-8 -*- import random def XM(): xing = ['赵', '钱', '孙', '李', '周', '吴', ...
- Python编写简单的学生管理系统
Python编写简单的学生管理系统 一共两个文件,其中一个定义函数,另一个是主程序,调用函数,运行程序 CMS.py ''' 编写"学生信息管理系统",要求如下: 必须使用自定义函 ...
- python小项目实例流程-Python小项目:快速开发出一个简单的学生管理系统
原标题:Python小项目:快速开发出一个简单的学生管理系统 本文根据实际项目中的一部分api 设计抽象出来,实例化成一个简单小例子,暂且叫作「学生管理系统」. 这个系统主要完成下面增删改查的功能: ...
最新文章
- MySQL ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)的真正原因...
- 舵机控制激光头(51单片机)
- 源码编译OpenCV卡在ippicv
- 数据流中的中位数java_数据流中的中位数
- 【答辩问题】计算机专业本科毕业设计答辩的一般程序3
- 从 0 到 1 实现 React 系列 —— 1.JSX 和 Virtual DOM
- 信号集 信号屏蔽字/pending的处理
- GitHub 项目精选(2022.5.18更新)
- 为什么你学不过动态规划?告别动态规划,谈谈我的经验
- java 图片去水印_如何用java去除图片水印?
- 利用DirectShow开发C#版的MP3播放器(一)
- Python覆盖率框架Coverage初探
- Bing 无法访问临时解决方案
- Nebula Graph学习篇1_基础概念、初步使用、整合SpringBoot使用
- PHP设计模式之观察者模式
- 京东之鉴:兄弟是兄弟,员工是员工!-千氪
- JAVA程序设计:赛车(LeetCode:818)
- 学习成绩 =90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。(C语言版)
- 2023王道数据结构考研习题汇总
- Qt源码分析--QImage(8)