csp认证真题 201312-2 ISBN号码(python)总结

 

 

ISBN = input()
shibiema = ISBN[-1]        #取识别码
ISBN = ISBN[:-1:]          #对字符串切片,去掉标识码
isbn = list(filter(str.isdigit,ISBN))     #把标识码转为,每个元素都是str类型的列表
isbn = list(map(int,isbn))         #把str转为int类型

s = 0
for i in range(len(isbn)):
    s += isbn[i]*(i+1)
number = s % 11                 #求出标识码

if number == 10:
    if shibiema == 'X':
        print('Right')
    else:
        isbn.append('X')
        isbn.insert(1, '-')
        isbn.insert(5, '-')
        isbn.insert(11, '-')
        isbn = map(str, isbn)
        isbn = "".join(isbn)
        print(isbn)
else:
    if str(number) == shibiema:  #注意:此时的识别码是str类型,要把number也转为str类型,再比较。否则int和str永远都不会相等
        print('Right')
    else:
        isbn.append(number)
        isbn.insert(1,'-')
        isbn.insert(5,'-')
        isbn.insert(11,'-')
        isbn = map(str,isbn)
        isbn = "".join(isbn)
        print(isbn)

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值