2016-10-26 83 views
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()  

回答

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,如果你不想讓if y == True塊期間UnboundLocalError後。