我正在尝试实现函数makeNeg(),它接受一个数字列表和一个表示索引作为参数的数字,并将指定索引处的列表项更改为负数。如果指定索引处的数字已经为负数,则该函数不应更改列表。该函数应验证索引对于列表是否正确。如果索引对列表无效,则该函数不应更改列表。
我一直试图解决这个问题,但我找不到启动它的方法。有人能引导我朝正确的方向发展吗?谢谢你的帮助!
答案 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
处理进一步的执行。如果没有,一切都很好。