Python 奇数类型错误:';int';对象是不可编辑的
因此,我在本页中用python编写了一些问题 代码在我的计算机上运行良好,但当我更新它时,我遇到了这个错误。 请注意,它的python 3.4.3Python 奇数类型错误:';int';对象是不可编辑的,python,Python,因此,我在本页中用python编写了一些问题 代码在我的计算机上运行良好,但当我更新它时,我遇到了这个错误。 请注意,它的python 3.4.3 def flap_display(lines, rotors): baseString = "ABCDEFGHIJKLMNOPQRSTUVWXYZ ?!@#&()|<>.:=-+*/0123456789" res = [] baseLen = len(baseString) lineLen = le
def flap_display(lines, rotors):
baseString = "ABCDEFGHIJKLMNOPQRSTUVWXYZ ?!@#&()|<>.:=-+*/0123456789"
res = []
baseLen = len(baseString)
lineLen = len(lines)
sLen = len(rotors)
carrier = 0
for item in range(0 , sLen):
if (item < lineLen):
carrier =carrier + rotors[item]
tmp = baseString.index(lines[item])
tmp = tmp + carrier
tmp = tmp % baseLen
res.append( baseString[tmp] )
resS = ''.join(res)
return resS
print (flap_display("CAT", [1,13,27]))
现在我想知道我的代码是否不正确,或者只是网站有问题。
问题解决了!感谢kuro先生总和需要一个iterable:一系列项目,如列表。你给了它一个整数。如果要将转子中的所有整数相加,可以在循环外使用
carrier = sum(rotors)
除了代码之外,只需添加所需的项目:
载体=总和(转子[:lineLen])
这添加了转子的第一个行元素,允许您摆脱讨厌的if语句
您能否调整循环逻辑的其余部分以充分利用这一点?Thr回溯应如下所示: 回溯(最近一次呼叫最后一次): 文件“test1.py”,第17行,在 打印(翻板显示(“CAT”、[1,13,27])) 文件“test1.py”,第10行,在flap_显示中 承运商=承运商+总额(转子[项目]) TypeError:“int”对象不可编辑 而且,正如追踪所说的那样
carrier =carrier + sum(rotors[item])
rotors[item]
显然是一个int,因此不能对其调用sum
,因此出现错误
将上述行替换为:
carrier = carrier + rotors[item]
或者,跳过循环,然后执行以下操作:
carrier = sum(rotors)
现在应该没问题了。完整的堆栈跟踪请说我很糟糕,我添加了它这是完整的跟踪?您在
转子[项目]
上使用的是sum
,我相信是整数。因此,欢迎使用StackOverflow。请阅读并遵循帮助文档中的发布指南。适用于这里。在您发布MCVE代码并准确描述问题之前,我们无法有效地帮助您。关于您的问题,请我们参考非现场来源超出SO标准。我认为应该是carrier=sum(rotors[:min(sLen,lineLen)]
您的建议很有价值,但我想知道您是否误解了我的想法?这是可能的,因为您没有解释您的“想法”。您的代码未记录。您可以通过yourself@Trinh丛明,在您提供的链接中,rotors
是一个列表,其中只有一个元素,而这个元素又是一个列表是提供的。很抱歉,我不能跳过这个循环,因为它是我的方法的一部分。我想你写的,carrier=carrier+rotors
,会产生你刚才提到的错误。我保证我写的是“carrier=carrier+rotors[item]”,但它不起作用!?
carrier = sum(rotors)