fruitList = ["strawberry", "apple", "banana"]
searchFor = "apple"
def findIndex(el,fruitList):
wordIndex = None
for(ind, el) in enumerate(fruitList):
if el == searchFor:
wordIndex = ind
return wordIndex
print("the index corresponding to", searchFor, "is", wordIndex)
问题描述: 上面的代码是我的python类中的一个消费税。我们想要得到的是打印出列表中单词的所有索引。但不知何故,当我把它打印出来时,它会说出名字" wordIndex"没有定义。所以我想知道为什么我的代码错了?我错过了什么吗?
我非常感谢那些投入宝贵时间回答我的问题的人!
答案 0 :(得分:0)
为了将来参考,您应该将代码作为文本发布,而不是作为图像发布。单击编辑器中的{}图标。
您将public override void ViewDidLoad()
{
base.ViewDidLoad();
if (dateOutput != null)
{
dateInput.Text = dateOutput;
}
}
放在wordIndex = None
函数内。这很好,但是您必须明白,当您执行此操作时,findIndex
仅对wordIndex
内的代码可见。
您还必须致电findIndex
来运行代码,即写findIndex
。放置findIndex(someVariable, someList)
表示对findIndex的函数调用将计算为wordIndex的值。
更正后的版本:
return wordIndex
注意在最后一个print语句中调用findIndex。
fruitList = ["strawberry", "apple", "banana"]
searchFor = "apple"
def findIndex(el, fruitList):
wordIndex = None
for (ind, el) in enumerate(fruitList):
if el == searchFor:
wordIndex = ind
return wordIndex
print("the index corresponding to", searchFor, "is", findIndex("",fruitList))
被评估为wordIndex的值。
答案 1 :(得分:0)
您的缩进不正确(查看您粘贴的示例)。
fruitList = ["strawberry", "apple", "banana"]
searchFor = "apple"
def findIndex(el,fruitList):
wordIndex = None
for (ind, el) in enumerate(fruitList):
if el == searchFor:
wordIndex = ind
return wordIndex
此代码没有语法错误。
但您可能希望将searchFor作为参数传递给您的函数:
fruitList = ["strawberry", "apple", "banana"]
def findIndex(element, list):
wordIndex = None
for (ind, el) in enumerate(fruitList):
if el == element:
wordIndex = ind
return wordIndex
print(findIndex("banana", fruitList))
请注意,函数参数名称与更多全局变量名称无关。否则它会给你变量范围的问题。例如,在findIndex()函数中,有一个' fruitList'在全局范围内,但也在本地范围内(对函数)。本地范围优先。