我正在尝试编写一个程序,要求用户输入3个名称,然后按字母顺序排列。我不太清楚怎么做,但这是我到目前为止所做的:
students=input("Give me 3 names")
students.sort()
for student in students:
print("%s here" %name)
我正在考虑定义名称,因为这似乎是我的代码的主要问题。
答案 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']
>>>