2011-02-12 134 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.此外,您將只打印該動物園動物的角色(特別是第三個角色)。