簡體   English   中英

第一次迭代后循環停止

[英]Loop stops after first iteration

我需要檢查列表中的每個字符串是否都在 titlecase 中。 如果是,則返回 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 循環,你可以在這個問題上閱讀一些關於它的內容: How to use a return statement in a for loop?

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))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM