循环在第一次迭代后停止



我需要检查列表中的每个字符串是否在标题大小写。如果是则返回True,如果不是则返回False。我写了以下内容:

word_list=["ABC", "abc", "Abc"]
def all_title_case(word_list): 
for word in word_list: 
if not word.istitle():
return False
else: 
return True 
print(all_title_case(word_list))

我的问题是,似乎循环在第一个字符串后停止(我猜是因为返回?)

我怎样才能让它遍历整个列表呢?

*我是python新手

非常感谢!

您将立即返回ifelse块。这在两种情况下都结束循环。

只能在if块中返回。如果你完成了整个循环而没有返回,你就知道所有的单词都是标题大小写。

def all_title_case(word_list): 
for word in word_list: 
if not word.istitle():
return False
return True 

您也可以使用all()函数来代替循环。

def all_title_case(word_list): 
return all(word.istitle() for word in word_list)

Return语句结束函数的执行,如果只在for迭代完成时返回True,您将得到您想要的

换句话说,你的return语句结束了for循环,你可以在这个问题上读到一些关于它的信息:如何在for循环中使用返回语句?

word_list=["ABC", "abc", "Abc"]
def all_title_case(word_list): 
for word in word_list: 
if not word.istitle():
return False
return True 
print(all_title_case(word_list))

最新更新