我正在尝试编写一个代码,该代码将返回字母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。有帮助吗?
答案 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)