我在下面有以下类,但努力使脚本按预期工作。
class firstClass:
def test(self):
enter = raw_input()
books = enter.split()
books = []
for index in range(len(books)):
print 'Current Books :', books[index]
mybooks = firstClass()
mybooks.test()
我的最终目标是,如果我输入book1
,book2
book3
等等,我会得到这样的结果(我不想将其限制为仅三本书)
Current Books, book1
Current Books, book2
Current Books, book3
答案 0 :(得分:2)
您正在使用第books
行正确设置books = enter.split()
。下一行books = []
使用空数组覆盖此值,因此循环永远不会发生。
删除那一行,它按预期工作:
>>> class firstClass:
... def test(self):
... enter = raw_input()
... books = enter.split()
... for index in range(len(books)):
... print 'Current Books :', books[index]
...
>>> mybooks = firstClass()
>>> mybooks.test()
book1 book2 book3
Current Books : book1
Current Books : book2
Current Books : book3
正如您可能知道的那样,没有任何参数的split()
将在空格上分割,因此这假定输入的输入中间有空格。如果是这种情况,则必须明确指定另一个分隔符(如逗号)。
另外请注意,index for range(len(arr))
是Python中的反模式,几乎总是应该避免。您可以通过这种方式重写循环以获得可读性:
for book in books:
print 'Current Books :', book
答案 1 :(得分:0)
只需删除第5行,您的代码就可以正常使用。
class firstClass:
def test(self):
enter = raw_input()
books = enter.split()
for index in range(len(books)):
print 'Current Books :', books[index]
mybooks = firstClass()
mybooks.test()