简单算来,接触Python有些时日了。想要做个简单的总结,算是为想要入门Python的童鞋做一个简单的介绍吧。

什么是Python

Python,是一种面向对象、直译式的计算机程序语言。它包含了一组功能完备的标准库,能够轻松完成很多常见的任务。它的语法简单,与其它大多数程序设计语言使用大括号不一样,它使用缩进来定义语句块。

与Scheme、Ruby、Perl、Tcl等动态语言一样,Python具备垃圾回收功能,能够自动管理内存使用。它经常被当作脚本语言用于处理系统管理任务和网络程序编写,然而它也非常适合完成各种高级任务。Python虚拟机本身几乎可以在所有的作业系统中运行。使用一些诸如py2exe、PyPy、PyInstaller之类的工具可以将Python源代码转换成可以脱离Python解释器运行的程序。

Python的官方解释器是CPython,该解释器用C语言编写,是一个由社区驱动的自由软件,目前由Python软件基金会管理。

Python支持命令式程序设计、面向对象程序设计、函数式编程、面向侧面的程序设计、泛型编程多种编程范式。

---引用自中文维基百科

简而言之,Python是一门语法简单,功能强大,有丰富第三方支持的动态高级编程语言。在最新的TIOBE编程语言排行榜上,Python仅位于Java,C++,C,C#之后,排名高居第五,且排名一直在上升(1996年24位,2006年6位,2016年10月排名升至第5位)。在Google Trends的搜索排名上,Python也和Java,C等传统意义上的主流语言越来越接近。

为什么选择Python

在我看来,至少有以下原因使我们选择Python:

语法简单,相比去大多数语言用花括号区分语句块,Python选择用缩进来作为语意单元的分隔,由于丰富的内建数据结构和强大的第三方扩展库,Python可以写出比较简洁的代码(至少在代码量上会优于大多数语言)。

下面以快速排序作为一个例子来简单比较一个对于同一个问题,Python和Java,C,C++之间的代码量差距。

C版本

void sort(int *a, int left, int right)

{

if(left >= right)

{

return ;

}

int i = left;

int j = right;

int key = a[left];

while(i < j)

{

while(i < j && key <= a[j])

{

j--;

}

a[i] = a[j];

while(i < j && key >= a[i])

{

i++;

}

a[j] = a[i];

}

a[i] = key;

sort(a, left, i - 1);

sort(a, i + 1, right);

}

C++版本

include

using namespace std;

void Qsort(int a[], int low, int high)

{

if(low >= high)

{

return;

}

int first = low;

int last = high;

int key = a[first];

while(first < last)

{

while(first < last && a[last] >= key)

{

--last;

}

a[first] = a[last];

while(first < last && a[first] <= key)

{

++first;

}

a[last] = a[first];

}

a[first] = key;

Qsort(a, low, first-1);

Qsort(a, first+1, high);

}

int main()

{

int a[] = {57, 68, 59, 52, 72, 28, 96, 33, 24};

Qsort(a, 0, sizeof(a) / sizeof(a[0]) - 1);

for(int i = 0; i < sizeof(a) / sizeof(a[0]); i++)

{

cout << a[i] << "";

}

return 0;

}

Java版本

private>

voidquickSort(T[]targetArr,intstart,intend)

