如何使用外部.txt文件验证用户名 - python

所以最近我一直在做一个编码项目,我想使用一个包含所有有效用户名的外部文件(.txt文件)。在这段代码中,我正在验证P1Username是否有效。如果用户名有效,它将继续执行代码的后续部分。如果用户名无效(不在.txt文件中),它将询问他们是否要注册,用户可以在哪里选择注册(名称添加到.txt文件)还是不进行注册(用户称为Player 1)。
问题在于此代码允许输入所有名称为有效名称,并且不输出任何打印语句。有人知道该怎么做吗?

valid=False
username=open("username.txt","r")
lines=username.readlines()
P1Username=input("Enter your username Player 1: ")
for counter in range(len(lines)):
    if P1Username==str(lines[counter]):
        print("Valid username\nHello "+str(P1Username))
        valid=True
        break
    elif valid==False and counter<len(lines):
        next
    elif valid==False and counter>=len(lines):
        enter=""
        while enter!="yes" and enter!="no":
            enter=input("Would you like to register "+P1Username+"? (yes or no) ")
            if enter=="yes":
                username=("username.txt","a")
                username.write(P1Username)
                username.write("\n")
                print(P1Username+" is now a registered login\nHello "+P1Username)
                break
            elif enter=="no":
                P1Username="Player 1"
                print("You did not register the username\nI will refer to you as Player 1")
                break
            else:
                print("Enter yes or no")

python大神给出的解决方案

我建议不要使用for循环,而不是按索引进行for each循环迭代(就像使用计数器一样),如下所示:

valid=False
usernames=open("username.txt","r")
P1Username=input("Enter your username Player 1: ")
for line in usernames.readlines():
    if P1Username in line: 
        valid = True

{go on with your code}

在代码中,您将带用户创建用户的次数与文件中名称的创建次数相同。
使用上面的代码,您随后将验证与过程分开。

我认为这将简化您的代码,从而使修复过程更轻松快捷。

Pycharm失去了视图和模板之间的连接 - python

有一天,我发现一个Django应用程序失去了视图和模板之间的连接。我检查了整个项目,此问题仅得到一个应用程序。函数和模板之间的视图没有连接。模板中没有突出显示代码,模板中没有代码完成,并且模板无法识别标签,例如:{% url%}, <script src="{% static '...'%}"> </…

用大写字母拆分字符串,但忽略AAA Python Regex - python

我的正则表达式:vendor = "MyNameIsJoe. I'mWorkerInAAAinc." ven = re.split(r'(?<=[a-z])[A-Z]|[A-Z](?=[a-z])', vendor) 以大写字母分割字符串,例如:'我的名字是乔。 I'mWorkerInAAAinc”变成…

Python sqlite3数据库已锁定 - python

我在Windows上使用Python 3和sqlite3。我正在开发一个使用数据库存储联系人的小型应用程序。我注意到,如果应用程序被强制关闭(通过错误或通过任务管理器结束),则会收到sqlite3错误(sqlite3.OperationalError:数据库已锁定)。我想这是因为在应用程序关闭之前,我没有正确关闭数据库连接。我已经试过了: connectio…

查找字符串中的行数 - python

我正在创建一个python电影播放器​​/制作器,我想在多行字符串中找到行数。我想知道是否有任何内置函数或可以编写代码的函数来做到这一点:x = """ line1 line2 """ getLines(x) python大神给出的解决方案 如果换行符是'\n',则nlines …

字符串文字中的正斜杠表现异常 - python

为什么S1和S2在撇号位置方面表现不同?S1="1/282/03/10" S2="4/107/03/10" R1="".join({"N\'" ,S1,"\'" }) R2="".join({"N\'…