zoukankan      html  css  js  c++  java
  • day8&作业

    一、实现用户注册功能
    思路:
    用户输入用户名、密码
    将用户输入的内容按照固定的格式,比如:egon:123,存入文件
    可以往一个文件中重复注册新的用户名和密码
    附加:
    1、对输入的用户名进行合法性监测,不能以数字开头,且如果输入的用户名已存在于文件中则要求用户重新输入
    2、对输入的密码进行合法性监测,密码的长度至少6位,并且不能包含特殊字符*&$
    while 1:
    name = input('注册用户名:')
    if not name[0].isdigit():
    with open('用户名单', mode='rt', encoding='utf-8') as f:
    for line in f:
    if name == (line.strip().split(':'))[0]:
    print('该用户名已被注册')
    break
    else:
    password = input('密码:')
    if len(password) > 5:
    if '*' not in password and '&'
    not in password and '$' not in password:
    confirm_password = input('再次输入密码:')
    if password == confirm_password:
    print('注册成功!')
    with open('用户名单', mode='at', encoding='utf-8') as f:
    f.write('%s:%s ' % (name, password))
    break
    else:
    print('两次输入密码不一致!')
    else:
    print('密码不能包含特殊字符!')
    else:
    print('密码长度至少为6位')
    else:
    print('用户名不能以数字开头!')

    二、实现用户验证功能更:
    思路:
    用户输入账号密码,从文件中读出账号密码,与用户输入的进行比对
    附加:新建黑名单文件,同一个账号名输错三次则将用户名写入黑名单文件中,如果用户输入的用户名存在于黑名单中则直接退出
    count = 0
    flag = 1
    while flag:
    username = input('请输入用户名:')
    with open('黑名单', mode='r', encoding='utf-8') as f:
    for line in f:
    if username == line.strip():
    print('该用户已被锁定')
    flag = 0
    break
    else:
    password = input('请输入密码:')
    with open('用户名单', mode='r', encoding='utf-8') as f:
    for line in f:
    if username == line.strip().split(':')[0] and password == line.strip().split(':')[1]:
    print('登陆成功!')
    flag = 0
    break
    else:
    print('密码错误!')
    count += 1
    if count == 3:
    with open('黑名单', mode='a', encoding='utf-8') as f:
    f.write('%s ' % username)
    day8内容:
    w:只写模式(不可读;不存在则创建;存在则清空内容)
    a:只追加写模式(在文件不存在时会创建空文档,文件存在会将文件指针直接移动到文件末尾)
    在w和a模式下,操作文件内容的模式如果为b的话,先编码成二进制再写入文件
    .writelines:可以将可迭代的数据类型写入到文件里
    .write:可以将字符串数据类型写入到文件里
  • 相关阅读:
    小程序隐藏或自定义 scroll-view滚动条
    小程序携带参数(单个或多个)跳转页面(实例)
    小程序接收from表单数据(实例)
    js返回上一页
    项目部署到线上后台进不去
    微信小程序取消button边框线
    阿里iconfont图库官网网址
    php 发送邮件(实例)
    PHP 数组序列化,转为字符串
    面向对象的设计原则
  • 原文地址:https://www.cnblogs.com/endlesswaltz/p/9683395.html
Copyright © 2011-2022 走看看