2

我创建了这个程序,如果它是对称的,它应该显示一个单词的镜像。不幸的是,当我测试“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()    
4

1 回答 1

5
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

于 2016-10-26T15:24:29.090 回答