转换整数变量为字符串时出现“str对象不可调用”错误
抱歉,如果这个问题已经被问过了,我一直在翻找以前的问题,但找不到答案。我对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。