大佬们求助,147过不去,是不是少了什么判别式
查看原帖
大佬们求助,147过不去,是不是少了什么判别式
523250
Famkyroo楼主2021/5/28 00:12

小白一名,自己看网课学了几天,目前只会用split来提取数字,看了一下其他大佬写的代码,不知道是自己前面校验码的计算有问题还是后面的判断出错了,希望大佬指导一下。

num=input()
a=num.split('-')[0]    #提取ISBN纯数字
b=num.split('-')[1]
c=num.split('-')[2]
d=num.split('-')[3]
e=a+b+c#前9位
f=1
sum=0
for i in e:    #计算校验码
    sum+=int(i)*f
    f+=1
mod=sum%11     #校验码结果
if d=='X':  #以输入的校验码是否为X来讨论
    if mod==10:
        mod='X'  #如果校验码等于10转化为X
    if str(mod)==d:
        print('right')
    else:
        print(a+'-'+b+'-'+c+'-'+str(mod))
else:      #d!='X'
    if mod==int(d):
        print('right')
    else:
        if mod==10:
            print(a+'-'+b+'-'+c+'-'+'X')
        else:
            print(a + '-' + b + '-' + c + '-' + str(mod))
2021/5/28 00:12
加载中...