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中用split()方法分割字符串的使用介绍
May 20 Python
深入讲解Java编程中类的生命周期
Feb 05 Python
spyder常用快捷键(分享)
Jul 19 Python
Python 列表理解及使用方法
Oct 27 Python
浅谈django orm 优化
Aug 18 Python
Python爬虫实现爬取百度百科词条功能实例
Apr 05 Python
基于Numpy.convolve使用Python实现滑动平均滤波的思路详解
May 16 Python
python and or用法详解
Jun 26 Python
解决python replace函数替换无效问题
Jan 18 Python
python中threading开启关闭线程操作
May 02 Python
Python基于xlrd模块处理合并单元格
Jul 28 Python
使用Python实现NBA球员数据查询小程序功能
Nov 09 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
咖啡的传说和历史
2021/03/03 新手入门
使用bcompiler对PHP文件进行加密的代码
2010/08/29 PHP
php中CI操作多个数据库的代码
2012/07/05 PHP
PHP简单实现欧拉函数Euler功能示例
2017/11/06 PHP
textarea的value是html文件源代码,存成html文件的代码
2007/04/20 Javascript
用javascript来实现动画导航效果的代码
2007/12/16 Javascript
JavaScript中圆括号()和方括号[]的特殊用法疑问解答
2013/08/06 Javascript
vue项目部署上线遇到的问题及解决方法
2018/06/10 Javascript
vue防止花括号{{}}闪烁v-text和v-html、v-cloak用法示例
2019/03/13 Javascript
浅谈VUE防抖与节流的最佳解决方案(函数式组件)
2019/05/22 Javascript
解决vue的过渡动画无法正常实现问题
2019/10/31 Javascript
vue.js路由mode配置之去掉url上默认的#方法
2019/11/01 Javascript
浅析微信小程序自定义日历组件及flex布局最后一行对齐问题
2020/10/29 Javascript
在antd4.0中Form使用initialValue操作
2020/11/02 Javascript
[09:33]2015国际邀请赛第四日TOP10
2015/08/08 DOTA
在Python中使用itertools模块中的组合函数的教程
2015/04/13 Python
Python socket编程实例详解
2015/05/27 Python
Python中函数eval和ast.literal_eval的区别详解
2017/08/10 Python
Python二叉树定义与遍历方法实例分析
2018/05/25 Python
基于数据归一化以及Python实现方式
2018/07/11 Python
python执行精确的小数计算方法
2019/01/21 Python
django的分页器Paginator 从django中导入类
2019/07/25 Python
Python configparser模块操作代码实例
2020/06/08 Python
Python操作word文档插入图片和表格的实例演示
2020/10/25 Python
Python tkinter之ComboBox(下拉框)的使用简介
2021/02/05 Python
HTML5 的新的表单元素(datalist/keygen/output)使用介绍
2013/07/19 HTML / CSS
英国国家美术馆商店:National Gallery
2019/05/01 全球购物
人事行政主管岗位职责
2013/12/22 职场文书
环保建议书作文
2014/03/12 职场文书
优秀食品类广告词
2014/03/19 职场文书
学校对教师的评语
2014/04/28 职场文书
2014年行政助理工作总结
2014/11/19 职场文书
平凡的世界读书笔记
2015/06/25 职场文书
《小蝌蚪找妈妈》教学反思
2016/02/23 职场文书
golang日志包logger的用法详解
2021/05/05 Golang
利用 Python 的 Pandas和 NumPy 库来清理数据
2022/04/13 Python