Python 基于字母对称性创建镜像单词
我创建了这个程序,如果一个单词是对称的,它应该显示这个单词的镜像。不幸的是,当我测试“TIMOTHY”时,它显示它不能被镜像,我无法理解为什么这不起作用Python 基于字母对称性创建镜像单词,python,string,list-comparison,Python,String,List Comparison,我创建了这个程序,如果一个单词是对称的,它应该显示这个单词的镜像。不幸的是,当我测试“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",
#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()
问题出在这里。“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
mirrors = ["A","H","I","M","O","T","U","V","W","X","Y",
"b","d","i","l","m","o","p","t","v","w","x"]