Python 3 - 从莫尔斯电码翻译时如何将每个句子的首字母大写
Posted
技术标签:
【中文标题】Python 3 - 从莫尔斯电码翻译时如何将每个句子的首字母大写【英文标题】:Python 3 - How to capitalize first letter of every sentence when translating from morse code 【发布时间】:2017-03-28 11:14:33 【问题描述】:我正在尝试将莫尔斯电码翻译成单词和句子,一切正常……除了一件事。我的整个输出都是小写的,我希望能够将每个句子的每个首字母大写。
这是我当前的代码:
text = input()
if is_morse(text):
lst = text.split(" ")
text = ""
for e in lst:
text += TO_TEXT[e].lower()
print(text)
拆分列表中的每个元素都等于一个字符(但在莫尔斯语中)而不是一个单词。 'TO_TEXT' 是一个字典。有没有人有一个简单的解决方案?顺便说一句,我是编程和 Python 的初学者,所以我可能不明白一些解决方案...
【问题讨论】:
你能修正你的缩进吗? 【参考方案1】:维护一个标志,告诉您这是否是新句子的第一个字母。使用它来决定字母是否应为大写。
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)
【讨论】:
【参考方案2】:从你的代码中可以理解,我可以说你可以使用python的title()
函数。
要获得更严格的结果,您可以使用 capwords()
函数导入 string
类。
这是你从关于 capwords 的 Python 文档中得到的:
使用 str.split() 将参数拆分为单词,使用 str.capitalize() 将每个单词大写,并使用 str.join() 连接大写单词。如果可选的第二个参数 sep 不存在或无,则空白字符的运行将替换为单个空格并删除前导和尾随空格,否则 sep 用于拆分和连接单词。
【讨论】:
以上是关于Python 3 - 从莫尔斯电码翻译时如何将每个句子的首字母大写的主要内容,如果未能解决你的问题,请参考以下文章