1. 程式人生 > >登錄、註冊、刪除小練習

登錄、註冊、刪除小練習

print 一個 報錯 and 轉載 use 正則表達 正則表達式 tab

#編寫過程中遇到的問題:

SyntaxError: (unicode error) ‘unicodeescape‘ codec can‘t decode bytes in position 14-15: truncated \uXXXX escape

window 讀取文件可以用\,但是在字符串中\是被當作轉義字符來使用,所以’d:\a.txt’會被轉義成’d:\a.txt’這是正確路徑,所以不會報錯。而‘E:\DSX\LX\day4\username.txt‘

中經過轉義之後可能就找不到路徑的資源了,例如:\u可能轉成unicode字符串了,所以導至路徑找不到報錯誤;

兩咱解決辦法:1、在路徑中加\\;2、在路徑前面加r:r‘E:\DSX\LX\day4\username.txt‘;

r/R:非轉義的原始字符串
與普通字符相比,其他相對特殊的字符,其中可能包含轉義字符,即那些,反斜杠加上對應字母,表示對應的特殊含義的,比如最常見的”\n”表示換行,”\t”表示Tab等。而如果是以r開頭,那麽說明後面的字符,都是普通的字符了,即如果是“\n”那麽表示一個反斜杠字符,一個字母n,而不是表示換行了。
以r開頭的字符,常用於正則表達式,對應著re模塊。
---------------------
作者:SmallisBig
來源:CSDN
原文:https://blog.csdn.net/u010496169/article/details/70045895
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!

user_info = {} #存放所有的用戶
with open(E:\DSX\LX\day4\\username.txt) as f:
    for line in f:
        # niuhanyang,123456\n
        line = line.strip()
        temp  = line.split(,)
        username = temp[0]
        pwd = temp[1]
        user_info[username]=pwd
for i in range(3):
    choice = input(
請輸入你的選擇 1、登錄 2、註冊 3、刪除).strip() if choice==1: username = input(username:).strip() pwd = input(pwd:).strip() if username and pwd: if username in user_info: if user_info.get(username)==pwd: #get獲取的value值=pwd print(登錄成功) else: print(賬號密碼錯誤!) else: print("user not found!") else: print(賬號密碼不能為空!) elif choice==2: username = input(username:).strip() pwd = input(pwd:).strip() cpwd = input(cpwd:).strip() if username and pwd and cpwd: if username in user_info: print(該用戶已經被註冊!) else: if pwd==cpwd: user_info[username]=pwd print(恭喜,註冊成功!) print(user_info) else: print(兩次輸入的密碼不一致!) else: print(不能為空!) elif choice==3: username = input(username:).strip() if username: if username in user_info: user_info.pop(username) print(刪除成功!) else: print(不能為空!) else: print("輸入有誤,請重新輸入") else: with open(users.txt,a+) as fw: fw.seek(0) for usname,pwd in user_info.items(): fw.write(usname+,+pwd+\n)

登錄、註冊、刪除小練習