本程序涉及知识点:
- 调用函数,函数内要有return 返回值
- 文件相关
- f""的含义---我的理解 用于打印带对象的值:例如,print("-------{name},{age}-----")
- if 循环,注意缩进 特别是在循环的时候。if后面如果跟着两个条件,直接写即可。例如:if 0<=index <len(cou_list)
- exit() 数据异常退出的时候,可以用这个方法
- 判断变量是否是数字:a.isdigit()
mode="a"---用于追加,"r"----只读模式
注意后面别忘记写close()方法
记得后面加上解码格式encoding=“utf-8”,否则乱码
-
写入文件,因为本程序在后面追加即可,故用“a”模式
f=open("filename","a",encoding="utf-8")
f.write(list)
.......
f.close()
-
读取文件
这里用到了循环文件里的内容,由于后面加上了换行符,这里以行line来循环
f=open("filename","r",encoding="utf-8")
for line in f:
phone_num=list.append(line[2])
id_num=list.append(line[3])
f.close()
# 要求用户输入姓名、年龄、手机号、身份证号、所选课程,然后为学员完成注册
# 手机号、身份证号唯一
# 可选的课程只能从python,linux,网络安全,前端,数据分析这几门里选
# 学员信息存入文件
dic={}
filename = "stulist.txt"
list_cou = ["python", "linux", "网络安全", "前端", "数据分析"]
phone_list = []
id_list = []
def resgist():
list_sum = None
print("开始注册学籍".center(20,"-"))
name=input("请输入姓名:")
age=input("请输入年龄:")
phone_num=input("请输入电话号码:")
if phone_num in phone_list:
print("该手机号已注册")
phone_num=input("请输入新的手机号:")
id=input("请输入身份证号:")
if id in id_list:
print("该身份证号已注册")
id_num = input("请输入正确的身份证号:")
for index,course in enumerate(list_cou):
print(f"""{index}:{course}""")
index=input("请输入所选课程序号").strip()
if index.isdigit():
index=int(index)
if 0<=index <len(list_cou):
course=list_cou[index]
list_sum=f"{name},{age},{phone_num},{id},{course}"
print(list_sum)
else:
exit("超出序号.......")
else:
exit("非法输入.......")
return list_sum
def save(list_sum):
f=open(filename,"a",encoding="utf-8")
f.write(list_sum+"\n")
f.close()
return filename
def verify(filename):
f=open(filename,"r",encoding="utf-8")
for line in f:
line=line.strip().split(",")
phone_list.append(line[2])
id_list.append(line[3])
f.close()
return phone_list,id_list
phone_list,id_list=verify(filename)
list_sum=resgist()
save(list_sum)
verify(filename)