python笔记2:使用python实现一个简单的学生学籍注册程序

需求如下:
1. 要求用户输入姓名、年龄、手机号、身份证号、所选课程,然后为学员完成注册。
2. 手机号、身份证号要保证唯一。
3. 可选课程只能从Python、Linux、网络安全、前端、数据分析这几门里进行选择。
4. 当用户输入错误的手机号、身份证号或课程时,允许用户继续输入。
5. 将注册的学员信息存入文件。
代码如下:
# 学生学籍注册

# 存储学生信息文件
db_file = 'student_info.txt'


# 校验手机号
def check_phone_number(registered_data, phone_number):
    if phone_number in registered_data:
        print('手机号已存在,请重新输入!')
        return True
    return False


# 校验身份证号
def check_id_number(registered_data, id_number):
    if id_number in registered_data:
        print('身份证号已存在,请重新输入!')
        return True
    return False


# 校验课程
def check_course(course):
    if course in ['Python', 'Linux', '网络安全', '前端', '数据分析']:
        return True
    print('你输入的课程有误,只能从[Python、Linux、网络安全、前端、数据分析]中选择!')
    return False


# 将学生信息写入文件
def commit_to_db(file_name, student_info):
    f = open(file_name, 'a')
    # 将学生信息写入文件
    f.write(student_info)
    f.close()


# 读取已注册学生数据
def load_registered_data(file_name):
    # 读取已注册数据
    f = open(file_name, 'r+')
    # 已注册学生信息
    registered_phone_list = []
    registered_id_list = []
    for line in f:
        line_list = line.strip().split(',')
        registered_phone_list.append(line_list[2])
        registered_id_list.append(line_list[3])
    return registered_phone_list, registered_id_list


# 注册
def register():
    # 注册次数
    register_count = 0
    # 循环查询
    while True:
        if register_count != 0:
            is_keep_search = input('是否继续注册:')
            if is_keep_search == 'N' or is_keep_search == 'n':
                print(f'注册结束!共注册{register_count}名学生!')
                break
        # 读取已注册数据
        registered_phone_list, registered_id_list = load_registered_data(db_file)
        # 注册新的学生
        name = input('请输入学生姓名:')
        age = input('请输入学生年龄:')

        while True:
            input_phone_number = input('请输入学生手机号:')
            # 校验手机号
            is_exist_phone_number = check_phone_number(registered_phone_list, input_phone_number)
            # 如果不存在相同的手机号,退出循环
            if not is_exist_phone_number:
                break

        while True:
            input_id_number = input('请输入学生身份证号:')
            # 校验身份证号
            is_exist_id_number = check_id_number(registered_id_list, input_id_number)
            # 如果不存在相同的身份证号,退出循环
            if not is_exist_id_number:
                break

        while True:
            input_course = input('请输入学生所选课程:')
            # 校验课程
            is_valid_course = check_course(input_course)
            # 如果课程合法,退出循环
            if is_valid_course:
                break
        # 记录注册学生信息
        student_info = name + ',' + age + ',' + input_phone_number + ',' + input_id_number + ',' + input_course + '\n'
        # 将学生信息写入文件
        commit_to_db(db_file, student_info)
        # 学生记录数加1
        register_count += 1


# 注册
register()
运行如下:
请输入学生姓名:Jobs
请输入学生年龄:40
请输入学生手机号:137
手机号已存在,请重新输入!
请输入学生手机号:1567
请输入学生身份证号:11011
身份证号已存在,请重新输入!
请输入学生身份证号:16011
请输入学生所选课程:Linux
是否继续注册:y
请输入学生姓名:Tim
请输入学生年龄:35
请输入学生手机号:189
请输入学生身份证号:23011
请输入学生所选课程:Py
你输入的课程有误,只能从[Python、Linux、网络安全、前端、数据分析]中选择!
请输入学生所选课程:Python
是否继续注册:n
注册结束!共注册2名学生!
保存到文件的内容如下:

student_info .txt

jack,22,137,371523,Linux
rose,21,138,11011,Python
tom,5,139,11012,网络安全
jerry,3,140,11015,网络安全
amy,18,123,11018,数据分析
alex,19,156,12011,Python
Luck,21,144,13011,Linux
Jobs,40,1567,16011,Linux
Tim,35,189,23011,Python

Have fun!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容