zoukankan      html  css  js  c++  java
  • python作业/练习/实战:2、注册、登录(文件读写操作)

    作业要求

    1、实现注册功能
    输入:username、passowrd,cpassowrd
    最多可以输错3次
    3个都不能为空
    用户名长度最少6位, 最长20位,用户名不能重复
    密码长度最少8位,最长15位
    两次输入的密码要一致
    注册成功之后,要写到文件里面

    2、登陆功能实现
    最多可以输错3次
    用户名和密码去文件里面取

    提示

    列表list、文件的打开/读/写/关闭、判断、循环

    相关教程

    python学习笔记(二):python数据类型

    python学习笔记(三):python运算符

    python学习笔记(四):python文件操作

    代码范例

    user.txt文件内容格式如下:

    wangxiaoliu,123123123
    xiaoming,44442222
    zhangsan,00998877

    注册:

    f = open('user.txt', 'a+')#打开一个txt文本,a+意思是追加模式,可读可写
    f.seek(0)#将指针移到第1行
    
    res=f.read() #将文本读出来,保存成一个列表
    all_user_name=[]# 定义一个空的元祖,用来装用户名
    
    for r in res.split('
    '): #用换行分隔所有的“用户名密码”
        username=r.split(',')[0]#用逗号分隔用户名和密码,将用户名保存在username中
        all_user_name.append(username)#保存用户名
        print(all_user_name)  # 打印看一下是不是把用户名分离出来了
    
    
    for i in range(3):
        username = input('请输入用户名:').strip()# 去掉两端空格
        password = input('请输入密码:').strip()
        cpassword = input('请重复输入密码:').strip()
        if username==''or password==''or cpassword=='':
            print('账号或密码不能为空')
        elif username in all_user_name:
            print('用户名重复')
        elif len(username)<6 or len(username)>20:
            print('用户名长度为6-20个字符')
        elif len(password)<8 or len(password)>15:
            print('密码长度为8-15个字符')
        elif password!=cpassword:
            print('两次密码不一致')
        else:
            print('恭喜注册成功!')
            f.write('
    '+username+','+password)#写入文本方法
            break
    else:
        print('输入错误次数过多')
    f.close()

     登录(写了两种方法):

     保存成list

    f = open('user.txt', 'a+')
    f.seek(0)
    all=(f.read()) #将分割后的文本保存成一个list
    
    for a in range(3):
        username2 = input('请登录:')
        password2 = input('请输入密码:')
        bb=username2+','+password2
        if bb in all:
            print('登录成功^_^')
            break
        else:
            print('账号或密码错误,请重新输入')
    else:
        print('错误次数过多')
    f.close()

     保存成字典

    all_user={} # 定义一个空的字典
    res = open('users.txt').read() #打开文件
    
    for r in res.split('
    '):# ['username,123456', 'username2,abc123']
        # 用换行分隔所有的“用户名,密码”
    
        if r.split()!='':
            username=r.split(',')[0]#用逗号分隔用户名和密码,单独保存成元素
            pwd=r.split(',')[1]
            all_user[username]=pwd
    
    
    for a in range(3):
        username = input('请登录:')
        pwd = input('请输入密码:')
        aa=username+','+pwd
        if username in all_user:
            if pwd==all_user.get(username):
                print('登录成功^_^')
                break
            else:
                print('账号或密码错误,请重新输入')
        else:
            print('错误次数过多')
  • 相关阅读:
    Android Butterknife(黄油刀) 使用方法总结【转】
    Andriod- 一些包
    Andriod- 学习网站
    Android热点 8.0 ,7.1 ,6.0一7.0 以及6.0以下热点创建到连接完全适配
    Android- 动态修改ToolBar的Menu菜单
    C#- Socket实现服务器与多个客户端通信
    html使用pdf.js途中遇到的坑和坑
    小程序内嵌H5页面和小程序内部页面互相传参和内嵌H5页面的调试
    记录一次Centos7宕机事件
    Spring Boot 2.x实战
  • 原文地址:https://www.cnblogs.com/haifeima/p/9557593.html
Copyright © 2011-2022 走看看