任何一個可以提供任何幫助,至於爲什麼下面的代碼總是返回相同的校驗位是多少?ISBN校驗位計算題
def ISBN():
numlist = []
request = raw_input("Please enter the 10 digit number: ")
if len(request) == 10:
listofnums = [int(digit) for digit in '1234567890']
multipliers = reversed(range(2,12))
multipliednums = [a*b for a,b in zip(listofnums, multipliers)]
print multipliednums
added_result = sum(multipliednums)
print added_result
remainder = added_result % 11
print remainder
check_digit = 11 - remainder
print check_digit
ISBN()
if len(request) != 10:
print "Invalid Input"
ISBN()
ISBN()
如何我可以imptove的代碼,或任何信息或提示就是爲什麼它不斷eturns相同數字(9)無論什麼輸入。 謝謝
一個建議:不要遞歸調用ISBN。如果你想永遠做一些事情,可以使用'while True:'block。如果輸入足夠的ISBN數字,我可以使Python解釋器崩潰。 – DSM 2012-03-14 20:45:29