用python写学生信息管理系统v1.1(持续更新中)

学生信息管理系统v1.1 - - python

- 内容

  • 升级学生信息管理系统v1.0
  • 将增、删、改、查四个功能写成函数并调用
  • 通过登录信息区分身份
    • 管理员 - - 可使用全部功能
    • 其他用户 - - 只能查询信息
  • 学生信息管理系统v1.0

同样先来说说本次升级所用到的python知识

- 函数

1)定义函数

python定义函数使用def关键字
格式如下:

def hello():
    print('hello world!')
hello()

2)带参函数

一个简单的带参函数格式如下:

#计算面积函数
def area(length,width):
    return length * width

def print_welcome(name):
    print('Welcome',name)

print_welcome('pinkward')
l = 20
w = 22
print('length =',l ,'width =',w ,'area =',area(l ,w ))

3)函数调用

在以上(1) (2)中已出现函数调用的写法
即:定义一个函数后,给定函数名称,指定函数里包含的参数和代码块结构后,可通过另一函数进行调用。

def hello():
    print('hello world!')
hello()

4)可变与不可变对象

  • 在python中,strings、tuples和numbers是不可变对象,而list、dict等则是可变对象。
    • 不可变类型:变量赋值a = 5后再赋值a = 10,这里实际是新生成一个int值对象10,再让a指向它,而5被丢弃,不是改变a的值,相当于新生成了a。
    • 可变类型:变量赋值la = [1,2,3,4]后再赋值la[2] = 5,则是将list la的第三个元素值更改,本身la没有动,只是其内部的一部分值被修改了。
  • python函数的参数传递:
    • 不可变类型:类似c++的值传递,如整数、字符串、元组。如 f(a),传递的只是 a 的值,没有影响 a 对象本身。比如在 f(a) 内部修改 a 的值,只是修改另一个复制的对象,不会影响 a 本身。
    • 可变类型:类似c++的引用传递,如列表、字典。如 f(la),则是将 la 真正的传过去,修改后 f 外部的 la 也会受影响。

5)传不可变对象

def ChangeInt(a):
    a = 10

b = 2
ChangeInt(b)
print(b) #结果是2

在以上实例中,有 int 对象 2,指向它的变量是 b,在传递给 ChangeInt 函数时,按传值的方式复制了变量 b,a 和 b 都指向了同一个 int 对象,在a = 10时,则新生成了一个 int 值对象 10,并让 a 指向它。

6)传可变对象

可变对象在函数里修改了参数,那么在调用这个函数的函数里,原始的参数也被改变了。

7)参数

以下是调用函数时可使用的正式参数类型:

  • 必需参数
  • 关键字参数
  • 默认参数
  • 不定长参数

- 学生信息管理系统v1.1

代码如下:

# coding: utf-8
# Time: 2021/9/16 16:42
# Author: pinkward
# Software: PyCharm

# 学生信息管理系统v1.1

studic = {
     
 'x': {
     'name': 'pinkward', 'height(cm)': '180', 'weight(kg)': '65', 'class': 'x1', 'tel': '11111111111'}
} # 初始存储数据 子字典形式储存

def query(): # 查询函数
    if len(studic):
        for x in studic: # 用for循环访问studic字典
            stu = studic[x] # 依据学号 将子字典赋给stu
            print('--学号:', x) # 输出键
            print('\t姓名:    ', stu['name'])
            print('\t身高(cm):', stu['height(cm)'])
            print('\t体重(kg):', stu['weight(kg)'])
            print('\t班级:    ', stu['class'])
            print('\t电话:    ', stu['tel']) # 拿出子字典中的值
    else:
        print('---当前无学生信息!---')

def insert(): # 添加函数
    xh = input('请输入学生学号: ')
    if xh in studic: # 判断系统内是否有该学号
        print('---此学号已存在!请重新输入:---')
    else:
        name = input('请输入姓名: ')
        height = input('请输入身高(cm): ')
        weight = input('请输入体重(kg): ')
        bj = input('请输入班级: ') # 注意班级不能用class
        tel = input('请输入电话: ')
        studic[xh] = {
     'name': name, 'height(cm)': height, 'weight(kg)': weight, 'class': bj, 'tel': tel} # 存入字典
        print('---已成功录入学生信息!---')

def update(): # 修改函数
    xh = input('请输入学生学号: ')
    if xh not in studic: # 判断系统内是否有该学号
        print('---此学号不存在!请重新输入:---')
    else:
        name = input('请输入姓名: ')
        height = input('请输入身高(cm): ')
        weight = input('请输入体重(kg): ')
        bj = input('请输入班级: ')
        tel = input('请输入电话: ') # 重新输入即完成信息修改
        studic[xh] = {
     'name': name, 'height(cm)': height, 'weight(kg)': weight, 'class': bj, 'tel': tel} # 存入字典
        print('---已成功修改学生信息!---')

def delete(): # 删除函数
    xh = input('请输入学生学号: ')
    if xh not in studic: # 判断系统是否有该学号
        print('---此学号不存在!请重新输入:---')
    else:
        del studic[xh] # 删除键即删除值 实现删除信息功能
        print('---成功删除该学号学生信息!---')

def main(): # main函数
    while 1:
        print()
        print('欢迎使用学生信息管理系统v1.1!'.center(50))
        username = input('请输入用户名: ')
        password = input('请输入密码: ')
        if  not username or not password:
            print('---用户名或密码不能为空!---')
            continue # 保证登录用户名和密码正确输入
        elif username == 'admin' and password == '123456':
            print('---管理员用户登录成功!---') # 管理员页面
            while 1:
                while 1:
                    print()
                    print('系统菜单'.center(52))
                    print('1.添加学生信息'.center(50))
                    print('2.删除学生信息'.center(50))
                    print('3.修改学生信息'.center(50))
                    print('4.查看学生信息'.center(50))
                    print('5.退出管理系统'.center(50))
                    opt = input('请选择功能: ')
                    if not opt or opt not in '12345' or len(opt) > 1:
                        print('---无效选项!请重新选择:---')
                        continue
                    else:
                        break # 确保正确输入进入功能选项
                if opt in '1':
                    insert() # 调用添加函数
                elif opt in '2':
                    delete() # 调用删除函数
                elif opt in '3':
                    update() # 调用修改函数
                elif opt in '4':
                    query() # 调用查询函数
                else:
                    break # 退出管理系统
            print('---已成功退出!---')
            print('感谢使用学生信息管理系统v1.1!'.center(50))
        else:
            print('---普通用户登录成功!---') # 普通用户页面
            while 1:
                while 1:
                    print()
                    print('欢迎使用学生信息管理系统v1.1!'.center(50))
                    print('系统菜单'.center(52))
                    print('4.查看学生信息'.center(50))
                    print('5.退出管理系统'.center(50))
                    opt = input('请选择功能: ')
                    if not opt or opt not in '45' or len(opt) > 1:
                        print('---无效选项!请重新选择:---')
                        continue
                    else:
                        break # 确保正确输入进入功能选项
                if opt in '4':
                    query() # 调用查询函数
                else:
                    break # 退出管理系统
            print('---已成功退出!---')
            print('感谢使用学生信息管理系统v1.1!'.center(50))
if __name__ == '__main__': # 判断是否为自主运行
    main() # 调用main函数

你可能感兴趣的:(学生信息管理系统v.py,python,pycharm)