[TOC]
## 1.Python入门
### 简介
Python 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。
Python 的设计具有很强的可读性,相比其他语言经常使用英文关键字,其他语言的一些标点符号,它具有比其他语言更有特色语法结构。
- **Python 是一种解释型语言:** 这意味着开发过程中没有了编译这个环节。类似于PHP和Perl语言。
- **Python 是交互式语言:** 这意味着,您可以在一个 Python 提示符 >>> 后直接执行代码。
- **Python 是面向对象语言:** 这意味着Python支持面向对象的风格或代码封装在对象的编程技术。
- **Python 是初学者的语言:**Python 对初级程序员而言,是一种伟大的语言,它支持广泛的应用程序开发,从简单的文字处理到 WWW 浏览器再到游戏。
### Python发展史
Python 是由 Guido van Rossum 在八十年代末和九十年代初,在荷兰国家数学和计算机科学研究所设计出来的。
Python 本身也是由诸多其他语言发展而来的,这包括 ABC、Modula-3、C、C++、Algol-68、SmallTalk、Unix shell 和其他的脚本语言等等。
像 Perl 语言一样,Python 源代码同样遵循 GPL(GNU General Public License)协议。
现在 Python 是由一个核心开发团队在维护,Guido van Rossum 仍然占据着至关重要的作用,指导其进展。
### Python特点
- **1.易于学习:**Python有相对较少的关键字,结构简单,和一个明确定义的语法,学习起来更加简单。
- **2.易于阅读:**Python代码定义的更清晰。
- **3.易于维护:**Python的成功在于它的源代码是相当容易维护的。
- **4.一个广泛的标准库:**Python的最大的优势之一是丰富的库,跨平台的,在UNIX,Windows和Macintosh兼容很好。
- **5.互动模式:**互动模式的支持,您可以从终端输入执行代码并获得结果的语言,互动的测试和调试代码片断。
- **6.可移植:**基于其开放源代码的特性,Python已经被移植(也就是使其工作)到许多平台。
- **7.可扩展:**如果你需要一段运行很快的关键代码,或者是想要编写一些不愿开放的算法,你可以使用C或C++完成那部分程序,然后从你的Python程序中调用。
- **8.数据库:**Python提供所有主要的商业数据库的接口。
- **9.GUI编程:**Python支持GUI可以创建和移植到许多系统调用。
- **10.可嵌入:** 你可以将Python嵌入到C/C++程序,让你的程序的用户获得"脚本化"的能力。
### Python缺点
第一个缺点就是运行速度慢,和C程序相比非常慢,因为Python是解释型语言,你的代码在执行时会一行一行地翻译成CPU能理解的机器码,这个翻译过程非常耗时,所以很慢。而C程序是运行前直接编译成CPU能执行的机器码,所以非常快。
但是大量的应用程序不需要这么快的运行速度,因为用户根本感觉不出来。例如开发一个下载MP3的网络应用程序,C程序的运行时间需要0.001秒,而Python程序的运行时间需要0.1秒,慢了100倍,但由于网络更慢,需要等待1秒,你想,用户能感觉到1.001秒和1.1秒的区别吗?这就好比F1赛车和普通的出租车在北京三环路上行驶的道理一样,虽然F1赛车理论时速高达400公里,但由于三环路堵车的时速只有20公里,因此,作为乘客,你感觉的时速永远是20公里。
第二个缺点就是代码不能加密。如果要发布你的Python程序,实际上就是发布源代码,这一点跟C语言不同,C语言不用发布源代码,只需要把编译后的机器码(也就是你在Windows上常见的xxx.exe文件)发布出去。要从机器码反推出C代码是不可能的,所以,凡是编译型的语言,都没有这个问题,而解释型的语言,则必须把源码发布出去。
这个缺点仅限于你要编写的软件需要卖给别人挣钱的时候。好消息是目前的互联网时代,靠卖软件授权的商业模式越来越少了,靠网站和移动应用卖服务的模式越来越多了,后一种模式不需要把源码给别人。
再说了,现在如火如荼的开源运动和互联网自由开放的精神是一致的,互联网上有无数非常优秀的像Linux一样的开源代码,我们千万不要高估自己写的代码真的有非常大的“商业价值”。那些大公司的代码不愿意开放的更重要的原因是代码写得太烂了,一旦开源,就没人敢用他们的产品了。
### 编程语言排行
| Feb 2019 | Feb 2018 | Change | Programming Language | Ratings | Change |
| -------- | -------- | ---------------------------------------------------- | -------------------- | ------- | ------ |
| 1 | 1 | | Java | 15.876% | +0.89% |
| 2 | 2 | | C | 12.424% | +0.57% |
| 3 | 4 | ![change](https://www.tiobe.com/images/up.png) | Python | 7.574% | +2.41% |
| 4 | 3 | ![change](https://www.tiobe.com/images/down.png) | C++ | 7.444% | +1.72% |
| 5 | 6 | ![change](https://www.tiobe.com/images/up.png) | Visual Basic .NET | 7.095% | +3.02% |
| 6 | 8 | ![change](https://www.tiobe.com/images/up.png) | JavaScript | 2.848% | -0.32% |
| 7 | 5 | ![change](https://www.tiobe.com/images/down.png) | C# | 2.846% | -1.61% |
| 8 | 7 | ![change](https://www.tiobe.com/images/down.png) | PHP | 2.271% | -1.15% |
| 9 | 11 | ![change](https://www.tiobe.com/images/up.png) | SQL | 1.900% | -0.46% |
| 10 | 20 | ![change](https://www.tiobe.com/images/upup.png) | Objective-C | 1.447% | +0.32% |
| 11 | 15 | ![change](https://www.tiobe.com/images/upup.png) | Assembly language | 1.377% | -0.46% |
| 12 | 19 | ![change](https://www.tiobe.com/images/upup.png) | MATLAB | 1.196% | -0.03% |
| 13 | 17 | ![change](https://www.tiobe.com/images/upup.png) | Perl | 1.102% | -0.66% |
| 14 | 9 | ![change](https://www.tiobe.com/images/downdown.png) | Delphi/Object Pascal | 1.066% | -1.52% |
| 15 | 13 | ![change](https://www.tiobe.com/images/down.png) | R | 1.043% | -1.04% |
| 16 | 10 | ![change](https://www.tiobe.com/images/downdown.png) | Ruby | 1.037% | -1.50% |
| 17 | 12 | ![change](https://www.tiobe.com/images/downdown.png) | Visual Basic | 0.991% | -1.19% |
| 18 | 18 | | Go | 0.960% | -0.46% |
| 19 | 49 | ![change](https://www.tiobe.com/images/upup.png) | Groovy | 0.936% | +0.75% |
| 20 | 16 | ![change](https://www.tiobe.com/images/downdown.png) | Swift | 0.918% | -0.88% |
> 来源: https://www.tiobe.com/tiobe-index/
### 应用范围