Создание зеркального слова на основе симметрии буквы

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

#Program for creating a mirrored
#image word#
def main():

    mirrors = ["A","H","I","M","O","T","U","V","W","X","Y"
               "b","d","i","l","m","o","p","t","v","w","x"]

    word = input("Enter in the word you'd like mirrored: ")

    for x in word:
        if x not in mirrors:
            y = True
            break

    if y == True:
        print("Sorry your word can not be mirrored")


    wordlist = ''.join(word[i] for i in range(len(word) -1, -1, -1 ))

    print(wordlist)




main()    

1 ответ

mirrors = ["A","H","I","M","O","T","U","V","W","X","Y"
               "b","d","i","l","m","o","p","t","v","w","x"]

Здесь проблема. "b" следует за "Y" без запятой. Малоизвестная особенность Python заключается в том, что два смежных строковых литерала будут автоматически объединены. Так что ни "Y", ни "b" нет в вашем списке, а "Yb" есть.

Чтобы это исправить, добавьте запятую.

mirrors = ["A","H","I","M","O","T","U","V","W","X","Y",
               "b","d","i","l","m","o","p","t","v","w","x"]

Кроме того, вы должны сделать y = False перед вашей петлей, если вы не хотите получить UnboundLocalError позже во время if y == True блок.

Другие вопросы по тегам