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 图片验证码代码分享
Jul 04 Python
Nginx搭建HTTPS服务器和强制使用HTTPS访问的方法
Aug 16 Python
python记录程序运行时间的三种方法
Jul 14 Python
Python基于xlrd模块操作Excel的方法示例
Jun 21 Python
OpenCV+python手势识别框架和实例讲解
Aug 03 Python
Python3爬虫之自动查询天气并实现语音播报
Feb 21 Python
Python实现的读取文件内容并写入其他文件操作示例
Apr 09 Python
pandas基于时间序列的固定时间间隔求均值的方法
Jul 04 Python
python同义词替换的实现(jieba分词)
Jan 21 Python
python手写均值滤波
Feb 19 Python
一文解决django 2.2与mysql兼容性问题
Jul 15 Python
基于logstash实现日志文件同步elasticsearch
Aug 06 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
phpstorm配置Xdebug进行调试PHP教程
2014/12/01 PHP
php使用CURL伪造IP和来源实例详解
2015/01/15 PHP
php+ajax实时刷新简单实例
2015/02/25 PHP
使用phpstorm和xdebug实现远程调试的方法
2015/12/29 PHP
基于thinkPHP3.2实现微信接入及查询token值的方法
2017/04/18 PHP
怎么用javascript进行拖拽
2006/07/20 Javascript
js 数值项目的格式化函数代码
2010/05/14 Javascript
jQuery 版元素拖拽原型代码
2011/04/25 Javascript
JS中toFixed()方法引起的问题如何解决
2012/11/20 Javascript
按下回车键指向下一个位置的一个函数代码
2014/03/10 Javascript
js实现右下角提示框的方法
2015/02/03 Javascript
浅析JavaScript事件和方法
2015/02/28 Javascript
微信小程序  modal弹框组件详解
2016/10/27 Javascript
jQuery实现Select下拉列表进行状态选择功能
2017/03/30 jQuery
vue 运用mock数据的示例代码
2017/11/07 Javascript
浅谈angular4实际项目搭建总结
2017/12/01 Javascript
javascript回调函数详解
2018/02/06 Javascript
JavaScript原型链与继承操作实例总结
2018/08/24 Javascript
vue项目中实现的微信分享功能示例
2019/01/21 Javascript
React如何实现浏览器打印部分内容详析
2019/05/19 Javascript
解决vue-cli webpack打包开启Gzip 报错问题
2019/07/24 Javascript
js布局实现单选按钮控件
2020/01/17 Javascript
JavaScript进阶(三)闭包原理与用法详解
2020/05/09 Javascript
python批量下载图片的三种方法
2013/04/22 Python
python获取各操作系统硬件信息的方法
2015/06/03 Python
Python基于回溯法子集树模板解决马踏棋盘问题示例
2017/09/11 Python
pytorch多GPU并行运算的实现
2019/09/27 Python
CSS3 透明色 RGBA使用介绍
2013/08/06 HTML / CSS
HTML5 画布canvas使用方法
2016/03/18 HTML / CSS
如何使用amaze ui的分页样式封装一个通用的JS分页控件
2020/08/21 HTML / CSS
工程现场管理求职自荐信
2013/10/02 职场文书
计算机大学生的自我评价
2013/10/15 职场文书
优秀员工个人的自我评价
2013/11/29 职场文书
优秀中职教师事迹材料
2014/08/26 职场文书
毕业生对母校寄语
2015/02/26 职场文书
个人培训总结
2015/03/05 职场文书