【问题标题】:Creating a mirrored word based on symmetry of letter根据字母的对称性创建镜像词
【发布时间】:2016-10-26 15:21:03
【问题描述】:

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

【问题讨论】:

    标签: python string list-comparison


    【解决方案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"]
    

    此外,如果您不想稍后在if y == True 块期间获得UnboundLocalError,则应该在循环之前执行y = False

    【讨论】:

      猜你喜欢
      • 2015-09-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-05
      • 1970-01-01
      • 2022-10-25
      • 1970-01-01
      相关资源
      最近更新 更多