2011-02-12 99 views
1

任何人都可以帮助我调试下面的Python代码吗?以下Python代码有什么问题?

代码如下所示:

#!/usr/bin/python 
# Filename: using_tuple.py 


zoo = ('python', 'elephant', 'penguin') # remember the parentheses are optional 
print('Number of animals in the zoo is', len(zoo)) 

new_zoo = ('monkey', 'camel') 
print('Number of cages in the new zoo is', len(new_zoo)) 
print('All animals in new zoo are', new_zoo) 
print('Animals brought from old zoo are', new_zoo[2]) 
print('Last animal brought from old zoo is', new_zoo[2][2]) 
print('Number of animals in the new zoo is', len(new_zoo)-1+len(new_zoo[2])) 
+1

动物园和new_zoo之间没有联系。假设至少有一种动物必须从动物园带到new_zoo。你也有索引越界,因为python使用从零开始的索引,其中第一项是[0] – Matt 2011-02-12 11:03:29

+3

至少有两件事情需要澄清:首先,是否是“python”,“elephant”和“企鹅“属于新动物园,也就是从老动物园带来的;其次,这三只动物是否被放入新动物园的一个笼子里。在print()调用中的计算和元组访问是矛盾的,在新动物园的不同模型之间摆动。如果没有进一步解释你打算如何建立新的动物园模式,那么就很难准确猜出正确的答案。 – 2011-02-12 11:35:57

回答

2

你在哪里结合新老动物园吗?

可能性:

>>> new_zoo = ('monkey', 'camel', zoo) 
>>> new_zoo 
('monkey', 'camel', ('python', 'elephant', 'penguin')) 
>>> new_zoo = ('monkey', 'camel') + zoo 
>>> new_zoo 
('monkey', 'camel', 'python', 'elephant', 'penguin') 
2

索引的编程语言通常是从零,而不是一个开始。 长度可能为2,但第二个元素与索引1.

0

您忘了将旧的动物园添加到新的动物园。

0

在这一行:`打印( '从老动物园带尾动物',new_zoo [2] [2])”

new_zoo [2] [2]是有2个原因你当前的代码无效: 1.数组是0索引的。 new_zoo [2]指的是第三个元素,而不是第二个元素。 2.此外,您将只打印该动物园动物的角色(特别是第三个角色)。