2017-06-14 46 views
-4

我从techer那里得到了代码。我不是gettign输出。什么是错误。它已经超出索引。我不明白请帮忙。这是什么毛病,我一直在挣扎很久?

def something(tu): 
     ch='a' 
     for i in tu: 
     tu[i]=ch 
     ch+='a' 
    l=[1,4,2,3,8] 
    something(l) 
    for i in l: 
     print(i) 
    print("The end!") 

的expted输出

a 
    aa 
    aaa 
    aaaa 
    aaaaa 
    The end! 

谢谢

+0

你的缩进是错误的,函数没有返回任何东西.. –

回答

0

您需要进行更改Python代码,这里是改变一个:

def something(tu): 
    ch='a' 
    for i in range(len(tu)): 
     tu[i]=ch 
     ch+='a' 
l=[1,4,2,3,8] 
something(l) 
for i in l: 
    print(i) 
print("The end!") 

原因你可能会出错,您的列表中有8个。但是列表的最大长度只有5个。所以在那里改变我。或者将8更改为0.它也可以工作。指数超出界限。我也改变了缩进。

+0

你可以强调'为我在tu'迭代元素本身,而'我在范围内(len(tu))'遍历*指数*。通常情况下,你会使用'for index',而不是tu'中的元素,因为它被认为是pythonic。有关更多详细信息,请参阅[本答案](https://stackoverflow.com/a/522578/6725184)。 –