我正在尝试编写一个程序,要求用户输入多个名称,用分号分隔。名称将作为姓氏,名字输入。然后,程序将在单独的行上以名字姓氏格式打印每个名称。到目前为止,我的计划是:
def main():
names=input("Please enter your list of names: ")
person=names.split(";")
xname=person.split(",")
这是我得到的,因为当我尝试拆分逗号时出现错误。我究竟做错了什么?输出应如下所示:
Please enter your list of names: Falcon, Claudio; Ford, Eric; Owen, Megan; Rogers, Josh; St. John, Katherine
You entered:
Claudio Falcon
Eric Ford
Megan Owen
Josh Rogers
Katherine St. John
答案 0 :(得分:1)
.split
会返回一个列表,因此您正在尝试
["Falcon, Claudio", "Ford, Eric" ...].split(',')
这显然不起作用,因为split
是一个字符串方法。试试这个:
full_names = []
for name in names.split("; "):
last, first = name.split(', ')
full_names.append(first + " " + last)
给你
['Claudio Falcon', 'Eric Ford', 'Megan Owen', 'Josh Rogers', 'Katherine St. John']
答案 1 :(得分:1)
.split
是一个返回字符串列表的字符串方法。所以它在分割原始字符串时工作正常,但你不能在结果列表中调用它(list
没有.split
方法,这真的没有意义) 。因此,您需要在列表中的每个字符串上调用.split
。要整洁,你应该清理名字上的任何前导或尾随空格。像这样:
names = "Falcon, Claudio; Ford, Eric; Owen, Megan; Rogers, Josh; St. John, Katherine"
for name in names.split(';'):
last, first = name.split(',')
print(first.strip(), last.strip())
<强>输出强>
Claudio Falcon
Eric Ford
Megan Owen
Josh Rogers
Katherine St. John
答案 2 :(得分:0)
您正在拆分整个列表而不是每个字符串。将其更改为:
def main():
names=input("Please enter your list of names: ")
person=names.split("; ")
xname=[x.split(", ") for x in person]
要打印出来,请执行以下操作:
print("\n".join([" ".join(x[::-1]) for x in xname]))
答案 3 :(得分:0)
您可以使用以下代码:
context 'when there are no fees' do
it 'is not valid' do
described_class_object = described_class.build(...some params...)
described_class_object.fees = []
expect(described_class_object).to_not be_valid
end
end
数据将返回您的列表,因此处理该列表以获取名字和姓氏
names = raw_input("Please enter your list of names:")
data = names.split(";")
这样你可以打印所需的输入