尝试了一种不同的方法。我浏览了每一行代码,但我没有看到这个代码的问题在哪里
def capital_indexes(s):
cap_list = []
for idx, letter in enumerate(s):
if letter.isupper() == True:
cap_list.append(idx)
return cap_list
return的缩进不正确,return
语句在if语句中,因此在找到第一个大写字母后,它将退出:正确的位置在for循环之外:
def capital_indexes(s):
cap_list = []
for idx, letter in enumerate(s):
if letter.isupper():
cap_list.append(idx)
return cap_list
您在第一次迭代后返回!应该是:
def capital_indexes(s):
cap_list = []
for idx, letter in enumerate(s):
if letter.isupper():
cap_list.append(idx)
return cap_list
奇怪的是,您可以(也应该!(使用列表压缩来使代码更加简洁。
def capital_indexes(s):
return [idx for idx, letter in enumerate(s) if letter.isupper()]