转换整数变量为字符串时出现“str对象不可调用”错误

2 投票
1 回答
9007 浏览
提问于 2025-04-18 03:38

抱歉,如果这个问题已经被问过了,我一直在翻找以前的问题,但找不到答案。我对Python也还很陌生。

我想做的是把一个单词和变量r、c写入一个输出文件,并且希望它们之间有一个空格(格式是列表中最长的单词减去我正在查看的单词)。

我试过这样做,但出现了“str对象不可调用”的错误。

row_variable = str(r)

这是我尝试时的错误追踪信息:

Traceback (most recent call last):
File "C:\CS303E\WordSearch.py", line 106, in <module>
  main ()
File "C:\CS303E\WordSearch.py", line 84, in main
  output.write(list_of_words[i]+spaces+str(row_variable)+str(column_variable))
TypeError: 'str' object is not callable

这是我的代码:

# Find longest word in list of words
max_length = 0
for i in list_of_words:
  if len(i) > max_length:
    max_length = len(i)
# Open output file found.txt
output = open('found.txt','w')

# Check for list of words
for i in range(len(list_of_words)):
  flag = False
  for j in range(len(rows)):
    if list_of_words[i] in rows[j]:
      r = j + 1
      c = rows[j].find(list_of_words[i]) + 1
      num_spaces = max_length - len(list_of_words[i])
      spaces = ' ' * num_spaces
      output.write(list_of_words[i])
      flag = True
  for j in range(len(rev_rows)):
    if list_of_words[i] in rev_rows[j]:
      r = j + 1
      c = num_col - rev_rows[j].find(list_of_words[i])
      print(list_of_words[i], r, c)
      flag = True
  for j in range(len(columns)):
    if list_of_words[i] in columns[j]:
      r = j + 1
      c = columns[j].find(list_of_words[i]) + 1
      print(list_of_words[i], c, r) 
      flag = True
  for j in range(len(rev_columns)):
    if list_of_words[i] in rev_columns[j]:
      r = j + 1
      c = num_col - rev_rows[j].find(list_of_words[i])
      print(list_of_words[i], c, r)
      flag = True
  if flag != True:
    print (list_of_words[i],0,0)

相关问题:

1 个回答

23

在你的代码某个地方(不是你在这里贴的那部分),你把一个字符串命名为 str。现在 str 就变成了那个字符串,而不是Python里内置的字符串类型。你试图把这个字符串当成函数或类型来用,结果Python就报错了。

为了避免这个问题,别把你的字符串命名为 str

撰写回答