我必须在不使用列表排序方法的情况下对用户输入的名称进行排序。这是我到目前为止所遇到的问题,但是在定义'一个''两个'和'三'方面存在问题。我需要程序遍历每个字母,以确保它是真正按字母顺序排列的。有人可以帮忙吗?
javascript / jquery
提前谢谢!
编辑我的问题在于定义需要运行输入中所有字母的“一”,“二”和“三”。现在它贯穿前三个字母,但如果我添加下一个字母,只有三个字母的名称给出错误。如果我使用len函数,它告诉我它是一个整数
答案 0 :(得分:0)
我需要程序遍历每个字母以确保它是真正按字母顺序排列的。
无论如何,这就是字符串比较。您的代码存在的问题是,您将one
,two
和three
限制为输入字符串的前三个字母。相反,你应该只是大写整个名称并进行比较。
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]