在python中排序数值

时间:2016-12-26 14:29:22

标签: python-2.7

我在这里得到了用户的意见。 这是我的代码

num_array=list()
x=int(raw_input('Enter the numbers:'))
for i in range(int(x)):
n=raw_input("")
num_array.append(int(n))
print("\nThe numbers in ascending order are:%d" %(num_array.sort())

当我想打印数字时,它显示错误。 我希望输出看起来像这样

 Enter the number:
 5
 4
 3
 2
 1
 The numbers in ascending order are 1 2 3 4 5

2 个答案:

答案 0 :(得分:1)

这是您的代码

num_array=list()
x=int(raw_input('Enter the numbers:'))
for i in range(int(x)):
    n=raw_input("")
    num_array.append(int(n))
#print(sorted(num_array))
arr = sorted(num_array)
output = ""
for x in arr:
    output = output + str(x) + " "
print(output)

答案 1 :(得分:1)

这可能是您想要的(用%语法替换.format() print语句)。

num_array.sort()将对您的数组进行排序,但会返回None(这就是您的print语句将尝试打印的内容)。另一方面,sorted返回一个列表。

num_array = []
x = int(raw_input('Enter length of the array: '))
for i in range(int(x)):
    n = raw_input("number '{}': ".format(i))
    num_array.append(int(n))
print("\nThe numbers in ascending order are: {}".format(sorted(num_array)))

如果您不希望输出看起来像python列表,您可以这样做:

sorted_str = ' '.join(str(n) for n in sorted(num_array))
print("\nThe numbers in ascending order are: {}".format(sorted_str))