- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章教你用Python实现简易版学生信息管理系统(含源码)由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
1、首先定义一个存放基础学生信息列表 。
格式:list = [{学号:姓名,年龄:num,成绩:num },{……}] 。
1
2
3
4
|
student1
=
[\
{
1
:
"jam"
,
'age'
:
17
,
'socer'
:
99
},
{
2
:
'kol'
,
'age'
:
18
,
'socer'
:
89
},
{
3
:
'avlir'
,
'age'
:
19
,
'socer'
:
100
}]
|
2、先搭建框架(主函数main()) 。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
if
__name__
=
=
'__main__'
:
while
True
:
menu()
key
=
input
(
"输入选项数字 查询/输入 信息:"
)
if
key
=
=
'1'
:
lookup()
#打印指定学生信息
elif
key
=
=
'2'
:
append()
#添加新的学生信息
elif
key
=
=
'3'
:
delete()
#删除指定学生信息
elif
key
=
=
'4'
:
allinformation()
#打印所有信息
elif
key
=
=
'5'
:
revise()
#修改指定学生信息
elif
key
=
=
'6'
:
save()
#保存信息
elif
key
=
=
'0'
:
print
(
"确定退出?"
)
exit
=
input
(
"输入yes退出:"
)
if
exit
=
=
'yes'
:
break
else
:
print
(
"输入错误,返回 "
)
|
3、搭建好框架之后,这时候发现需要一个菜单界面(menu()) 。
1
2
3
4
5
6
7
8
9
10
11
12
|
#页面
def
menu():
print
(
'-'
*
30
)
print
(
"欢迎来到学生管理系统"
)
print
(
"1.输入学号查询成绩"
)
print
(
"2.添加学生信息"
)
print
(
"3.删除学生信息"
)
print
(
"4.打印所有学生信息"
)
print
(
"5.修改学生信息"
)
print
(
"6.保存学生信息到指定文件"
)
print
(
"0.退出系统"
)
print
(
"-"
*
30
)
|
4、接下来就是查询指定学生信息(lookup()).
列表下标从0开始,所以这里在输入学号后面加了 “-1” 。
1
2
3
4
5
6
7
8
|
#打印信息
def
lookup():
sid
=
int
(
input
(
"输入查询学号:"
))
-
1
#学号
if
sid >
len
(student1)
-
1
:
print
(
"输入错误,返回菜单"
)
else
:
print
(student1[sid])
#输出信息
input
(
"按回车键继续"
)
|
5、接下来是添加学生信息(append()) 。
因为列表元素是用字典存储,所以这里用到字典的添加元素 。
1
2
3
4
5
6
7
8
9
10
11
12
|
#添加信息
def
append():
newsid
=
eval
(
input
(
'输入新同学学号(从4开始):'
))
newname
=
eval
(
input
(
'输入新同学姓名:'
))
newage
=
eval
(
input
(
'输入新同学年龄:'
))
newsocer
=
eval
(
input
(
'输入新同学成绩:'
))
newstudent1
=
{}
newstudent1[newsid]
=
newname
#添加 学号、姓名
newstudent1[
'age'
]
=
newage
#添加年龄
newstudent1[
'socer'
]
=
newsocer
#添加成绩
student1.append(newstudent1)
#加入列表
input
(
"按回车键继续"
)
|
6、能添加也就能删除(delete()) 。
1
2
3
4
5
|
#删除信息
def
delete():
did
=
int
(
input
(
"输入需要删除的成绩对应的学号:"
))
-
1
del
student1[did]
#删除指定信息
input
(
"按回车键继续"
)
|
7、然后就是输出所有信息(allinformation()) 。
这里遍历输出列表元素时,用到了格式化字符串的函数 str.format() 。
1
2
3
4
5
6
7
8
|
##输出所有学生信息
def
allinformation():
print
(
"所有信息如下:"
)
i
=
1
for
show
in
student1:
print
(
"{}"
.
format
(show))
#打印学生信息
i
+
=
1
input
(
"按回车键继续"
)
|
8、现在还差修改信息(revise()) 。
也是字典修改值得方法,通过键来修改对应值 。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
##修改信息
def
revise():
resid
=
int
(
input
(
"输入要修改的学生学号:"
))
-
1
r
=
input
(
"要修改的对象(1.年龄;2.成绩;否则,都修改):"
)
if
r
=
=
'1'
:
newage
=
input
(
"修改后的年龄"
)
student1[resid][
'age'
]
=
newage
elif
r
=
=
'2'
:
newsocer
=
input
(
"修改后的成绩"
)
student1[resid][
'socer'
]
=
newsocer
else
:
newage
=
input
(
"修改后的年龄"
)
newsocer
=
input
(
"修改后的成绩"
)
student1[resid][
'socer'
]
=
newsocer
student1[resid][
'age'
]
=
newage
input
(
"按回车键继续"
)
|
9、差点忘了还得保存一下信息……(save()) 。
我把它保存在与代码同一文件中student.txt文件中,引入路径时需要绝对路径 。
1
2
3
4
5
6
|
##保存学生信息
def
save():
f
=
open
(
'student.txt'
,
'w'
)
#打开文件
f.write(
str
(student1))
#写入文件
f.close()
#关闭文件
input
(
"保存成功按回车键继续"
)
|
然后,完整代码如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
|
'''
Created on 2021年6月13日
学生信息系统
列表存储学生信息,通过字典——键进行学生信息访问
@author: 小天
'''
student1
=
[\
{
1
:
"jam"
,
'age'
:
17
,
'socer'
:
99
},
{
2
:
'kol'
,
'age'
:
18
,
'socer'
:
89
},
{
3
:
'avlir'
,
'age'
:
19
,
'socer'
:
100
}]
#页面
def
menu():
print
(
'-'
*
30
)
print
(
"欢迎来到学生管理系统"
)
print
(
"1.输入学号查询成绩"
)
print
(
"2.添加学生信息"
)
print
(
"3.删除学生信息"
)
print
(
"4.打印所有学生信息"
)
print
(
"5.修改学生信息"
)
print
(
"6.保存学生信息到指定文件"
)
print
(
"0.退出系统"
)
print
(
"-"
*
30
)
#打印信息
def
lookup():
sid
=
int
(
input
(
"输入查询学号:"
))
-
1
#学号
if
sid >
len
(student1)
-
1
:
print
(
"输入错误,返回菜单"
)
else
:
print
(student1[sid])
#输出信息
input
(
"按回车键继续"
)
#添加信息
def
append():
newsid
=
eval
(
input
(
'输入新同学学号(从4开始):'
))
newname
=
eval
(
input
(
'输入新同学姓名:'
))
newage
=
eval
(
input
(
'输入新同学年龄:'
))
newsocer
=
eval
(
input
(
'输入新同学成绩:'
))
newstudent1
=
{}
newstudent1[newsid]
=
newname
#添加 学号、姓名
newstudent1[
'age'
]
=
newage
#添加年龄
newstudent1[
'socer'
]
=
newsocer
#添加成绩
student1.append(newstudent1)
#加入列表
input
(
"按回车键继续"
)
#删除信息
def
delete():
did
=
int
(
input
(
"输入需要删除的成绩对应的学号:"
))
-
1
del
student1[did]
#删除指定信息
input
(
"按回车键继续"
)
##输出所有学生信息
def
allinformation():
print
(
"所有信息如下:"
)
i
=
1
for
show
in
student1:
print
(
"{}"
.
format
(show))
#打印学生信息
i
+
=
1
input
(
"按回车键继续"
)
##修改信息
def
revise():
resid
=
int
(
input
(
"输入要修改的学生学号:"
))
-
1
r
=
input
(
"要修改的对象(1.年龄;2.成绩;否则,都修改):"
)
if
r
=
=
'1'
:
newage
=
input
(
"修改后的年龄"
)
student1[resid][
'age'
]
=
newage
elif
r
=
=
'2'
:
newsocer
=
input
(
"修改后的成绩"
)
student1[resid][
'socer'
]
=
newsocer
else
:
newage
=
input
(
"修改后的年龄"
)
newsocer
=
input
(
"修改后的成绩"
)
student1[resid][
'socer'
]
=
newsocer
student1[resid][
'age'
]
=
newage
input
(
"按回车键继续"
)
##保存学生信息
def
save():
f
=
open
(
'student.txt'
,
'w'
)
#打开文件
f.write(
str
(student1))
#写入文件
f.close()
#关闭文件
input
(
"保存成功按回车键继续"
)
if
__name__
=
=
'__main__'
:
while
True
:
menu()
key
=
input
(
"输入选项数字 查询/输入 信息:"
)
if
key
=
=
'1'
:
lookup()
#打印指定学生信息
elif
key
=
=
'2'
:
append()
#添加新的学生信息
elif
key
=
=
'3'
:
delete()
#删除指定学生信息
elif
key
=
=
'4'
:
allinformation()
#打印所有信息
elif
key
=
=
'5'
:
revise()
#修改指定学生信息
elif
key
=
=
'6'
:
save()
#保存信息
elif
key
=
=
'0'
:
print
(
"确定退出?"
)
exit
=
input
(
"输入yes退出:"
)
if
exit
=
=
'yes'
:
break
else
:
print
(
"输入错误,返回 "
)
|
输出示例:
------------------------------ 欢迎来到学生管理系统 1.输入学号查询成绩 2.添加学生信息 3.删除学生信息 4.打印所有学生信息 5.修改学生信息 6.保存学生信息到指定文件 0.退出系统 ------------------------------ 输入选项数字 查询/输入 信息:2 输入新同学学号(从4开始):4 输入新同学姓名:'dfg' 输入新同学年龄:17 输入新同学成绩:78 按回车键继续 ------------------------------ 欢迎来到学生管理系统 1.输入学号查询成绩 2.添加学生信息 3.删除学生信息 4.打印所有学生信息 5.修改学生信息 6.保存学生信息到指定文件 0.退出系统 ------------------------------ 输入选项数字 查询/输入 信息:6 按回车键继续 ------------------------------ 欢迎来到学生管理系统 1.输入学号查询成绩 2.添加学生信息 3.删除学生信息 4.打印所有学生信息 5.修改学生信息 6.保存学生信息到指定文件 0.退出系统 ------------------------------ 输入选项数字 查询/输入 信息:4 所有信息如下: {1: 'jam', 'age': 17, 'socer': 99} {2: 'kol', 'age': 18, 'socer': 89} {3: 'avlir', 'age': 19, 'socer': 100} {4: 'dfg', 'age': 17, 'socer': 78} 按回车键继续 ------------------------------ 欢迎来到学生管理系统 1.输入学号查询成绩 2.添加学生信息 3.删除学生信息 4.打印所有学生信息 5.修改学生信息 6.保存学生信息到指定文件 0.退出系统 ------------------------------ 输入选项数字 查询/输入 信息:3 输入需要删除的成绩对应的学号:4 按回车键继续 ------------------------------ 欢迎来到学生管理系统 1.输入学号查询成绩 2.添加学生信息 3.删除学生信息 4.打印所有学生信息 5.修改学生信息 6.保存学生信息到指定文件 0.退出系统 ------------------------------ 输入选项数字 查询/输入 信息:6 按回车键继续 ------------------------------ 欢迎来到学生管理系统 1.输入学号查询成绩 2.添加学生信息 3.删除学生信息 4.打印所有学生信息 5.修改学生信息 6.保存学生信息到指定文件 0.退出系统 ------------------------------ 输入选项数字 查询/输入 信息:0 确定退出? 输入yes退出:yes 。
到此这篇关于教你用Python实现简易版学生信息管理系统(含源码)的文章就介绍到这了,更多相关Python学生信息管理系统内容请搜索我以前的文章或继续浏览下面的相关文章希望大家以后多多支持我! 。
原文链接:https://blog.csdn.net/m0_48278789/article/details/117899186 。
最后此篇关于教你用Python实现简易版学生信息管理系统(含源码)的文章就讲到这里了,如果你想了解更多关于教你用Python实现简易版学生信息管理系统(含源码)的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
ACO.Visualization项目 本项目演示蚁群算法求解旅行商问题的可视化过程,包括路径上的信息素浓度、蚁群的运动过程等。项目相关的代码:https://github.com/anycad/A
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。 关闭 7 年前。
我需要用Sql数据库制作并包含的PHP票务系统源码用户客户端和管理员。我需要个人 CMS 的这个来源。谢谢你帮助我。 最佳答案 我在不同的情况下使用了 osticket。 这里: http://ost
我的场景:我想在日志文件中写入发生异常的部分代码(例如,发生异常的行前 5 行和行后 5 行 - 或者至少是该方法的所有代码)。 我的想法是用 C# 代码反编译 pdb 文件,并从该反编译文件中找到一
RocketMQ设定了延迟级别可以让消息延迟消费,延迟消息会使用 SCHEDULE_TOPIC_XXXX 这个主题,每个延迟等级对应一个消息队列,并且与普通消息一样,会保存每个消息队列的消费进度
先附上Hystrix源码图 在微服务架构中,根据业务来拆分成一个个的服务,服务与服务之间可以相互调用(RPC),在Spring Cloud可以用RestTemplate+Ribbon和
此篇博客学习的api如标题,分别是: current_url 获取当前页面的url; page_source 获取当前页面的源码; title 获取当前页面的titl
? 1 2
1、前言 作为一个数据库爱好者,自己动手写过简单的sql解析器以及存储引擎,但感觉还是不够过瘾。<<事务处理-概念与技术>>诚然讲的非常透彻,但只能提纲挈领,不能让你
gory"> 目录 运行时信号量机制 semaphore 前言 作用是什么 几个主要的方法 如何实现
自己写的一个评论系统源码分享给大家,包括有表情,还有评论机制。用户名是随机的 针对某一篇文章进行评论 function subcomment() {
一、概述 StringBuilder是一个可变的字符串序列,这个类被设计去兼容StringBuffer类的API,但不保证线程安全性,是StringBuffer单线程情况下的一个替代实现。在可能的情
一、概述 System是用的非常多的一个final类。它不能被实例化。System类提供了标准的输入输出和错误输出流;访问外部定义的属性和环境变量;加载文件和库的方法;以及高效的拷贝数组中一部分元素
在JDK中,String的使用频率和被研究的程度都非常高,所以接下来我只说一些比较重要的内容。 一、String类的概述 String类的声明如下: public final class Str
一、概述 Class的实例代表着正在运行的Java应用程序的类和接口。枚举是一种类,而直接是一种接口。每一个数组也属于一个类,这个类b被反射为具有相同元素类型和维数的所有数组共享的类对象。八大基本树
一、概述 Compiler这个类被用于支持Java到本地代码编译器和相关服务。在设计上,这个类啥也不做,他充当JIT编译器实现的占位符。 放JVM虚拟机首次启动时,他确定系统属性java.comp
一、概述 StringBuffer是一个线程安全的、可变的字符序列,跟String类似,但它能被修改。StringBuffer在多线程环境下可以很安全地被使用,因为它的方法都是通过synchroni
一、概述 Enum是所有Jav中枚举类的基类。详细的介绍在Java语言规范中有说明。 值得注意的是,java.util.EnumSet和java.util.EnumMap是Enum的两个高效实现,
一、概述 此线程指的是执行程序中的线程。 Java虚拟机允许应用程序同时执行多个执行线程。 每个线程都有优先权。 具有较高优先级的线程优先于优先级较低的线程执行。 每个线程可能也可能不会被标记为守
一、抽象类Number 类继承关系 这里面的原子类、BigDecimal后面都会详细介绍。 属性和抽象方法 二、概述 所有的属性,最小-128,最大127,SIZE和BYTES代码比
我是一名优秀的程序员,十分优秀!