本文实例讲述了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程序设计有所帮助。