我的代码涉及文本文件并检查其中是否包含某些名称时遇到问题

i have a problem with my code involving text files and checking if certain names are in it

我制作了一个包含名称的文本文件,我的代码可以正常工作,但有一个很大的缺陷,我想知道它们是否可以解决这个问题 issue.Lets 说名称是 'bob' 'jim' 'mark'。如果输入'ar',它会让你输入,因为ar在文本文件中。谢谢你的任何时间。


import sys

namefile=open("names.txt","r")
filenames=namefile.read()
namefile.close

if name1 in filenames:
    print("Welcome",name1)
else:
    print("ACCESS DEINED")
    sys.exit(0)

name2=str(input("What is the name of player2? "))

if name2 in filenames:
    while name2==name1:
        if name2==name1:
            print("This name is already taken, please choose another.")
            name2=str(input("What is the name of player2? "))

if name2 in filenames:
    print("Welcome",name2)
else:
    print("ACCESS DENIED")
    sys.exit(0)

在回答问题之前,我想指出您在while 循环中使用的if 语句是不必要的。如果while循环执行,则if保证为真

现在,要解决您的问题,只需执行以下操作:为文件添加名称时,在其前后添加 space。然后,在检查文件中是否存在名称时,在用户输入的前后添加 space。 spaces 将用作开始和结束字符,这意味着不会发生 "partial matches"。您还可以使用任何您想要的字符,而不仅仅是 space。

我希望这能帮助你前进!