首页 > 解决方案 > 初学者python名称格式化和切片字符串

问题描述

我正在学习 Python 基础课程,但我被困在这个实验室中,我们必须输入一个全名:

前任Pat Silly Doe

并将其打印为

Doe, P.S.

或者在他们没有输入中间名的情况下,它只会显示: Doe, P.

我们只对字符串进行切片和格式化,但我觉得我想多了

我知道我需要对输入进行切片,我可以通过以下方式做到这一点:

name = input()
splitname = name.split(' ')
print(splitname)

这将通过输入的空格将用户输入名称的每个部分分开,然后让我知道它的 2 个名称还是全部 3 个。但是我现在有点迷失了下一步该做什么。现在我已经将名称拆分了,我如何在不打印的情况下获取每个名称并对其进行格式化。

我不是想直接得到实验室的答案,我不想只是复制粘贴代码来做,我只想在正确的方向上有一点点颠簸。

标签: python

解决方案


你不必知道有多少个名字,你可以调用 split() 函数返回一个列表,然后将字符串保持在'len(splitname)-1',然后只取第一个字母其他索引上的字符串。您现在可以尝试自己编写代码,但如果您愿意,可以使用以下代码:首先,您会得到名字和中间名的第一个字母:

firstLetters = [name[0] for index, name in enumerate(splitname) if index != len(splitname)-1]
joined_nameLetters = ' '.join([str(v) for v in firstLetters])

然后你打印你需要的名字:

print(splitname[len(splitname)-1]+', '+joined_nameLetters)

推荐阅读