继续获取TypeError:'int'对象不可订阅

时间:2016-10-26 15:22:18

标签: python shell python-3.x pseudocode

我正在尝试将该伪代码翻译为Python。这是伪代码:

伪代码:

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'对象不可订阅

3 个答案:

答案 0 :(得分:0)

ISBN = int(input(">"))

ISBN是一个整数。

ISBN[Count]

尝试访问Count的位置ISBN。但你不能因为整数不是可订阅的

该怎么做:

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

ISBN现在是一个整数列表,应该按预期工作。

答案 1 :(得分:0)

ISBN不是数组。

一个数组: ISBN = [1,2,3,4]

访问数组: ISBN[2]将返回3

你究竟想用它做什么?

答案 2 :(得分:0)

仔细思考。

a = 5
print(a[1])

您希望打印什么?

数字不是列表。通过使用[] s,您尝试访问对象中包含的内容,但是int不包含任何内容!他们只是数字。