python 的起源
python 的创始人 Guido van Rossum(吉多·范罗苏姆,俗称‘龟叔’)。1989 年为了打发无聊的圣诞节,龟叔决定开发一门新的语言--python,中文名蟒蛇。
python优缺点
优点:
1. 简单易学:
python 阅读一个良好的 python 程序就感觉像是在读一篇文章一样。
2. 开发效率非常高:
python 有非常强大的第三方库,基本上你想通过计算机实现任何功能,python 官方库里都有相应的模块进行支持,直接下载调用后,在基础库的基础上再进行 开发,大大降低开发周期,避免重复造轮子。
3. 面向对象:
python 语言编程思想更加符合我们人的逻辑思维,而不用再像 C 语言那样去理 解计算机运行思维。并且无需考虑如何管理你的程序使用的内存一类的底层细 节。更加注重我们的业务逻辑。
4. 免费、开源:
你可以自由的阅读它的源代码、对它做改动。python 希望由更加优秀的人来继 续改进和创造 python。
5. 可移植性
由于它的开源本质,python 已经被移植在许多平台上(经过改动使它能够工作 在不同平台上)。
6. 可扩展性
如果你需要你的一段关键代码运行得更快或者希望某些算法不公开,你可以把你 的部分程序用 C 或 C++编写,然后在你的 python 程序中使用它们。
7. 丰富的库
python 标准库确实很庞大。它可以帮助你处理各种工作,包括正则表达式、文 档生成、单元测试、线程、数据库、网页浏览器、CGI、FTP、电子邮件、XML、 XML-RPC、HTML、WAV 文件、密码系统、GUI(图形用户界面)、Tk 和其他与系 统有关的操作。
缺点: :
1. 运行速度慢
python 的运行速度相比 C 语言确实慢很多,跟 JAVA 相比也要慢一些,但是在大 多数情况下 python 已经完全可以满足你对程序速度的要求,除非你要写对速度 要求极高的搜索引擎等,这种情况下,当然还是建议你用 C 去实现的。
2. 中文资料缺乏
好的 python 中文资料屈指可数
3. 线程不能利用多核
这是 python 被人诟病最多的一个缺点,GIL 即全局解释器锁(Global Interpreter Lock),是计算机程序设计语言解释器用于同步线程的工具,使得 任何时刻仅有一个线程在执行,python 的线程是操作系统的原生线程。
应用场景
1. web 应用开发
众多大型网站均为 python 开发。
豆瓣:公司几乎所有的业务均是通过 python 开发的
知乎:国内最大的问答社区,通过 python 开发(Quora)
春雨医生:国内知名的在线医疗网站是用 python 开发的
还有搜狐、金山、腾讯、盛大、网易、百度、阿里、淘宝、土豆、新浪、果壳等公司都在使用 python 完成各种各样的任务。
国外的网站:
谷歌:Google App Engine、code.Google.com、Google earth、谷歌爬虫、Google广告等项目都在大量使用 python 开发
CIA:美国中情局网站就是用 python 开发的
NASA:美国航天局(NASA)大量使用 python 进行数据分析和运算
YouTube:世界上最大的视频网站 YouTube 就是 python 开发的
Dropbox:美国最大的在线云存储网站,全部用 python 实现,每天网站处理 10亿个文件的上传和下载
中公优就业----python 教研室
5
Instagram:美国最大的图片分享社交网站,每天超过 3 千万张照片被分享,全部用 python 开发
Facebook:大量的基础库均通过 python 实现的
Redhat:世界上最流行的 Linux 发新版本中的 yum 包管理工具就是用 python 开发的
2. 科学计算、人工智能
python 由于具有编写简单、改动少等特点。特别适合用在机器学习方向。并且提供了丰富的库。减少了学习人工智能的成本。
NumPy,SciPy,Matplotlib 可以让 python 程序员编写科学计算程序。
3. 服务器软件(网络软件)
python 对于各种网络协议的支持很完善,因此经常被用于编写服务器软件、网络爬虫。第三方库 Twisted[ˈtwɪstɪd] 支持异步网络编程和多数标准的网络协议(包含客户端和服务器),并且提供了多种工具,被广泛用于编写高性能的服务器软件。
4. 操作系统管理、服务器运维的自动化脚本
在很多操作系统里,python 是标准的系统组件。 大多数 Linux 发行版以及NetBSD、OpenBSD 和 Mac OS X 都集成了 python,可以在终端下直接运行 python。有一些 Linux 发行版的安装器使用 python 语言编写,比如 Ubuntu 的 Ubiquity 安
装器,Red Hat Linux 和 Fedora 的 Anaconda 安装器。Gentoo Linux 使用 python 来编写它的 Portage 包管理系统。python 标准库包含了多个调用操作系统功能的库。
通过 pywin32 这个第三方软件 包,python 能够访问 Windows 的 COM 服务及其它 Windows API。使用 Ironpython,python 程序能够直接调用.Net Framework。一般说来,python 编写的系统管理脚本在可读性、性能、代码重用度、扩展性几方面都优于普通的 shell 脚本。
5. 游戏
很多游戏使用 C++编写图形显示等高性能模块,而使用 python 或者 Lua 编写游戏的逻辑、服务器。相较于 python,Lua 的功能更简单、体积更小;而 python 则支持更多的特性和数据类型
职业及其薪资
python工程师(薪资概况:8000+)
发展方向:
验证算法:对计算或者公式进行验算
快速开发:将python具有各种库等优势发展,以更少的代码实现更多的功能,具有大量的框架,减少了不必要的麻烦。
测试运维:是进行监控,部署,网络配置,日志分析,安全检测 等等许许多多的方面
数据分析:运用其工具将数据进行分析,在AI方面运用广泛。
爬虫工程师:(薪资:10k+)
如果我们把互联网比作一张大的蜘蛛网,数据便是存放于蜘蛛网的各个节点,而爬虫就是一只小蜘蛛,沿着网络抓取自己的猎物(数据)爬虫指的是:向网站发起请求,获取资源后分析并提取有用数据的程序;从技术层面来说就是 通过程序模拟浏览器请求站点的行为,把站点返回的HTML代码/JSON数据/二进制数据(图片、视频) 爬到本地,进而提取自己需要的数据,存放起来使用;
游戏开发:(薪资:10k+)
Python运行速度慢,如果要做复杂的游戏用C++会更好,但是它有很多开源项目,可以开发一些简单的游戏,很适合新手入门。Python有像pygame等各种优越的库,在这个过程中有很多帮助。Pygame库专门用于游戏开发,你可以尝试使用2D图形建模3D,并使用图像和简单渲染制作简单的游戏。当你有了3D游戏的逻辑时,可以学习PyOpenGL,它是最棒的3D库之一。