python检查字符串是否是正确ISBN的方法


Posted in Python onJuly 11, 2015

本文实例讲述了python检查字符串是否是正确ISBN的方法。分享给大家供大家参考。具体实现方法如下:

def isISBN(isbn): 
  """Checks if the passed string is a valid ISBN number.""" 
  if len(isbn) != 10 or not isbn[:9].isdigit(): 
    return False 
  if not (isbn[9].isdigit() or isbn[9].lower() == "x"): 
    return False 
  tot = sum((10 - i) * int(c) for i, c in enumerate(isbn[:-1])) 
  checksum = (11 - tot % 11) % 11 
  if isbn[9] == 'X' or isbn[9] == 'x': 
    return checksum == 10 
  else: 
    return checksum == int(isbn[9]) 
ok = """031234161X 0525949488 076360013X 0671027360 0803612079 
    0307263118 0684856093 0767916565 0071392319 1400032806 0765305240""" 
for code in ok.split(): 
  assert isISBN(code) 
bad = """0312341613 052594948X 0763600138 0671027364 080361207X 0307263110 
     0684856092 0767916567 0071392318 1400032801 0765305241 031234161 
     076530Y241 068485609Y""" 
for code in bad.split(): 
  assert not isISBN(code) 
print "Tests of isISBN()passed."

希望本文所述对大家的Python程序设计有所帮助。

Python 相关文章推荐
Python检测QQ在线状态的方法
May 09 Python
Python入门学习之字符串与比较运算符
Oct 12 Python
Python 出现错误TypeError: ‘NoneType’ object is not iterable解决办法
Jan 12 Python
python3 实现验证码图片切割的方法
Dec 07 Python
Django框架使用mysql视图操作示例
May 15 Python
详解利用OpenCV提取图像中的矩形区域(PPT屏幕等)
Jul 01 Python
Python读取实时数据流示例
Dec 02 Python
浅谈Pytorch torch.optim优化器个性化的使用
Feb 20 Python
python中线程和进程有何区别
Jun 17 Python
Selenium关闭INFO:CONSOLE提示的解决
Dec 07 Python
Django cookie和session的应用场景及如何使用
Apr 29 Python
Python使用openpyxl批量处理数据
Jun 23 Python
Python读取Excel的方法实例分析
Jul 11 #Python
Python实现分割文件及合并文件的方法
Jul 10 #Python
Python写入数据到MP3文件中的方法
Jul 10 #Python
Python将阿拉伯数字转换为罗马数字的方法
Jul 10 #Python
Python自动登录126邮箱的方法
Jul 10 #Python
Python获取邮件地址的方法
Jul 10 #Python
python实现中文分词FMM算法实例
Jul 10 #Python
You might like
将时间以距今多久的形式表示,PHP,js双版本
2012/09/25 PHP
基于php导出到Excel或CSV的详解(附utf8、gbk 编码转换)
2013/06/25 PHP
PHP代码优化之成员变量获取速度对比
2014/02/28 PHP
浅谈关于PHP解决图片无损压缩的问题
2017/09/01 PHP
PHP中的输出echo、print、printf、sprintf、print_r和var_dump的示例代码
2020/12/01 PHP
Extjs Ext.MessageBox.confirm 确认对话框详解
2010/04/02 Javascript
Javascript 八进制转义字符(8进制)
2011/04/08 Javascript
javascript中的变量作用域以及变量提升详细介绍
2013/10/24 Javascript
javascript异步编程的4种方法
2014/02/19 Javascript
一个css与js结合的下拉菜单支持主流浏览器
2014/10/08 Javascript
javascript遇到html5的一些表单属性
2015/07/05 Javascript
极力推荐一款小巧玲珑的可视化编辑器bootstrap-wysiwyg
2016/05/27 Javascript
JS设计模式之惰性模式(二)
2017/09/29 Javascript
200行代码实现blockchain 区块链实例详解
2018/03/14 Javascript
vue项目国际化vue-i18n的安装使用教程
2018/03/14 Javascript
Vue项目中使用better-scroll实现一个轮播图自动播放功能
2018/12/03 Javascript
微信小程序 textarea 层级过高问题简单解决方案
2019/10/14 Javascript
使用vuex存储用户信息到localStorage的实例
2019/11/11 Javascript
ubuntu系统下 python链接mysql数据库的方法
2017/01/09 Python
Python3读取Excel数据存入MySQL的方法
2018/05/04 Python
Django 根据数据模型models创建数据表的实例
2018/05/27 Python
Django实现发送邮件找回密码功能
2019/08/12 Python
pandas数据选取:df[] df.loc[] df.iloc[] df.ix[] df.at[] df.iat[]
2020/04/24 Python
python交互模式基础知识点学习
2020/06/18 Python
Pycharm安装python库的方法
2020/11/24 Python
CSS3实现文本垂直排列的方法
2018/07/10 HTML / CSS
EJB2和EJB3在架构上的不同点
2014/09/29 面试题
生日主持词
2014/03/20 职场文书
青春寄语大全
2014/04/09 职场文书
测控技术自荐信
2014/06/05 职场文书
小学安全工作汇报材料
2014/08/19 职场文书
校外活动方案
2014/08/28 职场文书
传承焦裕禄精神思想汇报2014
2014/09/10 职场文书
小学运动会开幕词
2015/01/28 职场文书
工作总结之小学教师体育工作范文(3篇)
2019/10/07 职场文书
MySQL中的引号和反引号的区别与用法详解
2021/10/24 MySQL