继续收到TypeError:'int'对象不是可订阅的
我试图将该伪代码翻译成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")
我真的不知道为什么我得到这个错误 类型错误: '诠释'对象不可自订
ISBN = int(input(">"))
ISBN
是一个整数。
ISBN[Count]
尝试访问位置ISBN
Count
。但你不能因为整数不会被标化
该怎么做:
ISBN = list(map(int, input('Please enter full ISBN: ')))
ISBN现在是一个整数列表,并按照您的预期应该工作。
在该代码中还有其他类似的错误:'如果CalculatedDigit == ISBN [13]:' –
那么正确的方式怎么做呢? ? –
@AnasYusef我编辑了我的帖子。刷新页面 –
ISBN不是数组。
数组: ISBN = [1,2,3,4]
访问数组: ISBN[2]
将返回3
究竟什么是你想用它做?
国际标准书号是书籍的序列号。他们有一个校验码。他试图验证ISBN号码 –
想一想。
a = 5
print(a[1])
您希望打印什么?
数字不是列表。通过使用[]
s,您试图访问对象中包含的内容,但ints不包含任何内容!他们只是数字。
你想做什么?你认为是什么问题?你有什么尝试?另请参阅:http://stackoverflow.com/help/how-to-ask –