未完成的学生信息管理系统(开发思路)
# 声明所有的key值
key_all_student = 'students'
key_name = 'student_name'
key_age = 'age'
key_tel = 'tel'
key_id = 'id'
# 系统容器
system_info = {}
# 当前已经添加过的学生人数
number = 0
# 系统入口
while True:
# ========系统主页============
print('='*100)
print('欢迎进入xxx学生管理系统'.center(100,' '))
print('1.添加学生'.center(100,' '))
print('2.查看信息'.center(100,' '))
print('3.修改信息'.center(100,' '))
print('4.删除信息'.center(100,' '))
print('0.退出'.center(100,' '))
print('='*100)
input_value = input('请选择:')
# ========退出系统===========
if input_value == '0':
break
# ========添加学生===========
if input_value == '1':
while True:
print('-----------添加学生------------')
# 输入信息
add_name = input('name:')
add_age = input('age:')
add_tel = input('tel:')
# 自动产生学号
number += 1
add_id = 'py1805'+str(number).rjust(3,'0')
# 创建学生(一个学生就是一个字典)
add_student = {key_name:add_name,key_age:add_age,key_tel:add_tel,key_id:add_id}
# 获取存学生的容器
all_students = system_info.get(key_all_student)
if not all_students:
all_students = []
# 添加学生到容器中
all_students.append(add_student)
system_info[key_all_student] = all_students
print('添加学生 %s 成功'% add_name)
# 给出选择
print('1.继续添加\n其他:返回上一层')
add_input = input('>>>')
if add_input != '1':
break
continue
# ========查看信息===========
if input_value == '2':
# =========给出选择===============
print('----------------查看信息------------------')
print('1.查看所有的学生信息')
print('2.根据姓名查看学生信息')
print('3.根据学号查看学生信息')
print('4.返回上一层')
find_input = input('>>>')
# 直接回到上一层
if find_input == '4':
continue
# ======拿到所有的学生=======
all_students = system_info.get(key_all_student)
if not all_students:
print('系统中还没有学生!')
continue
# ===========查看所有==========
if find_input == '1':
#========系统还没有学生=======
"""
or 和 and 的短路操作:
表达式1 or 表达式2:如果表达式1的值是true,那么不会执行表达式2,结果直接为true
表达式1 and 表达式2:如果表达式1的值是false,那么不会执行表达式2,结果直接为false
"""
#========有学生============
for student in all_students:
print('姓名:%s,年龄:%s,电话:%s,学号:%s'% \
(student[key_name],student[key_age],student[key_tel],student[key_id]))
pass
# ===========根据姓名===========
elif find_input == '2':
find_name = input('请输入要查看的学生名字:')
flag = True # 表示是否找不到
for student in all_students:
# 如果学生名字与输入的名字相同,打印其信息
if find_name == student[key_name]:
print(student)
flag = False
if flag:
print('找不到该生信息')
# ==========根据学号===========
elif find_input == '3':
find_id = input('请输入要查看的学生的学号:')
flag = True
for student in all_students:
if find_id == student[key_id]:
print(student)
flag = False
break
if flag:
print('找不到该学生信息')
continue
# ========修改信息===========
if input_value == '3':
print('修改信息')
continue
# ========删除学生===========
if input_value == '4':
while True:
print('1.按姓名删除')
print('2.按学号删除')
print('3.返回')
del_input = input('>>>')
if del_input == '3':
break
all_students = system_info.get(key_all_student)
if not all_students:
print('该系统没有学生')
break
if del_input == '1':
del_name = input('输入要删除的学生姓名')
del_student_list = []
for student in all_students:
if del_name == student[key_name]:
# 保存可能要删除的学生
del_student_list.append(student)
# 先判断是否找到
if not del_student_list:
print('没有相关学生信息')
continue
# 打印所有可能需要删除的学生
index = 0
for student in del_student_list:
print(index,student)
index += 1
del_index = input('请选择要删除的学生的编号:')
del_student = del_student_list[int(del_index)]
# 从系统中删除
system_info[key_all_student].remove(del_student)
print('删除成功')
continue
函数
1.什么是函数
函数就是对实现某一特定功能的代码块的封装
作用:封装(将功能绑定在一个函数中,想要使用这个功能的时候直接调用函数)
2.怎么声明函数:
def 函数名(参数列表):
''' 函数说明 '''
函数体
- def: 是python中声明函数的关键字
- 函数说明:队函数的功能和参数以及返回值进行说明
- 函数名: 标识符。PEP8见名知义
- ():是固定格式
- 参数列表:(形参列表)参数名1,参数名2,参数名3……
- 参数的功能是用来接收从外部传到函数内部的数据
- 函数体:实现函数功能的代码块,可能会包含一个return语句
3.声明函数的步骤:
a.确定函数的功能
b.确定函数名
c.确定参数,确定需不需要参数,需要几个参数
d.实现函数功能
e.确定返回值
4.函数的调用
函数名(实参列表)
调用的函数一定是已经声明过的,想使用什么功能就调用对应的函数
实参列表:实参是用来给形参赋值的
'''
函数的调用过程:
1.使用实参给形参赋值
2.执行函数体
3.函数体执行完成后,回到函数调用的位置
注意:
1.函数只有在调用的时候才会执行
2.函数调用的时候一定要保证每个形参都有值
3.函数的调用要写到函数的声明后
# 写一个函数,计算两个数的和
def push(a,b):
'''计算2个数的和并作为返回值'''
return a+b
print(push(1,2))
# 练习,声明一个函数,功能是打印10个*
def px():
'''打印10个*'''
print('*'*10)
px()
5.函数的参数
- 位置参数
传参的时候,实参按顺序给形参赋值
def func1(a,b,c):
print(a,b,c)
func1(10,20,30)
- 关键字参数
调用函数的时候:函数名(参数 = 值)
func1(c=30,a=10,b=20)
说明:位置参数和关键字参数可以混搭
- 参数的默认值
python中函数声明的时候参数可以设置默认值,有默认值的参数必须放在参数列表的最后
调用含有默认值参数的函数时,有默认值的参数可以传参也可以不传参
def func2(a,b,c=100):
print(a,b,c)
func2(10,20,30)
func2(10,20)
- 参数个数不定
函数的参数个数不确定的时候,就在声明函数的时候,形参的前面加一个*,将形参变成元组
调用函数的时候,这个参数会将对应的实参作为元组的元素保存起来
注意:参数个数不定,可以是形参中的一部分是不定的。个数不确定的参数要放在最后
# 写一个函数,求多个数的和
def func3(*number):
sum1 = 0
for x in number:
sum1 += x
return sum1
print(func3(1,2,3,4,5,6,7,8,9,10))
# 写一个函数,求多个数的和
def func3(number1,*numbers):
for x in numbers:
number1 += x
print(number1)
func3(1,2,3,4,5,6,7,8,9,10)