python中使用字符串拆分的名称格式

cnh2zyt3  于 2023-02-20  发布在  Python
关注(0)|答案(5)|浏览(155)

我已经完成了这项任务的大部分,但我被困在获得适当的输出。
这个赋值语句希望,如果输入是全名,输出是“姓,名首字母,姓首字母”,如果输入是斯泰西Estel Graham,预期输出应该是Graham,S.E.
“许多文档对人名使用特定的格式。编写一个程序,其输入为:
名字中间名姓氏
并且其输出是:
姓氏,第一个缩写。中间缩写。”

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

我完全不知道该怎么办。

hts6caw3

hts6caw31#

您需要使用.'. join()来添加首字母。
要只提取名称中的第一个字符,可以执行mod_name[i][:1],其中i是从0到last name-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
vh0rcniy

vh0rcniy2#

用途:

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.'
t8e9dugd

t8e9dugd3#

这段代码可以帮助你,但中间名是必须为每个人创造你想要的输出

import re
s="Stacy Estel Graham"
words=s.split()
k=re.findall("[A-Z]",s)
p=words[-1]+","+k[0]+"."+k[1]
print(p)

输出:

Graham,S.E
ffscu2ro

ffscu2ro4#

不适用于re

full_name = input()
mod_name = full_name.split(' ')
last_name= mod_name.pop(-1)
first_inital = mod_name[0][0]
if len(mod_name) >= 2:
    middle_inital = mod_name[1][0]
    print(f'{last_name}, {first_inital}.{middle_inital}')
else:
    print(f'{last_name}, {first_inital}.')

可以使用字符串索引和f'字符串格式。
输入:

Hello World Python

输出:

Python, H.W.
dm7nw8vv

dm7nw8vv5#

full_name = input(')

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 + '.')

相关问题