у меня проблема с моим кодом, включающим в себя текстовые файлы и проверку наличия в нем определенных имен - PullRequest
0 голосов
/ 03 октября 2019

Я создал текстовый файл с именами, и мои коды работают, но у меня есть большой недостаток, и я хочу знать, есть ли какой-нибудь способ, которым я мог бы решить эту проблему. Пусть имена называются «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)

1 Ответ

0 голосов
/ 03 октября 2019

Прежде чем ответить на вопрос, я хотел бы отметить, что оператор if, который вы используете в цикле while, не нужен. Если цикл while выполняется, то гарантированно будет истинным значение if.

Теперь, чтобы решить вашу проблему, просто сделайте следующее: при добавлении имени в файл добавьте пробел до и после него. Затем, проверяя, присутствует ли имя в файле, добавьте пробел перед вводом от пользователя. Пробелы будут функционировать как начальный и конечный символы, что означает, что «частичное совпадение» не произойдет. Вы также можете использовать любой символ, который вы хотите, а не просто пробел.

Я надеюсь, что это поможет вам двигаться вперед!

...