Python列表函数无输出且报'str'对象不可调用错误求助
问题分析与解决
错误根源
你碰到的TypeError: 'str' object is not callable错误,完全是这行代码的问题:
if __name__ == "__Main__"():
这里存在两个明显错误:
- Python的主模块标识符是全小写的
__main__,不是首字母大写的__Main__,大小写不匹配会导致主执行块的条件不成立,这也是你初始运行无输出的原因——代码定义了函数但根本没执行。 - 末尾多了一对
(),这相当于把字符串"__Main__"当成函数去调用,字符串本身不能被调用,自然抛出错误。
修正后的完整代码
def create_list(): return ["Playstation", "Xbox", "Steam", "iOS", "Googleplay"] def get_info(my_list): return (my_list[0], my_list[-2], len(my_list)) def get_partial(my_list): return my_list[1:4] def get_last_three(my_list): new_list = my_list[-3:] new_list.reverse() return new_list def double_list(my_list): return (my_list * 2) def amend(my_list): my_list[1] = "None" my_list.append("Bye") return my_list if __name__ == "__main__": test_list = create_list() print(test_list) print(get_info(test_list)) print(get_partial(test_list)) print(get_last_three(test_list)) print(double_list(test_list)) print(amend(test_list))
预期运行输出
修正后执行代码,控制台会依次输出:
- 原始创建的列表
- 由列表第一个元素、倒数第二个元素、列表长度组成的元组
- 列表索引1到3的切片结果(遵循左闭右开规则)
- 列表最后三个元素反转后的新列表
- 原始列表重复两次的新列表
- 修改第二个元素为"None"并追加"Bye"后的列表
内容的提问来源于stack exchange,提问作者DarkPhobos
相关产品推荐
相关产品推荐

