Python 3 - 从摩尔斯电码翻译时如何将每个句子的首字母大写

Python 3 - How to capitalize first letter of every sentence when translating from morse code

我正在尝试将摩尔斯电码翻译成单词和句子,一切正常...除了一件事。我的整个输出都是小写的,我希望能够将每个句子的每个首字母大写。

这是我当前的代码:

 text = input()
        if is_morse(text):
            lst = text.split(" ")
            text = ""
            for e in lst:
                text += TO_TEXT[e].lower()
            print(text)

拆分列表中的每个元素都等于一个字符(但在莫尔斯)而不是一个单词。 'TO_TEXT' 是字典。有人对此有简单的解决方案吗?我是编程初学者 Python 顺便说一句,所以我可能不理解某些解决方案...

根据您的代码可以理解的内容,我可以说您可以使用 python 的 title() 函数。 要获得更严格的结果,您可以使用 capwords() 函数导入 string class.

这是您从 Python 文档中获得的有关首字母词的内容:

Split the argument into words using str.split(), capitalize each word using str.capitalize(), and join the capitalized words using str.join(). If the optional second argument sep is absent or None, runs of whitespace characters are replaced by a single space and leading and trailing whitespace are removed, otherwise sep is used to split and join the words.

维护一个标志,告诉您这是否是新句子的第一个字母。用它来决定字母是否应该大写。

text = input()
if is_morse(text):
    lst = text.split(" ")
    text = ""
    first_letter = True
    for e in lst:
        if first_letter:
            this_letter = TO_TEXT[e].upper()
        else:
            this_letter = TO_TEXT[e].lower()

        # Period heralds a new sentence. 
        first_letter = this_letter == "."  

        text += this_letter
    print(text)