学习python之前,我们对python做一个简单的了解,大家可见,这几年来,python的热度直线上升,是编程界名副其实的“大网红”,大家会造成一个误区,以为python只是近几年新兴流行的语言,流行是真的,新兴是假的,最早追述的上世纪90年代初,其实是非常有积淀的,随着这几年大数据和人工智能的流行,python才真正意义上成为了主流语言,在国内有俩家公司,他们的产品是以python语言做主导的,一个是豆瓣,一个是知乎,其实远远不止他们俩,python就像一个技术的润滑剂,大多数的互联网公司或多或少都会用。
目前python主流有两个版本,python2和python3,python3已经是主流版本,2属于维护期,所以这里我们主要学习python3
从基础变量到复杂的高阶函数,有很多同学写了很多年代码,但是因为对基础上的忽视,导致出现很多bug,基础不牢固,很难写出优质的代码,有时候编程会出现瓶颈,其实无疑不是视野不开阔,就是基础不牢固,所以我觉得 了解语法是编程的先决条件,精通语法是优质编程的必要条件
大家肯定都听说过面向对象,但是这是啥玩意,怎么把它用好,才是所欠缺的东西,面向对象不仅仅是python独有,是一种思维方式,是代码组织购构成的方式,学的不是代码,是思维
python有一句话,Life is Simple,I Use Python — 人生苦短,我用python
如果只能说一个特点的话,那么我就说,这玩意,简洁
简洁 优雅的代码会降低编程成本,提高编程效率,有时候阅读python源代码时,其实就和英文小说差不多,肯定有的同学说我在扯犊子,没错,我就是在扯犊子。
如果在说一个,那就是强大的三方库
比如电子邮件,GUI
用python的,都听说过pythonic,但是时啥玩意呢,其实翻译过来就是 很python ,就是说你写的代码pythonic,自然,独特,自然就是他的语法就像和人正常说话一样,特别自然,独特,我们把这成为pythonic
下边用代码看下啥是pythonic
如何交换两个变量?
其他的语言我们一般这样做
temp = x
x = y
y = temp
先把x赋值给一个临时变量temp,然后再把变量y给x,最后再把temp给y
下边看看python怎么个pythonic
x,y = y,x
是的,这玩意就像人名币玩家,没有花里胡哨,一下完事,好用,非常pythonic
这个特点也说不出啥证据,但是python确实简化了很多概念,相对来说易于学习,相对,就是毕竟编程没有简单的,想达到一定的造诣,还要付出很多的努力的
现在来看看python能做什么
所谓万金油,就是说你能想到,就能做到
爬虫、大数据、自动化测试,自动化运维,Web,AI
python最为知名的一个运用场景,互联网数据非常重要,爬虫在数据时代扮演的角色非常重要,例如搜索引擎核心,就是爬虫,今日头条,本质上也是爬虫
做大数据分析会用到Spark框架,python支持Spark
非常体现python工具性特点,例如我们对产品做支持的时候,后台并不是只有一个单一的站点,又很多站点,如果其中的一个站点宕机了之后,我们可能使用别的站点补充上前,这个时候如果我们用人工的方式处理,时效性就会不及时,那么当我们遇到问题是,就需要一个工具能自动判别哪个服务宕机了,自动的启动我们备选的服务主机
自动化测试领域,python的广泛度极高,编写自动化工具,进行自动化办公,让工具代替人力做重复性高的工作,将人力解放出来做更有意义的事情,一定程度上保证效率和人力的资源分配的均衡,在不同的阶段介入自动化会有不同的效果,其意义在于降低成本,提高效率
这是非常强大的,可以混合其他语言来编程,能够把其他语言制作的各种模块结合在一起
说这么多,其实python的真正用法就是,当你遇到问题时,随手拿起python,写一个工具,解决你的问题,这,才是python最正确的打开方式!(加个感叹号以提高逼格)
1、python是语言,不是框架
初学者要分明语言和框架的区别
框架是什么呢?
框架是以语言为基础,构建一系列基础功能的集合,如果我们要开发一个应用程序的话,框架我们不一定选择,但是语言不能没有,在语言的基础上使用框架,是为了大大的提高我们的工作效率
2、python是跨平台语言
可以运行在Windows、Linux及MacOs,现在不开源的语言太少了,脸.net都在逐步开源
3、缺点
吹了这么久,其实世界上没有完美的东西,语言也一样,有优点就有缺点,python最主要的缺点就是 慢,说慢就要有对比,我们对比C C++ Java来比,总体运行效率较慢,
1、编译型(C C++)
2、解释型(Javascript、Python)
对于编译型语言来说,我们编译器会把c c++写的代码根据本地机器的环境编译成机器码,这些机器码是非常接近我们底层的,越接近底层,执行效率就越高,对于解释型的语言,是没有预先编译的过程,也就是我们每一次去执行一段应用程序的代码,解释器都要去解释相应的代码,相对来说解释的过程比较慢。
那有的运动员会问了,编译型的效率高,还要解释型的干毛?
效率这个词看你怎么理解 ,效率可以分为两类,
1、运行效率
2、开发效率
对于语言来说,是鱼和熊掌的关系,别说你成年人你都要,古人说不能要,你奏不能要,编译型更接近底层,所以快,但是要操作更多的底层API,这样一来开发效率就比较低,python是高级语言,不过多的去关心底层,关注更高的开发效率,所以语言就像处对象,没有好和坏,只有合适不合适,如果项目对性能要求非常非常高,那么C C++,如果不是很高,就要看重开发效率,而且现在计算机的性能越来越好,更应多的时候关注开发效率,人的时间远比机器要宝贵,反正,每种语言都会有自己的优点,不会说开发效率底,运行又慢的,存在就是合理,没钱又不帅,街边的大长腿妹子就看看得了,不合理的,快慢在于好的编程思维,对比是在极限情况下的对比,思维不好,即使用C,也会慢,思维好,python依然很快
如果,人一生只能选择一种语言,那么我会毫不犹豫的选择python