pythonissodiffi 2019-11-04 10:38 采纳率: 50%
浏览 475
已采纳

求解一道循环与组合数据类型题

isbn=input()
r_isbn=isbn[0:4]+isbn[5:6]+isbn[7:10]+isbn[11:16]+isbn[-1]
num=0
b=0
n=0
for i in range(12):
    s=int(r_isbn[i])
    if s%2 == 1:
        b += s
    else:
        n += 3*s
    num+=b+n
num%=10
mod =10-num
if mod==10:
    if isbn[-1]=='0':
        print('Right')
    else:
        print(isbn[0:-1]+'0')
else:
    if isbn[-1]==mod:
        print('Right')
    else:
        print(isbn[0:-1]+mod)

```【问题描述】
    每一本正式出版的图书都有一个ISBN号码与之对应。自2007年开始,ISBN码包括13位数字和4位分隔符,其中符号'-'就是分隔符(键盘上的减号),13位书号的最后一位数字为稽核号,数值范围由0至9,其计算方法如下:
        (1) 用1分别乘书号的前12位数字中的奇数位,用3乘以偶数位;(去掉分隔符-后的位数)
        (2)将各乘积相加,求出总和;
        (3)将总和除以10,得出余数;
        (4)将10减去余数后即为稽核号。如相减后的数值为10,稽核号则为0。
【输入形式】
        一个字符串,代表一本书的ISBN号码
【输出形式】
        假如输入的ISBN号码的识别码正确,那么输出“Right”;否则,按照规定的格式,输出正确的ISBN号码(包括分隔符'-')。
【样例输入】
        978-7-121-28484-3![图片说明](https://img-ask.csdn.net/upload/201911/04/1572835025_885686.jpg)

【样例输出】
        978-7-121-28484-7
  • 写回答

3条回答 默认 最新

  • 二心TOT 2019-11-04 11:14
    关注

    判断ISBN是否合法就不写了,大概写了功能实现,有问题可私聊

    isbn=input('请输入ISBN号码:')
    
    def is_right(isbn):
        isbn_num = isbn.split('-')
        num = []
        for i in range(len(isbn_num)-1):
            num+= isbn_num[i]
        for j in range(len(num)):
            if (j+1)%2 != 0:
                num[j] = int(num[j])
            else:
                num[j] = int(num[j])*3
    
        sum = 0
        for m in num:
            sum += m
        if sum%10 == 0 and int(isbn_num[-1]) == 0:
            print("Right")
        elif 10 - sum%10 == int(isbn_num[-1]):
            print("Right")
        else:
            print(isbn[:-1]+str(10 - sum%10))
    
    is_right(isbn)
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
  • ¥15 ubuntu虚拟机打包apk错误
  • ¥199 rust编程架构设计的方案 有偿
  • ¥15 回答4f系统的像差计算
  • ¥15 java如何提取出pdf里的文字?