我正在写一些学校作业的代码。作业是这样的: 编写一个代码,读取书籍代码,直到输入“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)
任何有关相同的帮助将不胜感激!我在学校的第一年是蟒蛇。
编辑:预期输出应该是两个列出书籍代码的列表。 目前,我面临着“同时”的自主循环,我不确定如何以及为什么。
答案 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中不安全。