我最近开始学习Python,我收到了一个问题:"写一个Python程序,要求用户输入以下格式的全名:
LastName,FirstName MiddleName
(例如:" Hun,Attila The)。
输入在逗号后面只有一个空格,第一个名称和中间名之间只有一个空格。在Python中使用字符串方法和运算符将其转换为具有以下形式的新字符串:
FirstName MiddleInitial Period LastName(例如:" Attila T. Hun")并输出它。"
如果我制作三个不同的变量,然后重新排序/切片,我很容易这样做。但是我如何只在一个变量中执行此操作。我知道我需要切片直到","对于LastName,但我不能做" [0:,]"因为我没有使用整数值,所以我如何找到它的整数值,如果lastName因用户而异。
答案 0 :(得分:0)
不使用index
,而是使用split
并拆分各种分隔符。例如,full_name.split(', ')[0] == 'Hun'
,full_name.split(', ')[1] == 'Attila'
和full_name.split(' ')[-1] == 'The'
。然后,您可以使用字符串格式或简单连接轻松地重新组合它们。
答案 1 :(得分:0)
首先,如果您python 2.x
使用raw_input()
python 3.x
input()
使用space
,那么您可以使用,
拆分,然后移动fullname=raw_input("enter your full name by this format (LastName, FirstName MiddleName)")
>>> separate_names=[name[:-1] if ',' in name else name for name in fullname.split(' ') ]
>>> separate_names #if fullname=="Hun, Attila The”
['Hun', 'Attila', 'The']
在姓氏的末尾!
例如:
>>> dict(zip(['LastName','FirstName', 'MiddleName'] ,separate_names))
{'MiddleName': 'The', 'LastName': 'Hun', 'FirstName': 'Attila'}
你也可以把它添加到字典中:
{{1}}