{

inti=start,j=end;

Tkey=targetArr[start];

while(i

{

while(j>i&&targetArr[j].compareTo(key)>=0)

{

j--;

}

if(i

{

targetArr[i]=targetArr[j];

i++;

}

while(i

{

i++;

}

if(i

{

targetArr[j]=targetArr[i];

j--;

}

}

targetArr[i]=key;

this.quickSort(targetArr,start,i-1);

this.quickSort(targetArr,j+1,end);

}

最后,来看看Python版本

def qsort(seq):

if seq==[]:

return []

else:

pivot=seq[0]

lesser=qsort([x for x in seq[1:] if x

greater=qsort([x for x in seq[1:] if x>=pivot])

return lesser+[pivot]+greater

至少在上面这个例子当中,Python在简洁上还是有一定的优势的。简洁和缩进带来的直接优势就是代码的可读性提高(这也是我要说的Python的第二点优势),Python里有很多开源框架的代码量都不大,这为大多数人通过源代码来学习带来了方便。

由于python的设计哲学就是“以最优雅,明确,简单的方法解决问题”,所以大多数Python代码的实现都是简单易读,也就是常说的Pythonic写法。

3.广阔的应用范围

Web后端 目前常见的Python web后端框架包括Django,flask,Pyramid,web.py,Tornado等,目前使用Python作为后台开发语言的网站有Gmail,YouTube,Reddit,Spotify,DropBox等,国内的网站有知乎,豆瓣,饿了么,Bilibili等

自动化运维 也就是时下比较火的DevOps的概念,相关的工具库包括:psutil,Ipy,dnspython,pexpect,paramiko,fabric等

数据分析师 大数据时代,不会做一点数据分析怎么说的过去?python本身就可以很方便的对excel进行读写(xrlt),除此之外,python还有很多强大的数据处理库,比如Scipy,Numpy,pandas,Dato GraphLab等等。在数据处理领域,python的地位和R不相上下。

网络爬虫 从基础款的urllib,request,到selenium,再到比较成熟的Scrapy,pySpider Python在爬虫上给了很多可供选择的方案

我的Python学习资料

说了这么多Python的好处,接下来分享一点Python的学习资料

当然,最好的Python学习材料就是Python文档和PEP

相应的,如果你想要学习某个python扩展第三方库,它的官方文档永远应该是你的第一选择学习资料,只要在搜索引擎上打上对应库的名字,一般都能找到它的documents。

教材:

MOOC:

最后,有几个程序员应该知道的网站

转载请注明原地址和出处

我的python学习之路_我的Python学习之路相关推荐

  1. 我的python学习之路_我的Python入门之路

    今天跟大家分享个好消息,之前整理了公众号上的文章去投稿,最终在编程教室2019新春征稿活动中拿到了优秀奖,赚取了人生第一笔稿费,着实开心! 获得了Crossin编程教室的肯定与认可,开心之余,我也想回 ...

  2. python深度学习include框架_《用Python实现深度学习框架》上市

    朋友们,<用Python实现深度学习框架>已经由人民邮电出版社出版上市了.在这本书中,我们带领读者仅用Python+Numpy实现一个基于计算图的深度学习框架MatrixSlow.本书讲解 ...

  3. 基于python的深度学习框架有_《用Python实现深度学习框架》上市

    朋友们,<用Python实现深度学习框架>已经由人民邮电出版社出版上市了.在这本书中,我们带领读者仅用Python+Numpy实现一个基于计算图的深度学习框架MatrixSlow.本书讲解 ...

  4. python学什么东西_什么是Python?你应该学习和使用它的13个理由

    如果您希望转向网站开发或软件开发,成为程序员中的一员,那么学习HTML,CSS和JavaScript的基础三重奏就不会出错.但要真正在拥挤的应用领域中脱颖而出,您还是需要学习其他编程语言. (上图为G ...

  5. 学习python最好的书籍_最好的Python书籍

    学习python最好的书籍 Python is an amazing programming language. It can be applied to almost any programming ...

  6. python dict 合并同类项_零基础入门学习Python,这13个Python惯用小技巧一定要收藏...

    原标题:零基础入门学习Python,这13个Python惯用小技巧一定要收藏 Python的小技巧很多,入门容易精通难!在进阶的路上,有没有什么好的技巧和好的方法,就是不断总结,不断记笔记!尤其是好的 ...

  7. python编程大数据分析_大数据分析Python学习技巧

    大数据分析Python是任何开发人员都应该知道的重要编程语言.许多程序员使用这种语言来构建网站,创建学习算法以及执行其他重要任务.但是尝试学习大数据分析Python可能会令人感到恐惧,沮丧和困难,尤其 ...

  8. python实现关联算法_关联规则算法Apriori学习及Python实现

    关联规则算法Apriori以及FP-growth学习 最近选择了关联规则算法进行学习,目标是先学习Apriori算法,再转FP-growth算法,因为Spark-mllib库支持的关联算法是FP,随笔 ...

  9. 学习ui设计_如果您想学习UI设计,该怎么办

    学习ui设计 There is a question that is always asked when we want to learn something new. 当我们想学习新东西时,总会问一 ...

最新文章

  1. java中构造器快捷方式_java 构造器 (构造方法)
  2. 一篇文章带你分清楚JWT,JWS与JWE
  3. 软件测试开发实战| Java版本,Gson解析json比较常用的2种方式
  4. 深度学习基础(七)—— Gibbs 采样
  5. bzoj 2803: [Poi2012]Prefixuffix(双Hash)
  6. 单片微型计算机原理及应用考试,单片机原理及应用《微机原理及应用》试卷(A卷)附答案...
  7. java常用开发工具大合集
  8. 线程优先级的设定pthread_setschedparam
  9. 电脑桌面出现空白图标无法删除
  10. 计算机系统中的数据计量单位-位(bit)、字节(Byte)、字(word)
  11. 笔记本合上盖子锁定计算机,解决:win10笔记本电脑不合上盖子时也锁定
  12. 我经常关注的博客 - 黎波 - 博客园
  13. Wordpress站点使用七牛云对象储存以及CDN加速
  14. oracle用升序索引去降序查询,Oracle工作札记
  15. English Learning - L2 语音作业打卡 复习双元音 [eɪ] [aɪ] [aʊ] [əʊ] [ɔɪ] [ɪə] [ʊə] [eə] Day39 2023.3.31 周五
  16. Redirected when going from “/index“ to “/xx“via a navigation guard
  17. iOS:iPhone手机分辨率、尺寸、导航栏尺寸、Tabbar尺寸对比(菜鸟教程)
  18. 考研小助手 Mathematica 麦酱教你算不定积分 wolfram alpha
  19. 数组----数组去重(chong)篇
  20. 自己对职业生涯的回顾和总结

热门文章

  1. 使用Docker-镜像命令
  2. container资源限制
  3. 副本的leader选举
  4. Lambda表达式和匿名内部类的区别【理解】
  5. 上传问题分析2--文件重名
  6. 继承thread类创建线程
  7. 定义简单类-接收对象的变量同样是对对象的引用
  8. python中怎么表示整数的点称为整点_智慧职教云课堂APPPython程序设计基础答案公众号...
  9. spring boot添加 LocalDateTime 等 java8 时间类序列化和反序列化的支持
  10. Maven(1)--坐标与依赖