本文实例讲述了python检查字符串是否是正确ISBN的方法。分享给大家供大家参考。具体实现方法如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
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程序设计有所帮助。