如何在姓名首字母间添加英文句号?Python函数实现求助
姓名首字母格式化函数修改
需求说明
- 实现
initials函数,通过*args接收多个姓名片段参数 - 返回格式要求:每个姓名首字母大写,并用英文句号
.分隔,结尾需添加句号(如输入James,Marshall,Hendrix返回J.M.H.)
现有问题代码
def initials(*args): result = "" for word in args: result += word[0].upper() return result if __name__ == "__main__": print(initials("James", "Marshall", "Hendrix")) # 应输出"J.M.H." print(initials("John", "Ronald", "Reuel", "Tolkien")) # 应输出"J.R.R.T."
这段代码仅将首字母拼接成无分隔的字符串,无法满足句号分隔的格式要求。
修改后的代码
def initials(*args): # 提取每个姓名片段的首字母并大写,用句号连接后追加结尾句号 initials_list = [word[0].upper() for word in args] return ".".join(initials_list) + "." if __name__ == "__main__": print(initials("James", "Marshall", "Hendrix")) # 输出"J.M.H." print(initials("John", "Ronald", "Reuel", "Tolkien")) # 输出"J.R.R.T."
修改说明
- 用列表推导式快速提取所有姓名首字母并转为大写,生成首字母列表
- 借助
str.join()方法,将列表中的首字母用.连接成连续字符串 - 最后在字符串结尾添加一个
.,完全匹配示例要求的格式
内容的提问来源于stack exchange,提问作者mo10
相关产品推荐
相关产品推荐

