字符串索引必须是整数和问题

时间:2017-03-28 13:53:34

标签: python

我正在写一些学校作业的代码。作业是这样的: 编写一个代码,读取书籍代码,直到输入“000”,然后根据输入的ISBN和ISSN的前4位数将书籍分成两类。

注意:使用str并检查代码的前缀(在这种情况下是ISBN和ISSN)。

这是我的代码:

bookarray = []
booknumber = str(input("Give me a book code - Type 000 if you want to cancel"))
while booknumber != "000":
   bookarray.append(booknumber)
   booknumber = str(input("Give me a book code - Type 000 if you want to cancel"))
   if booknumber[0,4] == "ISBN":
       isbnarray = booknumber
   elif booknumber[0,4] == "ISSN":
       issnarray = booknumber
print(issnarray)
print(isbnarray)

任何有关相同的帮助将不胜感激!我在学校的第一年是蟒蛇。

编辑:预期输出应该是两个列出书籍代码的列表。 目前,我面临着“同时”的自主循环,我不确定如何以及为什么。

1 个答案:

答案 0 :(得分:1)

if booknumber[0,4] == "ISBN":

您将tuple作为索引传递给booknumber,这解释了错误消息("索引必须是整数")。你想要一个切片

if booknumber[0:4] == "ISBN":

在这种情况下,你最好还是

if booknumber.startswith("ISBN"):

此外,如果您正在使用python 2,则输入000并将其传递给str(input())只会产生"0",因为input()会评估您的表达式并{{1}只是000。对于python 3来说没关系,但是对于python 2,请切换到0(或者只是让用户输入raw_input()退出,然后测试0。例如,BTW { {1}}在python 2中不安全。