python开篇——初识python
Python是一种广泛使用的解释型、高级和通用的编程语言。Python由荷兰数学和计算机科学研究学会的Guido van Rossum创造,第一版发布于1991年,它是ABC语言的后继者,也可以视之为一种使用传统中缀表达式的LISP方言。Python提供了高效的高级数据结构,还能简单有效地面向对象编程。Python语法和动态类型,以及解释型语言的本质,使它成为多数平台上写脚本和快速开发应用的编程语言,随着版本的不断更新和语言新功能的添加,逐渐被用于独立的、大型项目的开发。
Python支持多种编程范型,包括函数式、指令式、结构化、面向对象和反射式编程。Python解释器易于扩展,可以使用C或C++(或者其他可以通过C调用的语言)扩展新的功能和数据类型。Python也可用于可定制化软件中的扩展程序语言。Python拥有动态类型系统和垃圾回收功能,能够自动管理内存使用,并且其本身拥有一个巨大而广泛的标准库,提供了适用于各个主要系统平台的源码或机器码。
python如今的处境
Python是一种跨平台的计算机程序设计语言,是ABC语言的替代品,属于面向对象的动态类型语言,最初被设计用于编写自动化脚本,随着版本的不断更新和语言新功能的添加,越来越多被用于独立的、大型项目的开发。
python前景比较好,python是 人工智能首选的编程语言,人工智能处于一个高速发展的阶段,市场需求亮逐渐增大,而这方面的人才比较少,人才缺口大,同时python职位薪酬也是比较可观的。
python编程分类介绍
Python:Python是一种面向对象、交互式计算机程序设计语言。它的特点是语法简捷而清晰。由于它的易学、易读的特性,有些学校用它代替C语言作为基础入门的语言。
python优缺点
优点
1.简洁易懂
编程者接触某一种语言,一般不可能从底层开始了解,就像大学里计科系会在第一学期开C语言,而不是第一学期开汇编语言,计算机组成原理,编译原理这些比较深入的课程,C语言是建立在前面几门学问之上的没错,但是作为高级语言,它显然更贴近生活,能让零基础的人更快上手,计算机相关的教育,都是这样自顶向下的过程(当然你一定要说数学是计算机的基础,从小学开始学数学是自底向上,那我也无法反驳),总之,高级语言作为很多人接触计算机这门学问的第一步,相当于整个软件行业的脸面,自然不能生得组成原理,操作系统这样生涩坚晦的”凶恶“面孔,所以高级语言的上手难度直接决定了它的在人力市场中的受欢迎程度
python就是这样一种”面色慈爱“的高级语言,或许对于一个中国人而言,python和其他语言一样都是一堆英文字母,但是从外国人的角度看,写python就像是写作一样顺畅自然,同样,即使对于不以英语为母语的国家,python也以关键字少,结构简单,语法清晰让初学者迅速上手,我记得我入职的时候,从python零基础开始,一周左右就可以顺畅地实现扫雷,俄罗斯方块这类简单的游戏逻辑了,而同样的情况在我刚刚大一的时候,我刷了一个月的HUD才比较顺畅地从高中的Pascal转到C,除了对部分尚未熟悉OOP(面向对象程序设计)的新手可能会有一定的理解难度,python其他的地方学习起来基本上不会有太大的阻力
而且python的代码格式很好,这个和python将缩进作为语法辨识的其中一部分有直接的关系(当然,一定要不按照这个规则来也是可以的,用“;”连接不同行的代码,然后将代码拼成佛祖的形状企图反弹一切bug,但是大部分正常人不会这么做的,不是吗?)由于约定采用缩进作为代码分段的判断依据,一来规范了所有人的代码格式,二来减少了分号,括号这类的使用,这样使用者就不用将注意力放在这些随时跟在代码头尾,千篇一律的字符
2.跨平台
python本质上是用C写的(我知道有Java写的python,不过那可以称之为Jython),所以,一切有C编译器的地方,就等于有python解释器,python和C的关系有点类似于银票和银子的关系,一切可以用银子的地方,一般也适用于银票,因为银票本身就是银子的代表,银票的信誉基于银子作为一般等价物的信誉,这同样适用于python,而C作为一种横行天下数十载的大佬,自然早就有了大量适配的平台,这也为python的成长打下了基础
3.可扩展性
python之所以没有私有,公有,抽象这些东西,完全是出于一种自由的设计思想,事实上在python中实现私有,公有,抽象这些东西并不是做不到的,只需要自己封装一些东西就行了,比如抽象类,只需要让所有默认接口raise异常即可,这个类就从意义上成为了抽象类,同理,私有,公有也可以自己去实现,python没有在底层默认写好,就是出于一种自由的设计思想,虽然抽象类的适用范围很广,但是谁也不能打包票说任何地方都是有抽象类比没有抽象类更好,于是python就将有没有抽象类的选择留给了使用者。
当然,这只是python内在的一个细节,实际上python的可扩展性不仅仅在对内的设计思想上,它对外也是如此,这里的对外即不同语言之间的配合使用,用我身边的例子来说,游戏的服务端可以用C作为底层游戏引擎,python作为逻辑脚本,就像是调用自己亲儿子一样调用C编写的引擎接口,除了跳转不进去之外(可以用文档填补),其他浑然天成,仿佛C语言的底层不存在一样。
缺点
1.效率
动态语言的硬伤自然就是慢,比Java还慢,和C相比差距大概在五倍左右,大规模计算差距超过10倍
这也是python最大的一个问题,有得必有失,python的效率问题也不是技术原因导致的,而且python也对这方面有所弥补,那就是对效率敏感的地方可以用C重写,以达到预期的效率需求,但是治标不治本,追求python的高开发效率的同时,就得舍弃一些性能上的追求。
2.GIL
这是属于python的一个历史遗留问题,当然我所接触的游戏服务端设计刻意避开了多线程的问题,在代码中尽量避开了这一个尴尬的部分(当然据大佬说,多线程容易出错,不好管理),虽然有世界服这种多进程的服务器设计思路,但是大部分维持数据同步的手段都是在脚本里写的,而不是python语言自身实现
python领域的划分
1.人工智能
2.云计算
python语言被认为是最受欢迎的语言 du语言在云计算中,
的典型应用。3.大数据
Python在大数据处理方面的优势有:
1、开发速度快捷,代码量少。
2、内部类型使用成本比较低。
3、数据处理包丰富,使用方便;
4、可以采用Python处理百万级数据。
Python比较适合大数据的抓取、载入和分发,相对其他语言而言更简单高效。一般来说抓取信息需要用到HTTP,以达到切换IP地址的目的,配合完成抓取任务。针对大数据的处理,Python也存在着一定的局限性,可以使用Python做整个流程的框架,核心CPU密集操作采用C语言等编程语言。
4.网络爬虫
1、抓取网页本身的接口
相比与其他静态编程语言,如Java、C#、C++,python抓取网页文档的接口更简洁;相比其他动态脚本语言,如perl、shell,python的urllib2包提供了较为完整的访问网页文档的API。
此外,抓取网页有时候需要模拟浏览器的行为,很多网站对于生硬的爬虫抓取都是封杀的。这时我们需要模拟useragent的行为构造合适的请求,譬如模拟用户登录、模拟session/cookie的存储和设置。在python里都有非常优秀的第三方包帮你搞定,如Requests、mechanize。
2、网页抓取后的处理
抓取的网页通常需要处理,比如过滤html标签、提取文本等。python的beautifulsoap提供了简洁的文档处理功能,能用极短的代码完成大部分文档的处理。其实以上功能很多语言和工具都能做,但是用python能够干得最快、最干净。
- 点赞
- 收藏
- 关注作者
评论(0)