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('错误次数过多')
  • 相关阅读:
    C++ 二元作用域运算符(::)
    C 桶排序
    C 递归的选择排序
    C 归并算法
    C 可变长实参列表
    C条件编译的一些例子
    C实现将中缀算术式转换成后缀表达式
    Activiti6-数据库配置-dbconfig(学习笔记)
    idea在Terminal中使用maven指令
    Spring Boot的web开发
  • 原文地址:https://www.cnblogs.com/haifeima/p/9557593.html
Copyright © 2011-2022 走看看