gpt4 book ai didi

python - 我得到 'int' 对象不可下标

转载 作者:行者123 更新时间:2023-12-04 09:41:10 24 4
gpt4 key购买 nike

我是 python 新手,起初我正在尝试为我的项目实现代码我的错误代码是“int”类型的对象没有 len() 这是我的代码并添加了 str 来解决问题

xored_value = ord(Mblocks[i%len(Mblocks)]) ^ ord(Cblocks[i%len(Cblocks)])

现在我得到'int'对象如果在这一行中是不可下标的

xored_value = ord(Mblocks[i%len(str(Mblocks))]) ^ ord(Cblocks[i%len(str(Cblocks))])

如果我将其更改为

xored_value = ord(Mblocks(i%len(str(Mblocks)))=)) ^ ord(Cblocks(i%len(str(Cblocks))))

我得到 'str' object is not callable .

这是我的全部功能:

def xor_two_str(Mblocks,Cblocks):
xored = []
for i in range(max(len(str(Mblocks)), len(str(Cblocks)))):
xored_value = ord(Mblocks[i%len(str(Mblocks))]) ^ ord(Cblocks[i%len(str(Cblocks))])
xored.append(hex(xored_value)[2:])
return ''.join(xored)

请问有什么帮助吗?

最佳答案

所以,我确信您传递的 Mblocks 和 Cblocks 参数是整数。由于它是一个整数,如果你尝试对它的一部分进行切片,你会得到 TypeError

> 100[1]
TypeError: 'int' object is not subscriptable

让我们逐个检查。
在第一种方法中:
> xored_value = ord(Mblocks[i%len(Mblocks)]) ^ ord(Cblocks[i%len(Cblocks)])

> error1 = len(Mblocks)
TypeError: object of type 'int' has no len()

因为 Mblocks 是整数,所以整数没有 len 函数

在变化 2 中,
您纠正了第一个错误,但是:
> xored_value = ord(Mblocks[i%len(str(Mblocks))]) ^ ord(Cblocks[i%len(str(Cblocks))])

> error2 = Mblocks[i%len(str(Mblocks))]
> error2 = Mblocks[some_int]
TypeError: 'int' object is not subscriptable

在变化 3 中:
xored_value = ord(Mblocks(i%len(str(Mblocks)))=)) ^ ord(Cblocks(i%len(str(Cblocks))))

> error3 = Mblocks(callingWithParameter)

只需在 python something(withbraces)正在调用 某事 .这里也发生了同样的事情

所以最简单的解决方案是使 的 Mbraces 和 Cbraces| 在你处理任何事情之前就像这里是解决方案:
def xor_two_str(Mblocks,Cblocks):
Mblocks = str(Mblocks)
Cblocks = str(Cblocks)
xored = []
for i in range(max(len(Mblocks), len(Cblocks))):
xored_value = ord(Mblocks[i%len(Mblocks)]) ^ ord(Cblocks[i%len(Cblocks)])
xored.append(hex(xored_value)[2:])
return ''.join(xored)

关于python - 我得到 'int' 对象不可下标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62321916/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com