注册账号小程序
# -*- coding:utf-8 -*- #created by wangwang import sys import os #提示学生呢输入基本的信息 def sign_in_func(): #目的是改变全局变量 global phone_list global id_list student_data = {} print("欢迎来到本学校".center(50, "-")) print("请先完成学籍注册") name = input("请输入您的姓名:".strip()) sex = input("请输入您的性别:".strip()) phone = input("请输入您的手机号:".strip()) print(phone_list) if phone in phone_list: print("此手机号已经被注册") #退出程序 sys.exit(0) identity = input("请输入您的身份证号;".strip()) if id in id_list: print("此身份证已经被注册") #退出程序 sys.exit(0) #完善studen_data字典信息,并且添加id_list,phone_list信息 student_data["姓名"] = name student_data["性别"] = sex student_data["电话"] = phone student_data["身份证"] = identity id_list.append(identity) phone_list.append(phone) return student_data #输入学生喜欢的课程 def input_favourate_class(student_data): for index, course in enumerate(course_list): print("{0},{1}".format(index, course)) input_number = input("请输入您选择的课程编号:").strip() if input_number.isdigit(): if 0 <= eval(input_number) <= 4: student_data["选择的课是"] = course_list[int(input_number)] else: sys.exit(0) else: sys.exit(0) return student_data # 将输入的数据保存成文件 def write_to_file(filename, data): print(data) with open(filename, "a", encoding = "utf-8") as fp: for item in data: fp.write("{0},{1},".format(item, data[item])) #目的是没完成一次数据输入即加上一个换行 fp.write("\n") #提取文本中的信息,作为电话以及身份证的比较信息 def open_file(filename): global id_list global phone_list with open(filename, "r", encoding = "utf-8") as fp: fp_data = fp.readlines() for line in fp_data: split_data = line.split(",") phone_list.append(split_data[5]) id_list.append(split_data[7]) return phone_list, id_list # 两个列表用于第一次身份检测 id_list = [] phone_list = [] course_list = ["数学","语文","英语","政治"] def main(): global id_list global phone_list #目的是处理第一次输入时,文件中没有数据。只有存在数据文件,才将文件打开。 if os.path.exists("C:/users/mike1/desktop/data.txt"): #这里出现过 phone_list与id_list位置放反了,导致电话重复也监测不出来 phone_list, id_list = open_file("C:/users/mike1/desktop/data.txt") data = sign_in_func() student1 = input_favourate_class(data) write_to_file("C:/users/mike1/desktop/data.txt", student1) if __name__== '__main__': main()
目标:让用户注册,包括电话,以及身份证,如果在文件中已经有相同电话以及身份证,则会报错
如果是第一次输入,则会在桌面生成文件,如果是已经有了数据文件,则新注册的用户,不能与已经有的电话,身份证重复。
可以看到已经有的数据文件发生了改变。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律