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('\n'): #用換行分隔所有的“用戶名密碼”
    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('\n'+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('\n'):# ['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('錯誤次數過多')

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM