while counter == 1:
NUsername = input()+"\n"
Username_list_in_SignUp = Username_list.readlines()
if NUsername in Username_list_in_SignUp:
print("Y")
if NUsername not in Username_list_in_SignUp:
print("N")
1。最初在Username_list中有一个Username调用“Justin”,但是当我第一次运行它时会检查用户名是否重复,但第二次我在Justin中键入时它不检查并为我打印“N” 。我应该如何解决这个问题。
ps:第一次来自stackoverflow
答案 0 :(得分:3)
readlines
将文件指针移动到文件末尾。你应该在循环之前只做一次。无论如何都无需一次又一次地读取文件:
Username_list_in_SignUp = Username_list.readlines() # here!
# or for better contains check performance
# Username_list_in_SignUp = set(Username_list.readlines())
while counter == 1:
NUsername = input()+"\n"
if NUsername in Username_list_in_SignUp:
print("Y")
else: # suffices
# elif NUsername not in Username_list_in_SignUp:
print("N")
对同一文件句柄的readlines
的任何进一步调用都将导致一个空列表,除非你将指针移回,例如通过Username_list.seek(0)
。