小白一名,自己看网课学了几天,目前只会用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))