ISBN是国际标准书号的简称,10位ISBN的最后一位为校验位python
ISBN是国际标准书号的简称,10位ISBN的最后一位为校验位(由前9位计算得到),校验方法为,前9位数字从左到右分别与10到2相乘,然后求和,得到的和再对11进行整除,得到余数(即对11进行取模运算),再用11减去余数即为校验位。如果结果为10用X表示,结果为11用0表示。例如,对7111267768进行ISBN校验位的运算,前9位为711126776。710+19+18+17+26+65+74+73+6*2和为197,197%11为10,11-10为1,即上述ISBN用10位ISBN表示应该为7111267761
编写程序,输入一个10位ISBN书号,判断是否为有效ISBN号,若是,输出有效,若不是,输出无效,并输出正确校验码的ISBN号
可以先将输入的ISBN号去除中间的横杠,然后进行计算和判断校验码。具体代码如下:
pythonisbn = input().replace('-', '') # 去除横杠
s = 0 # 计算和
for i in range(9):s += int(isbn[i]) * (10 - i)
checksum = (11 - s % 11) % 11 # 计算校验码
if checksum == int(isbn[-1]) or (checksum == 10 and isbn[-1] == 'X'):print('正确')
else:correct_isbn = isbn[:-1] + ('X' if checksum == 10 else str(checksum))print('无效')print(correct_isbn)
这里先计算前9位的数字对应的权值和,然后根据校验规则计算校验码。最后将计算得到的校验码与输入的ISBN号中的校验位进行比较,如果相同则输出“正确”,否则输出“无效”,并输出正确的ISBN号。
ISBN是国际标准书号的简称,10位ISBN的最后一位为校验位python相关推荐
- 国际标准书号 (International Standard Book Number, ISBN)是专门为识别图书等文献而设计的国际编号
下面是某校2021届转专业计算机科学与工程学院笔试试题. ISBN是由13位数字组成,最后一位是校验码.如图,校验码的计算方法是:用1分别乘ISBN的前12位中的奇数位(从左边开始数起),用3分别乘以 ...
- 编程练习 P124 6.2 java国际标准书号ISBN是由13位数字组成,分为5段,如978-7-111-50690-4是一个合法的书号。编写程序,用户输入一个字符串书号,检查该书号是否合法。
import java.util.Scanner;public class ISBNValidator {public static void main(String[] args) {Scanner ...
- html的国际标准智商测试,iq测试题国际标准30道 国际标准IQ测试多少分合格
说到国际标准IQ测试多少分合格,想必大家都有一定了解,有人问国际标准智力测试题及答案,另外,还有人想问国际标准智商测试题,这到底是怎么回事?其实国际标准智商测试的答案全部,下面就一起来了解下iq测试题 ...
- 国际标准分类法ICS
国际标准分类法(International ClassificationforStandards,简称ICS)是由国际标准化组织编制的标准文献分类法. 它主要用于国际标准.区域标准和国家标准以及相关标 ...
- 国际著名标准化组织及ISO/IEC/ASTM/IEEE等国际标准免费下载地址
在知识经济时代,标准已被称作世界的通用语言.你看不懂语言没关系,但是一个标准的图形符号,你就能看明白,很快能GET到你需要的信息.在没有标准的世界,不仅人与人之间难以沟通,机器.零部件以及产品之间的联 ...
- 国际标准智商测试题 (转载)
国际标准智商测试题 (转载) 智商,就是IQ(Intelligence Quotient的简称),通俗地可以理解为智力,是指数字.空间.逻辑.词汇.创造.记 忆等能力,它是德国心理学家施特恩在191 ...
- 2005国际通信展将于10月18-22日举行
2005国际通信展将于10月18-22日举行 10月18日至22日,在主办方信息产业部.国际贸易促进委员会和承办方中国邮电器材集团公司.中国国际展览中心集团公司的共同筹划下,"2005年中国 ...
- Java黑皮书课后题第6章:*6.21(电话按键盘)国际标准的字母/数字匹配图如编程练习题4.15所示。编写一个测试程序,提示用户输入字符串形式的电话号码。程序将字母(大写或小写)翻译成数字
6.21(电话按键盘) 题目 题目描述与运行示例 破题 代码 题目 题目描述与运行示例 6.21(电话按键盘)国际标准的字母/数字匹配图如编程练习题4.15所示,编写一个方法,返回给定大写字母的数字, ...
- 首个由国内发起的分布式消息领域的国际标准OpenMessaging一周年回顾
近日,浩鲸科技和京东先后宣布正式加入Linux基金会旗下OpenMessaging开源标准社区,并承诺将与OpenMessaging开源标准社区共同努力营造良好的开源环境,打造厂商中立,面向 Clou ...
最新文章
- 网校mysql设计规范_网校数据库设计
- 趣学python3(9)-range
- 使用“override”声明的成员函数不能重写基类成员_C++日志(三十五)虚基类与其子类的构造函数...
- uva1624knots
- AspNet Core下利用 app-metrics+Grafana + InfluxDB实现高大上的性能监控界面
- 我知道关于马云的故事,他不成功都难
- spring MVC 及 AOP 原理
- java 中时间的比较 用compareTo方法
- sparse-to-dense.pytorch 代码主流程
- 【Power Query】使用Excel抓取淘宝天猫所有类目分类和cateId对应关系
- Zcash下一次NU5升级——基于Halo 2
- CF128A - Statues
- 安卓java模拟器跳过付费,不用花钱买android手机,电脑端Android模拟器安装使用教程...
- java 按英文名排序_输入5种水果的英文名称,用java编写一个程序,输出这些水果名称按照字典出现的先后循序输出?...
- Magento后台产品列表添加自定义属性
- smartgit官方下载地址
- 能被2、3、4、5、6、7、8、9等数整除的数的特征
- Task3 | HLM | 高收入个体更吝啬吗
- Echarts 交错正负轴
- 顺丰丰桥接口开发-java(工具类)