python3學習--註冊登錄小程序
阿新 • • 發佈:2018-08-30
移動文件 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學習--註冊登錄小程序