如何以这种方式按字母顺序列出?

时间:2016-08-07 16:08:18

标签: python alphabetical names

我必须在不使用列表排序方法的情况下对用户输入的名称进行排序。这是我到目前为止所遇到的问题,但是在定义'一个''两个'和'三'方面存在问题。我需要程序遍历每个字母,以确保它是真正按字母顺序排列的。有人可以帮忙吗?

javascript / jquery
提前谢谢! 编辑我的问题在于定义需要运行输入中所有字母的“一”,“二”和“三”。现在它贯穿前三个字母,但如果我添加下一个字母,只有三个字母的名称给出错误。如果我使用len函数,它告诉我它是一个整数

2 个答案:

答案 0 :(得分:0)

  

我需要程序遍历每个字母以确保它是真正按字母顺序排列的。

无论如何,这就是字符串比较。您的代码存在的问题是,您将onetwothree限制为输入字符串的前三个字母。相反,你应该只是大写整个名称并进行比较。

name1 = input("Enter name #1: ")  # no need for str(...)
... # same for name2, name3

one = name1.upper()  # uppercase whole nam, not just first three letters
... # same for two, three

answer = "These names in alphabetical order are: "  # don't repeat this X times
if one < two < three:  # comparison chaining
    print(answer, name1, name2, name3)
elif one < three < two:
    print(answer, name1, name3, name2)
elif ...:
    # a whole bunch more
else:
    print(answer, name3, name2, name1)

答案 1 :(得分:0)

您可以使用旧的排序算法

letters = [name1.upper(),name2.upper(),name3.upper()] 
for i in range(len(letters)):
   for j in range(i,len(letters)):
             if letters[i] > letters[j]:
                     letters[i],letters[j] = letters[j],letters[i]