1. 程式人生 > >python3學習--註冊登錄小程序

python3學習--註冊登錄小程序

移動文件 Oday import lose exit open 日期 登陸 etime

一、需求:
#1、實現註冊功能
輸入:username、passowrd,cpassowrd
#最多可以輸錯3次
#3個都不能為空
#用戶名長度最少6位, 最長20位,用戶名不能重復
#密碼長度最少8位,最長15位
#兩次輸入的密碼要一致
#註冊成功之後,要寫到文件裏面
#2、登陸功能實現:
#3次
用戶名和密碼你去文件裏面取

二、代碼
‘‘‘
註冊登錄小程序
Author:Test_Lin
‘‘‘

import datetime

#先訪問文件,將文件中的內容存到列表當中
f = open(RegisterUser.txt,a+) #可以寫絕對路徑或者相對路徑。a+代表追加,w會清空文件內容
f.seek(0) #移動文件指針 file_info = f.readlines() print(file_info,file_info) users_info = list() #定義一個空的list存放用戶名 passwd_info = list() #定義一個空的list存放密碼 all_users = list() #定義一個空的list存放所有賬號密碼 #將已存在的用戶名存在一個list中 for i in file_info: all_users.append(i.rstrip()) users_info.append(i.split(
,)[0]) print(all_users,all_users) print(users_info,users_info) #將已存在用戶名的密碼存在一個list中 for i in range(len(all_users)): passwd_info.append(all_users[i].split(,)[1]) print(passwd_info:,passwd_info) #####註冊###### for i in range(3): username = input(請輸入用戶名:) if username.strip() == ‘‘
: print(用戶名不能為空!) elif len(username) > 20: print(用戶名長度最大為20位!請重新輸入。) elif len(username) < 6 and len(username) > 0: print(用戶名長度最少為6位!請重新輸入。) elif username in users_info: print(該用戶已被註冊!) else: password = input(請輸入密碼:) cpassword = input(請輸入確認密碼:) if password != cpassword: print(密碼與確認密碼不一致!請確認。) elif len(password) and len(cpassword) < 8: print(密碼與確認密碼長度最少為8位!,請重新輸入。) elif len(password) and len(cpassword) > 15: print(密碼與確認密碼長度最多為15位!,請重新輸入。) elif password.strip() == ‘‘ or cpassword.strip() == ‘‘: print(密碼不能為空!) else: print(註冊成功!) f.write(\n + username + , + password) #註冊成功的賬號寫入文件 f.flush() # 刷新文件 dict_login = dict(zip(users_info, passwd_info)) dict_login.setdefault(username,password) break else: print(輸入次數過多!) f.close() #####登錄###### today = datetime.date.today() count = 0 while count < 3: count+=1 login_user = input(請輸入登錄用戶名:) login_passwd = input(請輸入登錄密碼:) if login_user in dict_login: if login_passwd == dict_login.get(login_user): print(%s 歡迎登錄,今天的日期是 %s 。 % (login_user, today)) break else: print(賬號密碼有誤!) elif login_user.strip() == ‘‘ or login_passwd.strip() == ‘‘: # 賬號密碼為空判斷,且賬號為空不計次數 print(賬號或密碼不能為空!) count -= 1 else: print(賬號密碼有誤!) else: print(\n) print(賬號密碼錯誤3次,請聯系管理員!)

運行結果:

C:\Python34\python.exe C:/Users/Administrator/PycharmProjects/day3/RegisterLogin.py
file_info [testlin1,12345678\n, testlin2,12345678\n, testlin3,12345678]
all_users [testlin1,12345678, testlin2,12345678, testlin3,12345678]
users_info [testlin1, testlin2, testlin3]
passwd_info: [12345678, 12345678, 12345678]
請輸入用戶名:testlin4
請輸入密碼:1234
請輸入確認密碼:1234
密碼與確認密碼長度最少為8位!,請重新輸入。
請輸入用戶名:testlin4
請輸入密碼:1234qwer
請輸入確認密碼:1234qwer
註冊成功!
請輸入登錄用戶名:testlin4
請輸入登錄密碼:1234qwer
testlin4 歡迎登錄,今天的日期是 2018-08-30 。

Process finished with exit code 0

三、總結:

0、思路:

(1)將文件中的用戶讀取到兩個list1

(2)將整體的用戶名及密碼讀取到一個list2

(3)遍歷list3並使用 .append 、.split 來生成密碼list3

(4)使用循環來進行登錄驗證,其中字典中新增一個k-v,使用.setdefault

(5)兩個list可以合並轉換為一個dict,使用dict_login = dict(zip(users_info, passwd_info))

1、重難點

字符串、list的操作

python3學習--註冊登錄小程序