2016-10-26 8 views
-4

Я пытаюсь перевести этот псевдокод на Python. Вот псевдокод:Продолжайте получать TypeError: объект 'int' не подлежит индексированию

псевдокод:

FOR Count <- 1 TO 13 DO 
    OUTPUT "Please enter next digit of ISBN: " 
    INPUT ISBN[Count] 
ENDFOR 
CalculatedDigit <- 0 
Count <- 1 
WHILE Count < 13 DO 
    CalculatedDigit <- CalculatedDigit + ISBN[Count] 
    Count <- Count + 1 
    CalculatedDigit <- CalculatedDigit + ISBN[Count] * 3 
    Count <- Count + 1 
ENDWHILE 
WHILE CalculatedDigit >= 10 DO 
    CalculatedDigit <- CalculatedDigit - 10 
ENDWHILE 
CalculatedDigit <- 10 - CalculatedDigit 
IF CalculatedDigit = 10 
    THEN CalculatedDigit <- 0 
ENDIF 
IF CalculatedDigit = ISBN[13] 
    THEN OUTPUT "Valid ISBN" 
    ELSE OUTPUT "Invalid ISBN" 
ENDIF 

Python:

for Count in range(1,13): 
    print("Please enter next digit of ISBN:") 
    ISBN = int(input(">")) 
    ISBN[Count] 
CalculatedDigit = 0 
Count = 1 
while Count < 13: 
    CalculatedDigit = CalculatedDigit + ISBN 
    Count = Count + 1 
    CalculatedDigit = CalculatedDigit + ISBN * 3 
    Count = Count + 1 
while CalculatedDigit >= 10: 
    CalculatedDigit = CalculatedDigit - 10 
    CalculatedDigit = 10 - CalculatedDigit 
if CalculatedDigit == 10: 
    CalculatedDigit = 0 
if CalculatedDigit == ISBN[13]: 
    print("Valid ISBN") 
else: 
    print("Invalid ISBN") 

Я действительно понятия не имею, почему я получаю эту ошибку TypeError: 'INT' объект не подлежит подписке

+1

Что вы пытаетесь сделать? Как вы думаете, в чем проблема? Что вы пробовали? Также см .: http://stackoverflow.com/help/how-to-ask –

ответ

0
ISBN = int(input(">")) 

ISBN - целое число.

ISBN[Count] 

Попытка доступа Поместите Count в ISBN. Но вы не можете, потому что целые числа не subscriptable

Что делать вместо этого:

ISBN = list(map(int, input('Please enter full ISBN: '))) 

ISBN теперь список целых чисел, и должны работать, как вы ожидаете.

+1

есть другие ошибки, подобные этому в этом коде: 'if CalculatedDigit == ISBN [13]:' –

+1

Итак, как правильно это сделать ? –

+0

@AnasYusef Я отредактировал это в своем посте. Обновите свою страницу –

0

ISBN - это не массив.

Массив: ISBN = [1,2,3,4]

Доступ массив: ISBN[2] возвратит 3

Что именно вы пытаетесь сделать с этим?

+1

ISBN - это серийные номера для книг. У них контрольная цифра. Он пытается проверить номера ISBN –

0

Подумайте.

a = 5 
print(a[1]) 

Что вы ожидаете от этого?

Номера не являются списками. Используя [], вы пытаетесь получить доступ к чему-то, содержащемуся внутри объекта, но ints ничего не содержат! Они просто цифры.