我制作了一个带有名称的文本文件,我的代码有效,但有一个很大的缺陷,我想知道它们是否可以解决这个问题。假设名称是“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 为真。
现在,要解决您的问题,只需执行以下操作:向文件添加名称时,在其前后添加一个空格。然后,在检查文件中是否存在名称时,在用户输入之后在 an 之前添加一个空格。空格将用作开始和结束字符,这意味着不会发生“部分匹配”。您还可以使用任何您想要的字符,而不仅仅是一个空格。
我希望这可以帮助您继续前进!
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句