风百默 发表于 2022-3-2 13:53:01

这个第三题为什么我运行的得不到正确结果?

本帖最后由 风百默 于 2022-3-2 13:56 编辑

isdkz 发表于 2022-3-2 13:53:02

本帖最后由 isdkz 于 2022-3-2 14:25 编辑

那是因为你的第61到63行代码(行数根据你的图片),每个 x 都乘以 2 到 11 然后加了一遍,

因为 y 的取值在内循环里面,你可以用enumerate函数,

它可以根据你给定的起始值,来对你的每个数迭代出相应的索引,故对你的代码修改如下:

def ISBN(n):
    copy = str(n)
    c =
    c = c[::-1]
    sum1 = 0
    for i,x in enumerate(c, start=2):      # 注意这里
      sum1 = i*x+sum1
    for h in :
      sum2 = sum1+h
      if sum2%11 == 0:
            if sum2%11 == 0:
                if h == 10:
                  trueISBN = copy+'x'
                else:
                  trueISBN = copy+str(h)
            else:
                continue
    return (trueISBN)
for num in :
    trueISBN = ISBN(num)
    print(trueISBN)

风百默 发表于 2022-3-2 15:15:39

isdkz 发表于 2022-3-2 14:23
那是因为你的第61到63行代码(行数根据你的图片),每个 x 都乘以 2 到 11 然后加了一遍,

因为 y 的取 ...

谢谢
页: [1]
查看完整版本: 这个第三题为什么我运行的得不到正确结果?