带有字符串拆分的 python 中的名称格式

新手上路,请多包涵

我大部分时间都完成了这项任务,但我仍然无法获得正确的输出。

此作业希望如果输入是全名,则输出是“姓氏,名字的首字母。最后的首字母。如果输入是 Stacy Estel Graham,则预期输出应该是 Graham, SE

“许多文档对人名使用特定格式。编写一个程序,其输入为:

名中间名姓

其输出是:

lastName, firstInitial.middleInitial。”

 full_name = input()
mod_name = full_name.split(' ')
last_name= mod_name.pop(-1)
mod_name.join('.')
print(last_name)
print(mod_name)

我完全不知道如何进行。

原文由 Randall McGrath 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 428
2 个回答

您需要使用 ‘.’.join() 来添加首字母。

要仅从名称中提取第一个字符,您可以执行 mod_name[i][:1] 其中 i 是从 0 到姓氏 - 1 的索引。

你可以这样做:

 full_name = input('Enter your full name :')
mod_name = full_name.split(' ')
temp = '.'.join([mod_name[i][0] for i in range (0, len(mod_name) - 1)])
if temp == '':
    print (mod_name[-1])
else:
    print (mod_name[-1] + ', ' + temp + '.')

以下是一些示例运行:

 Enter your full name :Stacy Estel Sugar Graham
Graham, S.E.S.

Enter your full name :Stacy Estel Graham
Graham, S.E.

Enter your full name :Stacy Graham
Graham, S.

Enter your full name :Graham
Graham

原文由 Joe Ferndz 发布,翻译遵循 CC BY-SA 4.0 许可协议

利用:

 def format_name(name):
    names = name.split()
    return f"{names[-1]}, {''.join([f'{i[0]}.' for i in names[:-1]])}"


例子:

 format_name('Stacy Estel Graham')
# > 'Graham, S.E.'

format_name('Randall McGrath')
# > 'McGrath, R.'

原文由 Cainã Max Couto-Silva 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进