无论Python中的输入如何,返回出现特定字母的索引的函数始终不返回任何内容?

时间:2018-10-14 15:39:18

标签: python string input output

我正在尝试编写一个代码,该代码将返回字母c首次出现的索引,或者如果c不在字符串中,则返回None。到目前为止,这是我想出的:

def find_c(f):
    z = 0
    c_pos = None
    while c_pos is None or z < len(f):
        if f[z] == 'c' or f[z] == 'C':
            c_pos = z
            z += 1
        return c_pos

但是无论我输入什么字符串,我的输出始终为None。有帮助吗?

1 个答案:

答案 0 :(得分:0)

如果您仍想使用while循环,则在找到第一个'C'的索引后,您可能只想返回该索引,而不是循环遍历字符串的其余部分。

def find_c(f):
    z = 0
    while z < len(f):
        if f[z] == 'c' or f[z] == 'C':
            return z # Returns first index where it finds 'c'
        z += 1
    return None # Return None if never found

但是,比使用while循环更简单的方法是使用for循环枚举值。您还可以使用.lower()函数使字符变为小写,因此您只需要像提到的其他注释者一样与'c'进行比较。

使用for循环:

def find_c(f):
    for index, char in enumerate(f):
        if char.lower() == 'c':
            return index # Returns first index where it finds 'c'
    return None # Return None if never found (reached end of string)