Вопрос

Я пытаюсь выучить python и пытаюсь поиграть в палача.Но когда я пытаюсь сравнить предположение пользователя со словом, это не работает.Что я упускаю из виду?

import sys
import codecs
import random

if __name__ == '__main__':
    try:
        wordlist = codecs.open("words.txt", "r")
    except Exception as ex:
        print (ex)
        print ("\n**Could not open file!**\n")
        sys.exit(0)

    rand = int(random.random()*5 + 1)
    i = 0

    for word in wordlist:
        i+=1
        if i == rand:
            print (word, end = '')
            break

    wordlist.close()

    guess = input("Guess a letter: ")
    print (guess) #for testing purposes

    for letters in word:
        if guess == letters:
            print ("Yessssh")

#guessing part and user interface here
Это было полезно?

Решение

В вашем "for word in wordlist"цикл, каждое слово будет заканчиваться новой строкой.Попробуйте добавить word = word.strip() в качестве следующей строки.

Кстати, ваш последний цикл можно было бы заменить на:

if guess in word:
    print ("Yessssh")

Бонусный совет:при добавлении "отладочных отпечатков" часто бывает хорошей идеей использовать repr (особенно при работе со строками).Например, ваша строка:

print (guess) #for testing purposes

Могло бы быть более полезным, если бы вы написали:

print (repr(guess)) #for testing purposes

Таким образом, если в guess, вам будет легче увидеть их в вашем отладочном выводе.

Другие советы

Это то, что я сделал для своей игры "палач":

     for x in range(0, len(secretword)):
           if letter == secretword[x]:
                for x in range(len(secretword)):
                    if secretword[x] in letter:
                         hiddenletter = hiddenletter[:x] + secretword[x] +hiddenletter[x+1:]

     for letter in hiddenletter:
          print(letter, end=' ')

секретное слово - это скрытое слово, которое пользователь пытается угадать.скрытая буква содержит количество "_" в слове:т. е.скрытое письмо = " _ " * len(секретное слово)

это заменяет пробелы правильно угаданными буквами, а затем показывает подчеркивания с буквами в нужных местах я сделал все, что мог...

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top