让用户输入3个名称,在Python中按字母顺序排列

时间:2017-05-22 00:46:15

标签: python

我正在尝试编写一个程序,要求用户输入3个名称,然后按字母顺序排列。我不太清楚怎么做,但这是我到目前为止所做的:

students=input("Give me 3 names")
students.sort()

for student in students:
    print("%s here" %name)

我正在考虑定义名称,因为这似乎是我的代码的主要问题。

2 个答案:

答案 0 :(得分:6)

问题是students是一个字符串,而不是列表中的3个字符串,因此sort无法正常工作(没有str.sort)。假设您输入由空格分隔的3个名称,请用空格分隔输入:

students = students.split(" ")

这将返回由空格分隔的所有3个名称的列表。然后排序,打印。此外,如果分隔符是空格(任何长度),则可以省略split的分隔符,因此在这种情况下这将执行基本相同的操作:

students = students.split()

答案 1 :(得分:-1)

您可以从一个空列表开始,定义您想要的名称,然后每次使用一个将附加到列表的循环来指示用户。最后,返回/打印您的排序列表。

names = []
nameTotal = 3

print "Give me 3 names"

while len(names) < nameTotal:
    names.append(raw_input("name {0} ".format(len(names)+1)))

print sorted(names)

用2.7返回:

Give me 3 names
name 1 Mandy
name 2 Arianna
name 3 Charlie
['Arianna', 'Charlie', 'Mandy']
>>>