Python使用reversed()函数报TypeError: 'str' object is not callable怎么办?
报错原因
核心问题是变量命名和Python内置类型冲突:
list是Python内置的列表类型构造函数,你在第一次循环中执行list = ''.join(temp_str)时,把list覆盖成了一个字符串类型的变量- 第二次循环执行
temp_str = list(reversed(var))时,此时list已经是字符串,不是可调用的函数/构造器,就会抛出TypeError: 'str' object is not callable的错误
另外你用str做变量名也属于不规范写法,str同样是Python内置的字符串类型名,后续也可能引发同类冲突。
修复代码
修改冲突的变量名,再补充把反转后的单词拼接回完整字符串的逻辑即可:
input_str = "my name is atharva" word_list = input_str.split() result_list = [] for word in word_list: # 也可以直接用更简洁的切片反转写法:reversed_word = word[::-1] reversed_word = ''.join(reversed(word)) result_list.append(reversed_word) result = ' '.join(result_list) print(result)
运行后输出:ym eman si avrahta,符合预期要求。
内容的提问来源于stack exchange,提问作者Atharva
相关产品推荐
相关产品推荐

