我正在尝试制作一个用特定数字替换字母或字母组的程序,但是该程序返回“ IndexError:超出范围的字符串索引”。是什么原因造成的?
phr = input('Frase: ')
phr=phr.lower()
out = ''
for pos in range(len(phr)):
frpos=pos+1
if phr[pos]=='h'and phr[frpos]=='e':
out+='1'
if phr[pos]=='h':
out+='2'
print(out)
答案 0 :(得分:0)
您在开始时增加了FRPOS,因此在末尾没有最后一个字符的值。
尝试此,它应该工作:
phr = input('Frase: ')
phr=phr.lower()
out = ''
for pos in range(len(phr)):
frpos=pos
if phr[pos]=='h'and phr[frpos]=='e':
out+='1'
if phr[pos]=='h':
out+='2'
pos + 1
print(out)
答案 1 :(得分:0)
考虑案件aaaah
。
找到“ h”后,您的代码还将检查“ h”之后的位置“ e”。这种情况是导致程序中断的原因。为了解决该问题,一个简单的解决方法是检查“ frpos”是否有效,如下所示:
phr = input('Frase: ')
phr=phr.lower()
out = ''
for pos in range(len(phr)):
frpos=pos+1
if phr[pos]=='h'and frpos<len(phr) and phr[frpos]=='e':
out+='1'
if phr[pos]=='h':
out+='2'
print(out)
欢呼