我需要这个python函数的帮助

时间:2016-01-29 01:54:22

标签: python-3.4

我正在尝试实现函数makeNeg(),它接受一个数字列表和一个表示索引作为参数的数字,并将指定索引处的列表项更改为负数。如果指定索引处的数字已经为负数,则该函数不应更改列表。该函数应验证索引对于列表是否正确。如果索引对列表无效,则该函数不应更改列表。

我一直试图解决这个问题,但我找不到启动它的方法。有人能引导我朝正确的方向发展吗?谢谢你的帮助!

1 个答案:

答案 0 :(得分:0)

即使在检查列表长度后,您也会遇到访问mylist[n]的麻烦......

首先,您可以将列表的长度与索引进行比较:

def MkNeg(mylist, n):
    if len(mylist)<n:
        print ("Error, this index does not exist")

问题是,您无法访问不存在的列表项的任何值。即使它位于if / elif / else位置,也不会被执行。我所说的是

def MkNeg(mylist, n):
    if len(mylist)<n:
        print ("Error, this index does not exist")
    elif mylist[n]>0:
        #do ur stuff

这不起作用,因为编译器会看到一个不存在的引用。

这就是为什么你需要try

def MkNeg(mylist, n):
    try:
        if mylist[n]>0:
            mylist[n]=-mylist[n]
    except IndexError:
        print ("Index doesn't exist for this list.")
    return mylist

我没有检查长度,因为如果索引不存在,您将获得IndexError

尝试执行命令的尝试是什么。如果失败,您可以使用except处理进一步的执行。如果没有,一切都很好。