正经的,很久没写过课件了。可能不会那么顺畅。 望各位江湖大佬多多指点批评。
Python是怎么来的?
Python的创始人为吉多·范罗苏姆(Guido van Rossum)。1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语言的一种继承。最新的TIOBE排行榜,Python已经占据世界第三名的位置,Python崇尚优美、简单、清晰,是一个优秀并广泛使用的语言。
这里有必要说一下Python的命名问题. Python这个名字其实是来自于Guido(龟叔)所挚爱的电视剧Monty Python’s Flying Circus。老外起名字几乎都是这样,想到啥就叫啥。根本就没有什么章法,记得当初学Java的时候,有个框架叫Hibernate,本意是冬眠,还有一个Spring,本意是温泉或者春天。类似的还有很多,比如android每一代的版本名字都是食物。所以啊,名字这东西。属实没有啥章法。就像某小品里的一句台词“我叫狗剩子我找谁去了呢?败名好养活”。
Python能干啥?
这个问题问的好。学之不知其所用,白学!
python第一个擅长的就是自动化运维(运维专业必修课),曾经我的一个学生是腾讯的运维工程师, 一个人要管理3000+服务器。如果手工来搞的话,得搞死。有了python加上一些shell轻松搞定。
python擅长的第二个领域当属爬虫了。python是一门脚本语言。“简单”是其最优秀的特质。可能三言两语就可以搞定一个性能不错的小爬虫。这也是python安身立命的一个本领。
python擅长的第三个领域应该是数据分析了。传统的数据分析以tableau和excel为主,有了Python的加持,可以让数据分析全自动化。事半功倍是也。
python擅长的第四个领域就是近几年十分火热的机器学习和人工智能了。为什么人工智能的兴起会带动python呢?这就要说回人工智能的本质了。我们知道计算机的本质其实是数学,而机器学习里面需要套用大量又难搞的数学公式。早期的搞人工智能的并不是计算机专业的。更多的是数学系的大佬。那问题就来了,搞数学的,想把数学公式套用在计算机上进行试验就是个难搞的问题了。之前用MATLAB进行数学计算的数学系大佬发现这玩意貌似并不高效。于是乎他们就尝试其他编程语言来进行尝试。众所周知,python的语法是最容易上手的。再加上python众多优秀的第三方模块让这些平时搞数学的家伙尝到了甜头。顺理成章的,python就成为了人工智能领域的首选语言。
不过,这里跟给为小白白们要多说一丢丢,python虽然适合搞人工智能,但不代表其他语言无法胜任机器学习的工作。也不代表人工智能领域就非常容易。毕竟大多数人的数学成绩是不过关的。
在此我要郑重的对小白白们说一句:小白白白白白们不要上来就搞人工智能。
python擅长的最后一个领域其实有点儿牵强,不过确实算是一个领域。就是pythonweb。随着Django,Flask,Sanic等框架的问世,Python在web方向上也确实有所成就。但是,有一说一。做大型web服务,还是Java比较适合。搞过Django的应该能看出来,Django非常多的功能其实原理和思想就是来自于Java的Servlet和Hibernate。并且用起来还不如人家那个舒服。 而Flask和Sanic就不多说了。套了一个springMVC的Python框架而已。最关键的是效率还不高。你说这玩意扯不扯呢。
之所以Pythonweb有如此之多的问题,我依然把它总结成了一个重要的领域呢,因为在国内确实有些公司在使用Pythonweb来开发web应用。仅此而已。
解释型?编译型?
本来呢,我是不想说这个的。因为不论是哪种类型,对于刚入门的小白而言其实意义并不大。
首先,编程语言一般根据其运行的过程不同分为三类。
第一类:解释型
解释型:写好的代码交给解释器,由解释器逐行的进行解释运行。由于程序是运行在解释器上的,一切与操作系统的交互都交给了解释器。那针对不同的操作系统只需要提供不同的解释器就可以了。所以往往解释型语言会有良好的跨平台性。-->百度上应该都是这么说的。 先看着,后面会做具体的解释。
第二类:编译型
编译型:写好的代码需要经过编译器的编译。然后拿着编译之后的结果进行执行,典型的就是我们要用的QQ,迅雷等。他们有个统一的问题,由于在写程序的使用调用了非常多的操作系统函数库,这就导致编译后的内容只能在当前这种操作系统上执行。拿到其他平台就不灵了(其他平台可能没有这些函数库)。
第三类:先编译再解释。
先编译再解释:这个就很容易了,先编译成xxx,然后拿着xxx去找解释器执行。你可以认为是结合了上面两种类型的优缺点的这么一个折中的选择
性能上的差异:
咱们首先要明白,不论哪种类型,都必须要把我们写好的代码变成01的机器码然后再交给计算机去执行的。那么问题就来了。 解释型语言由于是一行一行的进行执行,也就是读一行,翻译一行,然后执行。每一行都要这样。效率可想而知。。。 而编译型,你可以认为是一次性翻译成01机器码,然后每次执行拿着翻译好的机器码就可以了,其效率必然要比解释型语言要高很多。不幸的是python是一门解释型编程语言。这就是很多大佬总说python效率低的一个重要因素。而C语言就是典型的编译型语言,所以他效率高。所以它适合做一些操作系统方面的更底层的工作。
看到这里你可能会产生疑虑,python这么慢要不要学?No! 不要有顾虑,所谓的慢也是要有对比的。比如一条程序用C来写可能执行需要0.00001秒,python慢了100倍,那也是0.001秒,0.001秒对于你而言,貌似没什么感觉吧。况且,对于某些特殊场景(爬虫)我们必须要让程序慢下来。否则很容易封IP的好吧。说这个什么意思呢?叫闻道有先后,术业有专攻。没有最好,只有最适合!
行了,第一篇就这样吧。 有编程方面的问题,随意私信或者评论。。。