各位用户为了找寻关于python检查字符串是否是正确ISBN的方法的资料费劲了很多周折。这里教程网为您整理了关于python检查字符串是否是正确ISBN的方法的相关资料,仅供查阅,以下为您介绍关于python检查字符串是否是正确ISBN的方法的详细内容
本文实例讲述了python检查字符串是否是正确ISBN的方法。分享给大家供大家参考。具体实现方法如下:
? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22def
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程序设计有所帮助。