整数排序:输入n个值和n个数,排序后输出

【问题描述】

输入n的值和n个数,进行排序并输出。
【输入形式】

首先输入整数个数n;

接着输入n个整数

【输出形式】

从小到大地输出n个整数
 【输入示例】

3

1  5 -10

【输出示例】

-10 1 5

刚开始时的代码:

n=eval(input())
nums=[i for i in input().split()]
a=[print(i,end=' ') for i in sorted(nums,reverse=False)]

输入:

9

-1 -1234 -4 0 1 22 1  444 9090

输出:

-1 -1234 -4 0 1 1 22 444 9090

可见结果是错的,负数部分并没有正确排序

在调试多次后,发现是因为在代码第二行第一个i处漏了eval()导致排序实际上是对字符串进行排序,最终出错

在修改之后,可以成功运行了:

n=eval(input())
nums=[eval(i) for i in input().split()]
a=[print(i,end=' ') for i in sorted(nums,reverse=False)]

输入:

9

-1 -1234 -4 0 1 22 1  444 9090

输出:

-1234 -4 -1 0 1 1 22 444 9090 

你可能感兴趣的:(python,数据结构,算法)