Проблемы с подсчетом контрольной цифры ISBN - PullRequest
0 голосов
/ 15 марта 2012

Может ли кто-нибудь предложить какую-либо помощь, почему следующий код всегда возвращает один и тот же номер контрольной цифры?

    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()

любая информация или советы о том, как я могу улучшить код, или просто почему он постоянно набирает одну и ту же цифру (9) независимо от того, что вводится. Спасибо

Ответы [ 3 ]

3 голосов
/ 15 марта 2012

Я думаю for digit in '1234567890' должно быть for digit in request.

1 голос
/ 15 марта 2012

Глядя на свой код, вы видите, что вы принимаете значение request от пользователя, но после проверки его длины вы больше ничего с ним не делаете.Нет никакой возможности изменить вывод этой программы.

0 голосов
/ 15 марта 2012

Вы, похоже, ничего не вычисляете по переменной, которую вы запрашиваете у пользователя. Запрос переменной не используется в последующем коде ...

...