Python程序出现TypeError: 'str' object is not callable错误求助
问题分析与解决
错误根源
你第二行代码犯了个关键错误:
print = ('Welcome to Prison break!')
这里你把Python内置的print()函数覆盖成了字符串对象,后面再调用print()输出内容时,实际是在尝试调用一个字符串,所以会抛出TypeError: 'str' object is not callable的错误。
修正后的代码
把第二行的赋值语句改成正常的print()调用,同时可以优化代码逻辑(提前转换输入类型、合并重复判断):
prisoners = int(input('How many player(s): ')) # 提前转成整数,避免重复转换 print('Welcome to Prison break!') if prisoners == 1: print('Welcome solo player, bravest of the brave') elif 2 <= prisoners < 5: print('Welcome prisoners, hold on to each other tight') else: print('Whoops, this game is 1-4 players. ')
额外优化说明
- 提前将输入转换为整数,避免在每个条件分支里重复写
int(prisoners),既简洁又减少出错可能 - 原本最后两个
elif的判断逻辑可以合并为else,因为除了1-4的合法范围,其他情况都属于超出人数限制
内容的提问来源于stack exchange,提问作者aiyoob
相关产品推荐
相关产品推荐

