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脚本处理空格的方法
Aug 08 Python
Python实现单词翻译功能
Jun 06 Python
[原创]使用豆瓣提供的国内pypi源
Jul 02 Python
Python实现的矩阵转置与矩阵相乘运算示例
Mar 26 Python
如何在Python中实现goto语句的方法
May 18 Python
python logging模块书写日志以及日志分割详解
Jul 22 Python
python 并发编程 非阻塞IO模型原理解析
Aug 20 Python
使用Python将图片转正方形的两种方法实例代码详解
Apr 29 Python
python中threading开启关闭线程操作
May 02 Python
Python之变量类型和if判断方式
May 05 Python
基于tf.shape(tensor)和tensor.shape()的区别说明
Jun 30 Python
Python接收手机短信的代码整理
Aug 02 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函数解决SQL injection
2006/12/09 PHP
php 面向对象的一个例子
2011/04/12 PHP
php中mysql操作buffer用法详解
2015/03/19 PHP
解决nginx不支持thinkphp中pathinfo的问题
2015/07/21 PHP
PHP的Laravel框架结合MySQL与Redis数据库的使用部署
2016/03/21 PHP
php面向对象值单例模式
2016/05/03 PHP
自制PHP框架之设计模式
2017/05/07 PHP
ThinkPHP防止重复提交表单的方法实例分析
2018/05/10 PHP
php传值和传引用的区别点总结
2019/11/19 PHP
js 面向对象的技术创建高级 Web 应用程序
2010/02/25 Javascript
用javascript删除当前行,添加行(示例代码)
2013/11/25 Javascript
jQuery选择器querySelector的使用指南
2015/01/23 Javascript
js实现点击图片改变页面背景图的方法
2015/02/28 Javascript
Javascript刷新窗口方法小结
2015/10/21 Javascript
jquery 表单验证之通过 class验证表单不为空
2015/11/02 Javascript
jQuery版本升级踩坑大全
2016/01/12 Javascript
js实现数组冒泡排序、快速排序原理
2016/03/08 Javascript
JavaScript中windows.open()、windows.close()方法详解
2016/07/28 Javascript
JavaScript每天必学之事件
2016/09/18 Javascript
关于JS Lodop打印插件打印Bootstrap样式错乱问题的解决方案
2016/12/23 Javascript
JS实现简单抖动效果
2017/06/01 Javascript
Angular搜索场景中使用rxjs的操作符处理思路
2018/05/30 Javascript
vue在响应头response中获取自定义headers操作
2020/07/24 Javascript
[00:57]英雄,你的补给到了!
2020/11/13 DOTA
Python实现视频下载功能
2017/03/14 Python
python 显示数组全部元素的方法
2018/04/19 Python
5分钟 Pipenv 上手指南
2018/12/20 Python
Python爬虫实现获取动态gif格式搞笑图片的方法示例
2018/12/24 Python
postman模拟访问具有Session的post请求方法
2019/07/15 Python
聊聊python中的异常嵌套
2020/09/01 Python
EJB需直接实现它的业务接口或Home接口吗,请简述理由
2016/11/23 面试题
高中数学教师求职信
2013/10/30 职场文书
国培教师自我鉴定
2014/02/12 职场文书
公司合作意向书范文
2014/07/30 职场文书
乔布斯辞职信(中英文对照)
2015/05/12 职场文书
Python中相见恨晚的技巧
2021/04/13 Python