类型错误:'int'对象在 python 中是可下标的



我正在写一个程序,看看一个单词中是否有三个连续的双字母,比如记账。

当我尝试运行该程序时,我得到错误,TypeError:"int"对象是可订阅的。为什么?

def find_word(string):
    count = 0
    for eachLetter in range(len(string)):
        if eachLetter[count] == eachLetter[count + 1] and eachLetter[count+ 2] == eachLetter[count + 3] and eachLetter[count+ 4] == eachLetter[count + 5]:
            print string
        else:
            count = count + 1

def main():
  try:
  fin = open('words.txt') #open the file
  except:
  print("No file")
  for eachLine in fin:
 string = eachLine
 find_word(string)

if __name__== '__main__':
  main()

您的循环:

for eachLetter in range(len(string)):

将小于字符串长度的0到1的数字分配给变量eachLetter;在这之后,eachLetter[count]就没有意义了。

你是说string[eachLetter]等吗。?

请注意,您还将得到索引错误;例如,当你进入"记账"的第8个字母时,没有字符8+5=13需要检查,你的程序就会爆炸。

由于这似乎是一个家庭作业,我将把它作为一个练习留给你,让你找出如何更快地停止循环5个字符。

这是您的错误:

if eachLetter[count]

这里eachLetterint,因为range返回int列表。

fin = open('words.txt')
string = fin.readline()
def find_word(string):
    for string in fin:
        count = 0
        for count in range(len(string)-5):
              if string[count] == string[count + 1] and string[count+ 2] == string[count + 3] and string[count+ 4] == string[count + 5]:
                 print(string)


def main(fin):
    for string in fin:
        return find_word(string)

main(fin)

相关内容

  • 没有找到相关文章