Я довольно новичок в python и действительно застрял в этом.python: индекс индекса вне диапазона в коде
В принципе, я должен сделать чек-код, чтобы проверить последний алфавит NRIC. Мой код работает нормально, пока есть 7 номеров (например, они должны быть). Однако мой учитель просто помог мне узнать, что мой код не работает, когда число начинается с 0. Ниже мой код.
def check_code():
nricno = int(input("Please enter your NRIC(numbers only). If you don't type an nric number, this code will fail."))
NRIC = [ int(x) for x in str(nricno) ]
a = NRIC[0]*2
b = NRIC[1]*7
c = NRIC[2]*6
d = NRIC[3]*5
e = NRIC[4]*4
f = NRIC[5]*3
g = NRIC[6]*2
SUM = int(a + b + c + d + e + f +g)
remainder = int(SUM % 11)
leftovers = int(11 - remainder)
rightovers = leftovers - 1
Alphabet = "ABCDEFGHIZJ"
checkcode = chr(ord('a') + rightovers)
print(checkcode)
check_code()
Так предполагается, что NRIC рассчитывается на изображении ниже.
Что значит 'номер, который начинается с 0' означает? – Julien
Если связанное изображение является вашим фактическим назначением, вы не делаете его должным образом. Вам нужно написать функцию, которая берет строку NRIC в качестве аргумента. Ваша функция не должна вызывать функцию 'input()', и ей нужно вернуть код проверки. Логика в коде, который вы отправили, _not_ правильно конвертирует номер проверки в код проверки. –