用于计算序列'z'

时间:2016-10-22 14:42:25

标签: python python-3.x

enter image description here我们需要创建一个带有列表z的函数,并返回首先出现y的索引。例如,如果它是列表中的第二项,它将返回1等。我们只使用for循环,if else语句和布尔值。

我的函数正在处理我给出的所有数字值,但是当我将字符串作为列表放入时,它只返回一个。

def positionfirst(z,y):
    val=0
    for item in y:
        if z!=item:
            val+=1
            if val==len(y):
                return None
        else:
            return val

1 个答案:

答案 0 :(得分:0)

您的图片显示错误:

print((positionfirst('d', ['abcdefg'])))

将返回0,为'd' != 'abcdefg',这是['abcdefg']中唯一的元素。你可能想要

print((positionfirst('d', 'abcdefg'))).

这样,for循环遍历字符串中的字符。您可以添加

print(item)

在你的循环中,看看发生了什么。第一个版本将提供

'abcdefg'

第二个

'a'
'b'
'c'
'd'
'e'
'f'
'g'.

这些是您要比较的项目。最后是你的功能的一个较短的版本:

def positionfirst(z, y):
    val = 0
    for item in y:
        if z == item:
            return val
        val += 1
    return None