【问题描述】
输入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