[英]I am having trouble understanding the recv command in python? for sockets
[英]i am having trouble with open() command in python
我目前正在為我的實踐開發桌面登錄注冊應用程序,並且在登錄和注冊時遇到了一些問題。 如果我輸入REGISTER
並在f.write()
命令中添加我的信息,它會存儲我的信息,但之后一切都會進行,就像整個文件被格式化一樣(這是注冊問題)。
登錄問題是如果我想檢查文件中的名稱或密碼是否存在(此命令可能是錯誤的)。 我嘗試if login_email and login password in f:
使用if login_email and login password in f:
但它說login_email
和password
不存在。
代碼:
f = open('pass.txt', 'w')
fr = open('pass.txt', 'r')
from time import sleep
login_list = "LOGIN"
register_list = "REGISTER"
if 1 > -3232:
print("Type register for new account\ntype login for login into existing account")
bi = input("==> ")
if bi.upper() in login_list:
print("you are registered?? nice now loginnn!!")
login_1 = input("your username: ")
login_2 = input("your password: ")
if login_1 and login_2 in fr:
print("Nice my program worked??")
exit()
else:
exit()
elif bi.upper() in register_list:
print("you are in register section: ")
sleep(.9)
print("NOTE: Your password should only contain alphabets!")
sleep(4)
reg_1 = input("your username: ")
sleep(.9)
reg_2 = input("your password: ")
sleep(.9)
reg_2v1 = input("confirm password")
if reg_2 == reg_2v1:
f.write(reg_1 + " : " + reg_2 + "\n")
print("now login again,\")
else:
print("invalid password, try again")
else:
print("you gave me the wrong command")
else:
exit()
with
來打開需要使用它的代碼周圍的文件。if login_1 and login_2 in fr:
不是測試用戶名和密碼是否都在文件中的正確方法。 由於運算符優先級,這被解析為if login_1 and (login_2 in fr):
。 這只是檢查login_1
不為空,然后只檢查login_2
是否在文件中。 第二個測試永遠不會成功,因為文件的所有login_2
以換行符結尾,但login_2
不會,所以它們永遠不會匹配。您需要檢查完全格式化的行,包括換行符。
if f'{login_1} : {login_2}\n' in fr:
if bi.upper() in login_list:
似乎可疑。 login_list
不是一個列表,它是一個字符串。 因此,這將檢查bi.upper()
是否是任何子字符串——如果用戶輸入log
或in
或gi
,而不僅僅是login
,它將成功。 這是故意的嗎?完整代碼:
from time import sleep
login_list = "LOGIN"
register_list = "REGISTER"
if 1 > -3232:
print("Type register for new account\ntype login for login into existing account")
bi = input("==> ")
if bi.upper() in login_list:
print("you are registered?? nice now loginnn!!")
login_1 = input("your username: ")
login_2 = input("your password: ")
with open('pass.txt', 'r') as fr:
if f'{login_1} : {login_2}\n' in fr:
print("Nice my program worked??")
exit()
else:
exit()
elif bi.upper() in register_list:
print("you are in register section: ")
sleep(.9)
print("NOTE: Your password should only contain alphabets!")
sleep(4)
reg_1 = input("your username: ")
sleep(.9)
reg_2 = input("your password: ")
sleep(.9)
reg_2v1 = input("confirm password")
if reg_2 == reg_2v1:
with open('pass.txt', 'a') as f:
f.write(reg_1 + " : " + reg_2 + "\n")
print("now login again,")
else:
print("invalid password, try again")
else:
print("you gave me the wrong command")
else:
exit()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.