1. Python简介¶
目录
python的前世今生¶
前世¶
时间是1989年圣诞节期间,当我们不知道在哪里打着碟的时候,在荷兰的首都阿姆斯特丹,著名的程序员“龟叔”(Guido van Rossum)为了打发无聊的圣诞节,开发出了一种新的编程语言,它的名字就是大名鼎鼎的Python(蟒蛇),取名自英国20世纪70年代首播的电视喜剧《蒙提.派森的飞行马 戏团》(Monty Python's Flying Circus)。
ps: 您没听错,python只是人家为了打法无聊而写出的编程语言(汗),大神不愧是大神,手动膜拜...
您可能注意到了,python是蟒蛇的意思,所以,如果您立志要成为一位Python程序员(Pythonist),以后亲戚朋友问起您工作的时候,您可以说:“哦,我的工作吗? 我是专业玩蛇的...”
今生¶
python发展至今,无时无刻都在影响着我们的生活(可能您还没发现),下面是一些著名的应用(随便看看就行,网上copy的...)
- 谷歌: Google App Engine 、code.google.com 、Google earth 、谷歌爬虫、Google广告等项目都在大量使用Python开发
- CIA: 美国中情局网站就是用Python开发的
- NASA: 美国航天局(NASA)大量使用Python进行数据分析和运算
- YouTube: 世界上最大的视频网站YouTube就是用Python开发的
- Dropbox: 美国最大的在线云存储网站,全部用Python实现,每天网站处理10亿个文件的上传和下载
- Instagram: 美国最大的图片分享社交网站,每天超过3千万张照片被分享,全部用python开发
- Facebook: 大量的基础库均通过Python实现的
- Redhat: 世界上最流行的Linux发行版本中的yum包管理工具就是用python开发的
- 豆瓣: 公司几乎所有的业务均是通过Python开发的
- 知乎: 国内最大的问答社区,通过Python开发(国外Quora)
- 春雨医生: 国内知名的在线医疗网站是用Python开发的
除上面之外,还有搜狐、金山、腾讯、盛大、网易、百度、阿里、淘宝 、土豆、新浪、果壳等公司都在使用Python完成各种各样的任务。
为什么学python¶
简单易学¶
Python是一种代表
简单主义思想的语言,阅读一个良好的Python程序就感觉像是在读英语一样,它使你能够专注于解决问题而不是去搞明白语言本身,Python有极其简单的语法容易上手。
而且学python还有另外一个不为人知的好处...... 保护自己的发量,下面是比较著名的几个编程语言创始人
多用途¶
依靠着python内置的库及其强大的第三方库,python几乎在任何的领域都可以发光发热,如果把编程语言当作武器,那么python就像是
流行的¶
一门编程语言的热门程度,可以通过Tiobe编程语言排行榜来看出
热门的语言意味着更多的人使用,如果您遇到不懂的问题,愿意替您解答的人也更多,您的学习之路将会更加畅通无阻
2020年7月,python在Tiobe排行榜中位列第三
国家认可¶
- 从 2018 年起,浙江省信息技术教材将不会在使用晦涩难懂的 VB 语言,而是改学更简单易懂的 Python 语言。也就是说,Python 将纳入高考内容之一。
- 2018年起,Python列入全国计算机等级考试
- 山东省最新出版的小学信息技术六年级教材已经加入了 Python内容,小学生都开始接触 Python 语言了!
前景好¶
- python的薪资统计图
- python岗位的需求数量
- python招聘需求最热门的城市
python的应用领域¶
网络爬虫¶
网络爬虫(Spider蜘蛛),啥是爬虫? 爬虫其实就是一个程序,这个程序根据编写者的目的,在互联网这张大网上,有目的地边移动边抓取它被告知要抓的东西。
- 比如您觉得自己的斗图功力实在太弱,您就可以通过编写爬虫程序到某些表情包网站去将它的所有表情图抓下来,保存到您的电脑上,以后聊天被怼,反手就一张表情过去...
- 如果您看过社交网络这部电影,你就会知道其实主人公马克其实利用了爬虫手段抓取了校内所有女生的资料,并制作名为“Facemash”的网站供同学们对辣妹评分...
- 大学抢课抢不过? 写个爬虫来抢,手速谁够您快?
爬虫还可以做很多很多有趣的事情,所以如果您立志要做一位python爬虫开发工程师,您可以称自己为Spider-Man
web后端¶
web后端是啥,其实只要村里的网通了,我们每天都会接触到它,在您刷微信的时候、在您欣赏唯美电影的时候、在您看这篇文章的时候...
如果把一个网站比作一个房子,web后端就像房子里的家具,没有了家具,就只能做个面壁者了
桌面软件开发¶
python也有丰富的图形化界面(GUI)相关的工具库,您可以开发出属于自己的桌面软件
游戏开发¶
小时候就梦想着能够开发出一款属于自己的游戏,然后虐爆里面所有的渣渣,有了python,我可以!
自动化运维¶
如果您是一名运维人员,那么掌握python将使您的运维功力更上一层楼,许多linux操作系统里本身就自带了python解析器,并且含有许多python编写的程序,许多运维任务您不但可以用Shell脚本来执行,您还可以用python来达成!
自动化测试¶
如果您是一名测试人员,您不满足于别人写好的测试工具,想自己再加点料,大可以利用python造起轮子来,虽然python已经有大量测试相关的库了,接口测试啥的更是不在话下了
科学计算¶
计算机之所以叫计算机,因为它就是为了计算而生的,从第一代计算机ENIAC用来计算弹道,到现在的银河巨型机,它们都在人类不可及的算力方面闪光着
很多的科学家在用python进行大量的科学计算,python的祖师爷“龟叔”也是一名数据科学家
人工智能与大数据¶
人工智能(AI)与大数据领域要解决的问题几乎都是
计算密集型的,python来做的话速度有点慢(计算密集型任务需要利用多核CPU),那为什么那么多人用python来做AI?
其实真正的计算是C/C++语言写好的底层接口,python来调用接口,这样我们只需要专注于如何去解决问题了,就像打篮球一样,C/C++帮我们布置好场地和篮球,python只需要专注于如何将球投入蓝内
这样就将C/C++的速度优势和python的简单易懂结合在一起,胜利会师!
python的优缺点¶
优点¶
- 简单易学(语法较简单)
- 开发效率高(比如,完成同一个任务,C语言要写1000行代码,Java只需要写100行,而Python可能只要20行)
- 强大丰富的库支持(如果把编写一个程序比作一场LOL比赛,就相当于您开局已经拥有6神装了,剩下的就看您的操作了!)
- 可移植(一次编写,到处运行,拖拉机终于可以拉到高速公路上跑了)
缺点¶
- 速度慢(代码少的代价就是跑的速度会相对较“慢”,可能C语言要0.1秒、Java要0.15秒、而Python要0.2秒,但是绝大多数情况,您甚至察觉不出来这种快慢)
- 代码加密难(因为Python是解析型的编程语言,它不像编译型的语言,解析型的语言就像思维透明的大脑,编译型的语言就像通过一个人的著作去透析他的大脑一样,尽管多少都可以看出些来,但是始终都是有差别的)
- 线程无法充分利用CPU性能(因为python的官方解释器CPython带有GIL锁,如果要利用多核优势的话,得用多进程)
总结¶
- python很牛逼
- 您值得拥有
- cut the crap, let's do this!