zoukankan      html  css  js  c++  java
  • python实现用户登录、注册实例

    python面向函数式编程,模拟用户登录验证、注册的代码实现。

    主要有以下两个文件:

    1、user.txt文档文件,相当于数据库的用户信息表,主要是记录用户名和密码。

    注意:1)此文档需要与.py文件放在同一个路径下。

       2)用户名、密码在存储时,是以$符号区别开。

    2、模拟用户登录验证、注册的代码实现。

     1 #!/usr/bin/env python
     2 # -*- coding:utf-8 -*-
     3 
     4 def login(username, password):
     5     """
     6     用于用户登录验证
     7     :param username: 用户名
     8     :param password: 密码
     9     :return: True,登录成功;False,登录失败。
    10     """
    11     with open("user.txt", "r", encoding="utf-8") as f:
    12         for line in f:
    13             line = line.strip()  #默认strip无参数,会去掉首尾空格、换行符;有参数则去除指定值
    14             line_list = line.split("$")   #以$符号提取用户名和密码
    15             if username == line_list[0] and password == line_list[1]:
    16                 return True
    17             else:
    18                 return False
    19 
    20 def register(username, password):
    21     """
    22     用户注册
    23     :param username:用户名
    24     :param password:密码
    25     :return: True,注册成功
    26     """
    27     with open("user.txt", "a", encoding="utf-8") as f:
    28         temp = "
    " + username + "$" + password   #  "
    "换行符
    29         f.write(temp)
    30     return True
    31 
    32 def user_exsit(username):
    33     """
    34     注册时,判断用户名是否存在
    35     :param username:用户名
    36     :return:True, 用户名已存在
    37     """
    38     with open("user.txt", "r", encoding="utf-8") as f:
    39         for line in f:
    40             line = line.strip()
    41             line_list = line.split("$")
    42             if username == line_list[0]:
    43                 return True
    44         return False
    45 
    46 def main():
    47     print("欢迎您使用本系统,请输入你进行操作选项。")
    48     inp = input("1.登录;2.注册。请输入编号: ")
    49     if inp == "1":
    50         times = 1
    51         while True:
    52             if times == 4:
    53                 print("输入3次用户名或密码不正确,请在一小时后再重试。")
    54                 break
    55             user = input("请输入你的用户名:")
    56             pwd = input("请输入你的密码:")
    57             is_login = login(user, pwd)
    58             if is_login:
    59                 print("恭喜您!系统登录成功。")
    60             else:
    61                 print("用户名或密码不正确。")
    62             times += 1
    63     if inp == "2":
    64         user = input("请输入你的用户名:")
    65         pwd = input("请输入你的密码:")
    66         if user_exsit(user):
    67             print("用户名已经存在,注册失败!")
    68         else:
    69             ret = register(user, pwd)
    70             if ret:
    71                 print("注册成功!")
    72             else:
    73                 print("注册失败!")
    74 
    75 main()
    View Code
  • 相关阅读:
    [转]一键安装藏隐患,phpStudy批量入侵的分析与溯源
    Vue Cli安装以及使用
    全局安装 Vue cli3 和 继续使用 Vue-cli2.x
    [转]局域网共享一键修复 18.5.8 https://zhuanlan.zhihu.com/p/24178142
    DELPHI中千万别直接使用CreateThread ,建议使用BeginThread(在C++中无大问题,可是到了DELPHI中情况就不一样了)
    [转]【Delphi】 Thread.Queue与Synchronize的区别
    如何使用Windows Library文件进行持久化
    chromium中的性能优化工具syzyProf
    [转]室友靠打游戏拿30万offer,秘密竟然是……
    .NET中的三种Timer的区别和用法
  • 原文地址:https://www.cnblogs.com/june-L/p/11601069.html
Copyright © 2011-2022 走看看