2016-01-19 3 views
0

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

Continue = input("Do you want to play hangman?").lower() 
while Continue == ("y", "ye", "yes", "yeah").lower(): 
    name = input("What is your name? ") 
    print ("Hello, " + name, "Time to play hangman! You have ten guesses to win!") 
    print ("\n") 
    time.sleep(1) 
    difficulty() 
else: 
    quit 

когда я ввода этого кода я получаю сообщение об ошибке:

while Continue == ("y", "ye", "yes", "yeah").lower(): 

AttributeError: 'tuple' object has no attribute 'lower'

+1

Ошибка вы вывесили не соответствует код (хотя списки не подвергать 'ниже()' метод либо). –

+0

Ответ ответом на непосредственную проблему, как избежать сообщения об ошибке, но у вас больше проблем. Вы запрашиваете только пользовательский ввод 'Continue' один раз, поэтому цикл' while' будет либо выполняться бесконечно, либо никогда. –

+0

'while' следует заменить на' if' .. поскольку есть инструкция 'else' –

ответ

1

AttributeError: 'tuple' object has no attribute 'lower'

Означает, что кортеж (например, (1, 2, 3)) не может быть lower обсаженных, так как lowercasing имеет смысл только для str Инг.

вероятно Вы имели в виду:

while Continue in ("y", "ye", "yes", "yeah"): 
+1

Является ли нижний() даже необходимым? Ввод преобразуется в нижний регистр, поэтому, может быть, просто 'while Continue in (« y »,« ye »,« yes »,« yeah »):' должно быть достаточно –

+0

@ResleyRodrigues, конечно, нет, я не видел линию выше :) – Caridorc

+1

спасибо, что он отлично работает сейчас –

Смежные вопросы