首页 > 编程 > Python > 正文

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

2020-01-04 18:05:08
字体:
来源:转载
供稿:网友

这篇文章主要介绍了python检查字符串是否是正确ISBN的方法,涉及Python针对字符串的相关操作技巧,需要的朋友可以参考下

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

 

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

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

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表