新手小白 python之路 Day1 (简单的登陆和注册功能实现)

python学习网 2017-07-14 18:09:02

简单的登陆注册功能

新手第一次发博客,有什么不对请大家多多见谅!!

下面就直接上需求:

        实现一个登陆注册功能
               提示是否拥有账号 有跳转登陆 没有跳转注册
        注册
               检查文件中是否有相同的账号名
               注册成功后跳转到登陆
        登陆
               输入用户名和密码
               认证成功后显示欢迎登陆
               三次失败是锁定账号

需求也比较简单,但实际上做起来还是遇到许多的问题,我这边主要用到的知识点大概就是 对文件的操作  json对象  字典 等

大致的思路 我是分别写了五个函数

fileRead() 文件读取
FileWrite()文件写入
FileModify()文件修改
Register()注册
Login()登陆

来实现整个功能的,话不多说直接上代码了
#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Author: linghanchujian

"""
  实现一个登陆注册功能
     提示是否拥有账号 有跳转登陆 没有跳转注册
  注册    
  检查文件中是否有相同的账号名
  注册成功后跳转到登陆
  登陆
  输入用户名和密码
  认证成功后显示欢迎登陆
  三次失败是锁定账号
"""
import os
import json
import getpass

DATAJSON = '' #临时用来存放数据
"""
文件的读取
"""
def FileRead():
    LoginAndRegistrationData = open("G:/Data.txt","r")
    if os.path.getsize("G:/Data.txt")!= 0:
        global DATAJSON  # 全局变量
        DATAJSON = json.loads(LoginAndRegistrationData.read())
        # DATAJSON = LoginAndRegistrationData.read()
        # print(DATAJSON)
    LoginAndRegistrationData.close()
    pass
"""
文件的写入
"""
def FileWrite(DATAJSON,userName,passWord):
    """
    直接打开一个txt文件没有就创建Data文件
    """
    LoginAndRegistrationData = open("G:/Data.txt", "w")
    Subscript = 1
    if DATAJSON != '':
        for d in DATAJSON:
            Subscript += 1
        DATAJSON["User"+str(Subscript)] = {"UserName":userName,"Password":passWord,"isLocking":False}
    else:
        DATAJSON = {"User1":{"UserName":userName,"Password":passWord,"isLocking":False}}
    JsonData = json.dumps(DATAJSON, ensure_ascii=False)
    LoginAndRegistrationData.write(JsonData)
    LoginAndRegistrationData.close()
    # print(Subscript)
    pass
"""
文件的修改
"""
def FileModify(n):
    # 对文件进行修改
    DATAJSON[str(n)]["isLocking"] = True
    # 对文件进行储存
    LoginAndRegistrationData = open("G:/Data.txt", "w")
    JsonData = json.dumps(DATAJSON, ensure_ascii=False)
    LoginAndRegistrationData.write(JsonData)
    LoginAndRegistrationData.close()
    pass
"""
注册程序
"""
def Register():
    print("------------欢迎来注册!!---------")
    RegisterUserName = input("注册账号:")
    if DATAJSON != '':
        for d in DATAJSON:
            if DATAJSON[d]["UserName"]==RegisterUserName:
                print("该账号已被注册!!!")
                Register()
                return ;
    RegisterPassWord = input("注册密码:")
    try:
     FileWrite(DATAJSON,RegisterUserName,RegisterPassWord)
    finally:
        print("注册成功!!")
        Login()
    pass
"""
登陆程序
"""
def Login():
    print("------------欢迎来到登陆!!-----------")
    isUserName = True
    LoginUser = input("账号:")
    for d in DATAJSON:
        # print(d)
        # print(DATAJSON[d]["UserName"]+"and"+LoginUser)
        if LoginUser == DATAJSON[d]["UserName"]:
            isUserName = False
            if DATAJSON[d]["isLocking"]==True:
                print("该账号已被锁定,请更换账号!!")
                Login()
                return
            else:
                for i in range(3):
                    if i>0:
                        print("密码错误你还有"+str(3-i)+"次机会")
                    LoginPassword = input("密码:")
                    if DATAJSON[d]["Password"]==LoginPassword:
                        print("登陆成功!!")
                        return
                    else:
                        if i == 2:
                            print("三次机会用完,该账号已被锁定!!")
                            FileModify(d)
                            Login()
    else:
        if isUserName:
            print("没有该账号!!")
            Login()
    pass

FileRead()
print(DATAJSON)
YesAndNo = input("是否拥有账号?y/n\n")

if YesAndNo == 'y':
    Login()
elif YesAndNo == 'n':
    Register()
else:
    print("谢谢你的使用!!")
    exit()

 

阅读(843) 评论(0)