【发布时间】:2022-01-03 14:27:09
【问题描述】:
我正在尝试通过查看字母来解决检查字母之间距离的问题。我在字典里描述过。我给了“l = 10000”,以便稍后我可以轻松区分正确的分子。我认为这个想法本身很好,但它给了我错误“如果 abs (words [text [i] [j]] - words [text [i] [j + 1]]
我将不胜感激。
代码:
words={'A':0,'B':1,'C':2,'D':3,'E':4,'F':5,'G':6,'H':7,'I':8,'J':9,'K':10,'L':11,'M':12,'N':13,'O':14,'P':15,'Q':16,'R':17,'S':18,'T':19,'U':20,'V':21,'W':22,'X':23,'Y':24,'Z':25,}
text = ['XXUXXTYVXWA', 'YTWYVWUTYA', 'PUOMQVMRNOSNVONOQOQMPPMRTVRSVRUNMOUSVUOTTMNRVQX']
l = 0
t = []
for i in range(0,len(text)):
for j in range(0,len(text[i])):
if abs(words[text[i][j]] - words[text[i][j+1]] < 10):
l = l+1
else:
l = 10000
t.append(l)
l = 0
print(t)
【问题讨论】:
-
j + 1超出范围,请使用range(len(text[i]) - 1)而不是range(0,len(text[i]))。 -
当我给range(len(text[i]) - 1) 程序工作时,但是显示“text”的第三个单词是正确的,即l不显示“1000” 0 ,它只是按顺序计算字母。问题是第三个单词应该是错误的答案,即“10000”