Python代码出现TypeError: 'int' object is not callable错误,寻求技术支持
解决TypeError: 'int' object is not callable及你的字符串反转代码问题
嘿,我来帮你排查这个错误和代码里的问题!
首先说说你遇到的TypeError
这个错误的核心原因几乎可以肯定是:你在运行这段代码之前,不小心把Python内置的len()函数给覆盖成整数了。比如之前可能在控制台或者脚本里写过类似len = 20这样的语句,这时候len就从一个函数变成了int类型,再调用len(string)自然就会报错“整数不能被调用”。
如果是这种情况,你可以先在交互式环境里执行del len来恢复内置的len函数,之后再运行你的代码就不会报这个类型错误了。
然后是代码里的索引越界问题
就算解决了上面的类型错误,你的代码还会触发IndexError,因为字符串的索引是从0开始的:比如一个长度为n的字符串,最后一个字符的索引是n-1,而你一开始把stringLen设为len(string),第一次循环访问string[stringLen]就超出了索引范围。
修正后的代码
这里给你两种修复方式:
方式一:调整循环逻辑
string = "This is a string, but I want to print it backwards" stringLen = len(string) newString = [] # 从最后一个有效索引开始遍历到0 while stringLen > 0: stringLen -= 1 # 先把索引减到有效范围 newString.append(string[stringLen]) result = ''.join(newString) print(result)
方式二:Python式的简洁写法(推荐)
Python的字符串切片可以直接实现反转,一行代码搞定:
string = "This is a string, but I want to print it backwards" print(string[::-1])
运行结果
不管用哪种方式,最终都会输出正确的反转字符串:
sdrawkcab ti tnirp ot tnaw I tub ,gnirts a si sihT
内容的提问来源于stack exchange,提问作者user1599523
相关产品推荐
相关产品推荐

