注册账号小程序

# -*- 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()

目标:让用户注册,包括电话,以及身份证,如果在文件中已经有相同电话以及身份证,则会报错

 

 

 

 

如果是第一次输入,则会在桌面生成文件,如果是已经有了数据文件,则新注册的用户,不能与已经有的电话,身份证重复。

 

可以看到已经有的数据文件发生了改变。

 

posted @ 2020-07-30 23:58  看星星的派大星  阅读(179)  评论(0编辑  收藏  举报