#!/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简单实现学生管理系统相关推荐

  1. python输入姓名 性别身高_Python编程:从入门到实践 Day9

    学到"类"这一章的时候,应该算是真正接触面向对象编程了,与之前的流程化的完全不一样了,所以学得稍显吃力,有些没写清楚或写错的请及时指正. 第九章 类 1.创建和使用类 个人理解,类 ...

  2. python输入姓名 性别身高_孤荷凌寒自学python第十一天初识Python的字典类

    孤荷凌寒自学python第十一天初识Python的字典类 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) Python的字典其实是一张二维对照表 下面举例说明: 键名Key 姓名 性别 身高 ...

  3. python输入姓名专业班级_Python — 学生成绩管理

    Python - 学生成绩管理 摘要 本次实验要求使用python语言,读取现有的班级花名册,写入SQlite数据库,逐个显示每一个学生的学号姓名,输入其python.英语等课程的成绩,写入SQLit ...

  4. python输入姓名输出欢迎_python 3 基础之输入输出

    输出 格式化输出符号 格式符号转换 %c字符 %s字符串 %d有符号十进制整数 %u无符号十进制整数 %o八进制整数 %x十六进制整数(小写字母0x) %X十六进制整数(大写字母0X) %f浮点数 % ...

  5. python输入姓名输出欢迎_python试卷

    2016 年上海市高等学校计算机等级考试试卷 二级 Python 语言程序设计(模拟卷) (本试卷考试时间 120 分钟) 一.单选题( 10 小题,每小题 1.5 分,共 15 分) 1. &quo ...

  6. python输入姓名输出职务_python题中输入姓名的笔画数,输出所属性格,及该种性格人的典型代表?...

    展开全部 你是没看懂吗?还是我讲的不明白?好有挫败感啊 有问题就e68a843231313335323631343130323136353331333431353861说class suanming( ...

  7. python输入姓名专业班级_python自动生成姓名

    # Author:BeeLe # -*- coding: utf-8 -*- import random def XM(): xing = ['赵', '钱', '孙', '李', '周', '吴', ...

  8. Python编写简单的学生管理系统

    Python编写简单的学生管理系统 一共两个文件,其中一个定义函数,另一个是主程序,调用函数,运行程序 CMS.py ''' 编写"学生信息管理系统",要求如下: 必须使用自定义函 ...

  9. python小项目实例流程-Python小项目:快速开发出一个简单的学生管理系统

    原标题:Python小项目:快速开发出一个简单的学生管理系统 本文根据实际项目中的一部分api 设计抽象出来,实例化成一个简单小例子,暂且叫作「学生管理系统」. 这个系统主要完成下面增删改查的功能: ...

最新文章

  1. MySQL ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)的真正原因...
  2. 舵机控制激光头(51单片机)
  3. 源码编译OpenCV卡在ippicv
  4. 数据流中的中位数java_数据流中的中位数
  5. 【答辩问题】计算机专业本科毕业设计答辩的一般程序3
  6. 从 0 到 1 实现 React 系列 —— 1.JSX 和 Virtual DOM
  7. 信号集 信号屏蔽字/pending的处理
  8. GitHub 项目精选(2022.5.18更新)
  9. 为什么你学不过动态规划?告别动态规划,谈谈我的经验
  10. java 图片去水印_如何用java去除图片水印?
  11. 利用DirectShow开发C#版的MP3播放器(一)
  12. Python覆盖率框架Coverage初探
  13. Bing 无法访问临时解决方案
  14. Nebula Graph学习篇1_基础概念、初步使用、整合SpringBoot使用
  15. PHP设计模式之观察者模式
  16. 京东之鉴:兄弟是兄弟,员工是员工!-千氪
  17. JAVA程序设计:赛车(LeetCode:818)
  18. 学习成绩 =90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。(C语言版)
  19. 2023王道数据结构考研习题汇总
  20. Qt源码分析--QImage(8)

热门文章

  1. 微信小程序物联网应用_简化物联网应用程序入门的提示
  2. java final static
  3. php 查看磁盘挂载,linux如何查看磁盘使用情况
  4. 5 年 Python 的我,总结了这 90 条写 Python 程序的建议
  5. 机器视觉与Tesseract介绍
  6. Python hashlib模块中的sha加密
  7. Python中的GIL锁
  8. 动态服务器以及WSGI
  9. 在DataTable和DataView中查找指定记录
  10. VS 2008中的jQuery Intellisense