gpt4 book ai didi

python - 在 for 循环期间字典调用变量

转载 作者:行者123 更新时间:2023-11-28 22:15:44 24 4
gpt4 key购买 nike

我需要创建一个函数,该函数采用 13 位数字序列,并使用最后一个数字作为模 10 的检查。即 BAF189D234EA2 输入检查 = 2。

使用 A-F 的值(参见下面的权重字典)而不是 ord(char)。因此,当我的循环迭代时,如果它是字符串值,我需要 char 来提取相应的权重字典。我根本不知道如何根据 char 的值从该字典中调用它。

预先感谢您的帮助。

weight={
'A' : '10',
'B' : '11',
'C' : '12',
'D' : '13',
'E' : '14',
'F' : '15',
}

def validater(value):
global userEntry
valSum = 0
i = 0
for char in userEntry:
if i == 12:
break
try:
if char >=0 and char <= 9:
valSum += char * i
i +=1
except TypeError:
valSum += weight[char] * i
i += 1

错误:

Traceback (most recent call last):
line 93, in <module>
if validater(userEntry) ==True:
line 74, in validater
valSum += weight[char] * i
TypeError: unsupported operand type(s) for +=: 'int' and 'str'

编辑:谢谢,我通过删除整数周围的引号来更改字典。现在我收到一个关键错误 1

最佳答案

您的错误是由于您的字典值都是字符串而不是整数,因此将它们更改为整数可以解决您的问题,但由于您映射的只是以 10 为基数的十六进制数字,您也可以只进行转换你自己

valSum += int(char, 16) * i

关于python - 在 for 循环期间字典调用变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52672130/

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