路飞学城集训营Day05学籍注册代码

本文介绍了一个学籍注册程序的需求,包括用户输入个人信息(姓名、年龄、手机号、身份证号和课程选择),确保手机号和身份证的唯一性,以及从预设课程中选择。程序还包括数据验证和将信息存储在SQLite数据库中的功能。
摘要由CSDN通过智能技术生成

练习题:学籍注册程序 需求:

1. 要求⽤户输⼊姓名、年龄、⼿机号、身份证号、所选课程,然后为学员完成注册

2. ⼿机号、身份证号唯⼀

3. 可选的课程只能从Python、Linux、⽹络安全、前端、数据分析 这⼏⻔⾥选

4. 学员信息存⼊⽂件

# 1. 数据存到文件里的格式
# 姓名,年龄,手机,身份证,学科


# 2.确保手机、身份证,在文件里同样的数据只有一条。手机号和身份证号加载到内存里,
# 可以从文件用户一输入相关列,就到列表里检查。
# 3.选学科时给用户列出来选择,供选择
db_file = "stu_data.db"
def validate_phone(num):
    if not num.isdigit():
        exit("必须输入数字")
    if len(num) != 11:
        exit("必须11位")
    return True
# 注册学籍信息,将所有内容加载到内存中,也就是存到一个字典里
def register_api():  # 注册的程序,并将注册好的信息存到字典里,并将字典作为函数的返回值
    stu_data = {}
    print("欢迎来到路飞学城")
    print("请完成注册")
    name = input("姓名:").strip()
    age = input("年龄:").strip()
    phone = input("手机号:").strip()
    if phone in phone_list:
        exit("该手机号已被注册")
    validate_phone(phone)
    id_number = input("身份证号:").strip()
    if id_number in id_list:
        exit("该身份已被注册")

    course_list = ["python开发", "Linux云计算", "网络安全", "数据分析&及其学习", "前端开发"]
    for index, course in enumerate(course_list):
        print(f"{index}.{course}")

    selected_course = input("选择想学的课程:").strip()
    if selected_course.isdigit():
        selected_course = int(selected_course)
        if 0 <= selected_course < len(course_list):
            picked_course = course_list[selected_course]
        else:
            exit("不合法")
    else:
        exit("不合法")
    stu_data["name"] = name
    stu_data["age"] = age
    stu_data["phone"] = phone
    stu_data["id_number"] = id_number
    stu_data["picked_course"] = picked_course

    return stu_data
# 将注册填写的信息,也就是得到的字典加载到文件中
def  commit_to_db(filename,stu_data):
    f = open(filename,"a")
    row = f"{stu_data["name"]},{stu_data["age"]},{stu_data["phone"]},{stu_data["id_number"]},{stu_data["picked_course"]}\n"
    f.write(row)
    f.close()

# 提取出来文件中的电话和身份信息为两个列表,以供在输入身份和电话信息时进行查询
def load_validate_data(filename):
    f = open(filename)
    phone_list = []
    id_list = []
    for line in f:
        line = line.split(",")
        phone_num = line[2]
        id_num = line [3]
        phone_list.append(phone_num)
        id_list.append(id_num)
    return phone_list,id_list

phone_list,id_list = load_validate_data(db_file)
stu_data = register_api()
print(stu_data)
commit_to_db(db_file,stu_data)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值