编程语言
首页 > 编程语言> > python编写一个函数tans2ISBN13,对传入的10位ISBN书号(字符串类型)转换为13位ISBN书号(字符串类型)进行返回

python编写一个函数tans2ISBN13,对传入的10位ISBN书号(字符串类型)转换为13位ISBN书号(字符串类型)进行返回

作者:互联网

【问题描述】

编写一个函数tans2ISBN13,对传入的10位ISBN书号(字符串类型)转换为13位ISBN书号(字符串类型)进行返回

【输入形式】
【输出形式】
【样例输入】

7-302-41058-5

【样例输出】

978-7-302-41058-4

【样例说明】

转换方法如下:

在原十位的基础上加上了978。最后一位为检验码,取值范围为0~9,由前12位通过以下计算公式算出:

从左至右12位数字,奇数位数字乘以1,偶数位数字乘以3,再将乘积相加,对10求余,最后求10与余数的差

若差值为0~9,则检验码为对应数字

若差值为10,则检验码为0

【评分标准】






def tans2ISBN13(isbn10):
isbn = '978' + ''.join(isbn10[:-1].split('-'))
result = sum(map(lambda i: int(i[0]) * int(i[1]), zip(isbn, '131313131313'))) % 10
checksum = 0 if 10 - result == 10 else 10 - result
return '-'.join((isbn[:3], isbn[3], isbn[4:7], isbn[7:], str(checksum)))

def  main():
        isbn10  =  input()
        print(tans2ISBN13(isbn10))

main()



标签:10,ISBN,isbn10,书号,isbn,字符串,tans2ISBN13
来源: https://www.cnblogs.com/ljychengdu/p/16286359.html