【发布时间】:2019-08-18 02:42:44
【问题描述】:
我正在尝试练习我的 Python 技能,我知道我对如何处理文件有点不熟悉,所以我决定自学。该代码基本上是创建一个帐户,登录并检查用户并存储在文件中。我知道我的用户并且 pass 正在附加和读取文件。我遇到的问题在我的 if 语句中。我正在使用 if i == user 但 == 表示字面意思。所以我尝试只使用一个=来检查一个变量是否=用户输入的变量,当我这样做时,我得到一个语法错误。我的最后一个问题是当我运行代码时,在他们说用户名不正确的其他语句中,它在控制台中说了 2 或 3 次。这让我感到困惑,因为 else 语句之外没有任何地方是它们的 while 或 for 循环。如果有人可以解释当用户和密码字符串正确时如何让我的 if 语句执行。那太好了。另外,如果您知道我的控制台为什么无缘无故地执行 else: print('username wrong) 3 次。我很想知道
我尝试在我的 for 循环中打印出变量,它确实打印了文件中的字符串。
u = open('users.txt', 'a+')
p = open('pass.txt', 'a+')
does_acc = input('Do you have a account? ')
if does_acc == 'no' or does_acc == 'No':
new_user = input('Username: ')
u.write(new_user + '\n')
new_pass = input('Password: ')
p.write(new_pass + '\n')
sign_in = input('Would you like to sign in? ')
if sign_in == 'yes' or sign_in == 'Yes':
n = open('users.txt', 'r')
m = open('pass.txt', 'r')
lines = n.readlines()
line = m.readlines()
user = input('Username: ')
for i in lines:
print(i)
if i = user:
password = input('Password: ')
for x in lines:
if password == x:
print('secret file opened')
else:
print("{} is not a valid password.").format(password)
else:
print('Username incorrect.')
else:
print('Have a nice day.')
u.close()
p.close()
Do you have a account? yes
Would you like to sign in? yes
Bob
Username: Bob
Username incorrect.
Username incorrect.
【问题讨论】:
-
你的字符串中可能有你看不到的换行符。
-
@MarkRansom 是对的。
readlines()在每一行的末尾留下一个换行符,但input()没有。'Bob'不等于'Bob\n'。