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进阶教程之模块(module)介绍
Aug 30 Python
wxPython使用系统剪切板的方法
Jun 16 Python
python调用fortran模块
Apr 08 Python
Python实现生成随机日期字符串的方法示例
Dec 25 Python
在PyCharm导航区中打开多个Project的关闭方法
Jan 17 Python
Python后台开发Django的教程详解(启动)
Apr 08 Python
Flask框架工厂函数用法实例分析
May 25 Python
Django密码存储策略分析
Jan 09 Python
pytorch 实现删除tensor中的指定行列
Jan 13 Python
python 解决print数组/矩阵无法完整输出的问题
Feb 19 Python
Python Tornado之跨域请求与Options请求方式
Mar 28 Python
Python通过fnmatch模块实现文件名匹配
Sep 30 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表单提交表单名称含有点号(.)则会被转化为下划线(_)
2011/12/14 PHP
浅析php中json_encode()和json_decode()
2014/05/25 PHP
php文件缓存类汇总
2014/11/21 PHP
php基于Snoopy解析网页html的方法
2015/07/09 PHP
PHP弹出对话框技巧详细解读
2015/09/26 PHP
PHP引用返回用法示例
2016/05/28 PHP
微信第三方登录(原生)demo【必看篇】
2017/05/26 PHP
JQuery 学习笔记 element属性控制
2009/07/23 Javascript
jQuery 下拉列表 二级联动插件分享
2012/03/29 Javascript
深入理解JavaScript系列(15) 函数(Functions)
2012/04/12 Javascript
js 弹出框只弹一次(二次修改之后的)
2013/11/26 Javascript
Jquery给基本控件的取值、赋值示例
2014/05/23 Javascript
JavaScript作用域链示例分享
2014/05/27 Javascript
纯javascript代码实现计算器功能(三种方法)
2015/09/07 Javascript
第二次聊一聊JS require.js模块化工具的基础知识
2016/04/17 Javascript
JS实现线性表的顺序表示方法示例【经典数据结构】
2017/04/11 Javascript
Node.js 8 中的 util.promisify的详解
2017/06/12 Javascript
基于Vuejs和Element的注册插件的编写方法
2017/07/03 Javascript
通过vue-cli来学习修改Webpack多环境配置和发布问题
2017/12/22 Javascript
使用Vue自定义指令实现Select组件
2018/05/24 Javascript
JS使用canvas中的measureText方法测量字体宽度示例
2019/02/02 Javascript
Node.JS如何实现JWT原理
2020/09/18 Javascript
Python中用altzone()方法处理时区的教程
2015/05/22 Python
python中sys模块是做什么用的
2020/08/16 Python
通过Django Admin+HttpRunner1.5.6实现简易接口测试平台
2020/11/11 Python
HTML5时代CSS设置漂亮字体取代图片
2014/09/04 HTML / CSS
6号汽车旅馆预订:Motel 6
2018/02/11 全球购物
俄罗斯品牌服装和鞋子的在线商店:KUPIVIP
2019/10/27 全球购物
DOUGLAS波兰:在线销售香水和化妆品
2020/07/05 全球购物
高中地理教学反思
2014/01/29 职场文书
求职信模板标准格式范文
2014/02/23 职场文书
品德评语大全
2014/05/05 职场文书
培训通知书模板
2015/04/17 职场文书
Golang解析JSON对象
2022/04/30 Golang
Docker容器harbor私有仓库部署和管理
2022/08/05 Servers
js 实现验证码输入框示例详解
2022/09/23 Javascript