0

次のコードが常に同じチェックデジット番号を返す理由について、誰か助けてもらえますか?

    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)を返す理由に関する情報やヒント。ありがとうございました

4

3 に答える 3

3

for digit in '1234567890'あるべきだと思いますfor digit in request

于 2012-03-14T20:42:45.133 に答える
1

コードを見るとrequest、ユーザーからの の値を受け入れていることがわかりますが、その長さを確認した後は、それに対して他に何もしていません。このプログラムの出力が変わる可能性はありません。

于 2012-03-14T20:45:53.420 に答える
0

ユーザーに尋ねる変数について何も計算していないようです。後続のコードでは変数リクエストが使用されていません...

于 2012-03-14T20:45:28.413 に答える