-
需求:
-
1.用户输入姓名,年龄,手机号,身份证号,所选课程,然后为学员完成注册。
-
2.手机号身份证号唯一
-
3.可选课程只能从python,linux,网络安全,前端,数据分析这几门课里选择
-
4.学员信息存入文件
db_file = "student_data.db"
# def validate_phone(num):#验证手机号规则函数
# if num.isdigit():
# exit("手机号必须是数字")
# if len(num) != 11:
# exit("手机号必须是11位")
# return True
def register_api():
stu_data = {}#初始化一个空列表存储学员信息
print("欢迎来到路飞学车".center(50,"*"))
print("请完成学籍注册")
name = input("姓名:").strip()
age = input("年龄:").strip()
phone = input("手机号:").strip()
#if phone in phone_list:
# exit("该手机已注册")
id_num = input("身份证:").strip()#去掉字符串前后的空白
#if id_num in id_num_list:
# exit("该身份证已注册")
course_list = ["python开发","liunx云计算","大数据"]
for index,course in enumerate(course_list):
print(f"{index}.{course}")
selected_course = input("选择想学的课:")
if selected_course.isdigit():#判断输出的是数字,且把他转为整型
selected_course = int(selected_course)
if selected_course >= 0 and selected_course < len(course_list):#输入选择编号的合法性
picked_course = course_list[selected_course]#选中的课程
else:
print("不合法的选项")
else:
exit("不合法的选项")
stu_data["name"] = name#给字典添加key和值
stu_data["age"] = age
stu_data["phone"] = phone
stu_data["id_num"] = id_num
stu_data["course"] = picked_course
return stu_data
def commint_to_db(filename,stu_data):#commint意思是提交,定义函数字典stu_data的数据写入统计表里
#f = open(filename, "a")
f = open(filename, "a", encoding='UTF-8')
row = f"{stu_data['name']},{stu_data['age']},{stu_data['phone']},{stu_data['id_num']},{stu_data['course']}\n"
f.write(row)
f.close()
# def load_validated_data(filename,encoding='UTF-8'):#验证手机号唯一性函数
# f = open(filename)#打开文件
# phone_list = []#新建空列表
# id_num_list = []
# for line in f:
# line = line.split(",")#以,来分割元素
# phone = line[2]#获取索引为2的元素
# id_num = line[3]#获取索引是3的元素
# phone_list.append(phone)#把元素加入列表
# id_num_list.append(id_num)
# return phone_list,id_num_list#返回列表
# phone_lsit,id_num_list = load_validated_data(db_file)
student_data = register_api()#学生信息函数调用学生注册函数
print(student_data)#打印出学生的字典。
commint_to_db(db_file,student_data)#55把学生信息函数作为参数传递给数据库db函数