python3求助

P1055 [NOIP2008 普及组] ISBN 号码

SISULeo @ 2022-11-14 22:17:34

isbn = input().strip()
total = (int(isbn[0]) + 2 * int(isbn[2]) + 3 * int(isbn[3]) + 4 * int(isbn[4]) + 5 * int(isbn[6]) + 6 * int(isbn[7]) + 7
         * int(isbn[8]) + 8 * int(isbn[9]) + 9 * int(isbn[10]))
code = total % 11  #算出最后一位数
if isbn[-1] == "X":
    if code != 10:  #如果最后一位是X,但是算出来不是10就用算出来的数字替换
        print(isbn.replace("X", str(code)))
    elif code == 10:
        print("Right")  #如果算出来是10就说明输入的序列对了
else:
    if int(isbn[-1]) == code:
        print("Right")  #如果最后一位是数字,且最后一位与算出来的相等,说明对了
    elif int(isbn[-1]) != code:
        if code == 10:
            print(isbn[::-1].replace(isbn[0], "X", 1)[::-1])  #算出来的与输入的不相等,且算出来的等于10,用X代替
        else:
            print(isbn[::-1].replace(isbn[0], str(code), 1)[::-1])  #算出来的不为10,用算出来的数字代替

by SISULeo @ 2022-11-14 22:19:59

50分,大佬们帮看看哪里出问题了,或者哪里可以简化,谢谢!!


|