Создание зеркального слова на основе симметрии буквы
Я создал эту программу, которая должна отображать зеркальное отображение слова, если оно симметрично. К сожалению, когда я тестирую "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
блок.