Python处理数据,python大法好
由于找实习,要学习python处理数据,python连接mysql,python读写文件,python读写xlsx文件,这些只要引入了相关的包,就非常容易,处理过程非常清晰。模块如果封装的好,没怎么学过编程的人也很容易上手。
就把python当做自行车用,用脚本处理一些重复性的工作非常便捷,但程序就是写不长,但是这些脚本已经能够完成我们的工作了。另外,pycharm真的很好用,不仅体现在代码自动提示,还在安装外部库时非常方便。
看一下python写的快速排序:
def quicksort(arr): if len(arr) < 2: return arr else: min = [x for x in arr[1:] if x < arr[0]] max = [x for x in arr[1:] if x >= arr[0]] return quicksort(min) + [arr[0]] + quicksort(max)
看一下java写的快速排序:
public class Main{ public static void main(String[] args) throws IOException{ InputStreamReader in = new InputStreamReader(System.in); BufferedReader br = new BufferedReader(in); int num = Integer.parseInt(br.readLine()); int[] arr = new int[num]; String[] res = br.readLine().split(" "); for (int i = 0; i < num; i++) { arr[i] = Integer.parseInt(res[i]); } quickSort(arr, 0, num - 1); for (int i = 0; i < num; i++) { System.out.print(arr[i] + " "); } br.close(); } //闫总快排模板 v.v public static void quickSort(int[] q, int l, int r) { if (l >= r) return; int x = q[l+r>>1]; //Define positions of two pointers int i = l - 1; int j = r + 1; while (i < j) { do i++; while (q[i] < x); do j--; while (q[j] > x); //do Swap if (i < j) { int temp = q[i]; q[i] = q[j]; q[j] = temp; } } quickSort(q, l, j); quickSort(q, j + 1, r); } } 作者:unipie 链接:https://www.acwing.com/solution/content/5996/ 来源:AcWing 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
看看java写的,i++, j++,自己都蒙圈了,c++也要考虑边界条件。
为什么python能够这么简单呢?在于python中数组强大的抽象。java/c++也可以开辟额外空间,不考虑边界问题,但是代码就变长了。python帮忙我们屏蔽了底层操作,提供了很好的抽象。在快速开发的时代,python的这用优势还是很明显的。
参考博客:快速排序算法的简单理解
日进有功