-4

コードでISBN(DIGIT)を確認すると:check_digit_13(2000003294107)

def check_digit_13(isbn):
    assert len(isbn) == 12
    sum = 0
    for i in range(len(isbn)):
        c = int(isbn[i])
        if i % 2: w = 3
        else: w = 1
        sum += w * c
    r = 10 - (sum % 10)
    if r == 10: return '0'
    else: return str(r)

エラー :

Traceback (most recent call last):
  File "parser.py", line 16, in <module>
    lk.run(document)
  File "/data/www/crons/lk/parser.py", line 33, in run
    field = lkmapper.all(row, document)
  File "/data/www/crons/mappers/lk.py", line 5, in all
    print isbn.check_digit_13(field[0])
  File "/data/www/crons/libs/isbn.py", line 13, in check_digit_13
    assert len(isbn) == 12
AssertionError
4

2 に答える 2

29
  • 止まる。
  • 考え。
  • 通訳者はあなたに何を伝えようとしていますか?
  • アサーションエラー?
  • どの主張?
  • コードには 1 つしかありません。
  • トレースバックは、どれがどれかを示しています。

関数への入力を確認します。文字列ですか?次に文字数を数えます。幾つか?12? 数えたら13個。

于 2013-07-11T14:30:04.990 に答える