Skip to main content
 首页 » 编程设计

python之返回以大写字母开头的文件中的最后一个单词

2025年05月04日12webabcd

我正在尝试制作一个简单的脚本,用于搜索指定的 .txt 文件以查找以大写字母开头的最后一个单词并返回它。如果没有以大写字母开头的单词,则返回空字符串。

这是我目前尝试过的:

def find_last_capitalised(file_name): 
    with open(file_name) as wordfile: 
        text_str = wordfile.read() 
        word_list = text_str.split() 
        upper = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" 
        for word in word_list: 
            if word.rfind(upper): 
                return word 
            else: 
                return " " 

但这行不通。

我也试过这个:

    with open(file_name) as wordfile: 
        text_str = wordfile.read() 
        word_list = text_str.split() 
        for word in word_list: 
            if word_list[-1].isupper(): 
                return word_list[-1] 
            else: 
                return " " 

有什么帮助吗?

请您参考如下方法:

其他人为您提供了完成任务的各种方法。我想解释一下为什么您的第一种方法无法按预期工作:

upper = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" 
if word.rfind(upper): 
str 的

.rfind 方法正在寻找 word 中最后一个子字符串 ABCDEFGHIJKLMNOPQRSTUVWXYZ 的位置。我猜你的话不包含这样的子字符串,在这种情况下 .rfind 返回 -1,根据 Python 规则评估为 True (因为它不为零),所以它几乎可以捕获任何单词(它将给出 0 或 False 仅对于以 ABCDEFGHIJKLMNOPQRSTUVWXYZ 开头的单词仅包含单个 ABCDEFGHIJKLMNOPQRSTUVWXYZ)