我最近开始学习Python,并收到了一个问题:“编写一个Python程序,要求用户以以下格式输入全名:
LastName,FirstName MiddleName
(例如:"Hun,Attila The“)。
输入在逗号之后只有一个空格,在名字和中间名之间只有一个空格。使用Python中的string方法和运算符将其转换为具有以下形式的新字符串:
FirstName MiddleInitial周期LastName (例如:“AttilaT.Hun”)并输出它。
如果我创建了三个不同的变量,然后对它们进行重新排序/切片,那么我很容易做到这一点。但是我如何在一个变量中做到这一点。我知道我需要对LastName进行切分,直到",“,但是我不能执行"0:”,因为我没有使用整数值,那么如果每个用户的lastName会有所不同,那么如何找到它的整数值呢?
发布于 2014-09-21 23:32:34
不要使用index,而是在各种分隔符上使用split和split。例如,full_name.split(', ')[0] == 'Hun',full_name.split(', ')[1] == 'Attila'和full_name.split(' ')[-1] == 'The'。然后,您可以轻松地将它们与字符串格式或简单的级联组合起来。
发布于 2014-09-21 23:34:34
首先,如果您在python 2.x中,请使用raw_input()如果python 3.x使用input(),那么您可以与space分离,然后在姓氏的末尾使用ramove,!
例:
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'}https://stackoverflow.com/questions/25964881
复制相似问题