一. python 简介

Python,读作['paɪθɑn],翻译成汉语是蟒蛇的意思,Python 的 logo 也是两条缠绕在一起的蟒蛇的样子,然而 Python 语言和蟒蛇实际上并没有一毛钱关系。Python 命名来自他的开发者所喜欢的一个马戏团。

                    

Python 的口号是:“人生苦短,我用 Python!”。

     

Python 语言是由荷兰程序员 Guido van Rossum,江湖人称“龟叔”,独立开发完成初版的。“龟叔”曾供职于 google,现任职于 dropbox 。1989 年圣诞节期间,在阿姆斯特丹,为了打发圣诞节的无趣,决心开发一个新的脚本解释语言。

Python 第一个公开发行版发行于 1991 年,所以这年被当作 Python 的诞生年。

Python 源代码遵循 GPL(GNU General Public License)协议,这是一个开源的协议,也就是说你可以免费使用和传播它,而不用担心版权的问题。

                            

二. Python 的发展趋势

上图为 IEEE Spectrum2018 年发布的年度编程语言交互排行榜,python 稳居榜首。下图为 2018 年 5 月 PYPL 发布的编程语言排行榜,Python 第一次打败了 C++和 Java。

题外话:

最近,StackOverflow 发布一系列计算公式及编程语言各方面的排行,有兴趣可以看一下,指路:

https://mp.weixin.qq.com/s?__biz=MzA4MjEyNTA5Mw==&mid=2652568328&idx=1&sn=670e046c9fec0c660a2875789424f7a7&chksm=8464d342b3135a54696544e3a44a671505166bd609abad9ec7d97b8bb82bb27ce69646ad3fb5&mpshare=1&scene=23&srcid=0926RMf5vE9Ij0ChrgzYMAL0#rd

前面我们说了 Python 诞生自 1991 年,掰掰指头算算都 28 年了,比 1995 年的 JAVA语言都早了 4 年,为何大器晚成,现在才发力?

其一,在 1990 那个年代,计算机性能相比现在差很多,程序执行速度和效率很重要,快速开发不是第一要务,压榨机器性能才是。

其二,Python 出身不好。

三、Python 语言的特点

1. 简单易学、明确优雅、开发速度快

简单易学:与 C 和 Java 比,Python 的学习成本和难度曲线低很多,更适合新手入门,自底向上的技术攀爬路线。
明确优雅:Python 的语法非常简洁,代码量少,非常容易编写,代码的测试、重构、
维护等都非常容易。
开发速度快:当前互联网企业的生命线是什么?产品开发速度!

2. 跨平台、可移植、可扩展、交互式、解释型、面向对象的动态语言
跨平台:Python 支持 Windows、Linux 和 MAC os 等主流操作系统。
可移植:代码通常不需要多少改动就能移植到别的平台上使用。

可扩展:Python 语言本身由 C 语言编写而成的,你完全可以在 Python 中嵌入 C,从而提高代码的运行速度和效率。你也可以使用 C 语言重写 Python 的任何模块,从根本上改写 Python。

交互式:Python 提供很好的人机交互界面,比如 IDLE 和 IPython。
解释型:Python 语言在执行过程中由解释器逐行分析,逐行运行并输出结果。
面向对象:Python 语言具备所有的面向对象特性和功能,支持基于类的程序开发。
动态语言:在运行时可以改变其结构。

3. “自带电池”,大量的标准库和第三方库

Python 为我们提供了非常完善的基础库,覆盖了系统、网络、文件、GUI、数据库、文本处理等方方面面,这些是随同解释器被默认安装的,各平台通用,你无需安装第三方支持就可以完成大多数工作,这一特点被形象地称作“自带电池(batteries included)”。

4. 社区活跃,贡献者多,互帮互助

技术社区可以给我们对语言的学习和使用提供巨大的帮助,无论是前期的学习,还是日后的工作,只要有问题,技术社区的大牛都可以帮我们解决,有这些助力,可以帮我们更好地了解、学习和使用一门语言。

5. 开源语言,发展动力巨大

Python 是基于 C 语言编写的,并且使用 GPL 开源协议,你可以免费获取它的源代码,进行学习、研究甚至改进。众人拾柴火焰高,有更多的人参与 Python 的开发,促使它更好的发展,被更多的应用,形成良性循环。

四、Python 的缺点

我们光说了 Python 的优点,也得说说它的缺点。任何编程语言都有缺点,Python 也不例外。

其一是运行速度相对慢点。
其二是 GIL(Global Interpreter Lock)全局解释器锁。

五、Python 的应用方向

1. 常规软件开发

Python 支持函数式编程和 OOP 面向对象编程,能够承担任何种类软件的开发工作,因此常规的软件开发、脚本编写、网络编程等都属于标配能力。

2. 科学计算

随着 NumPy, SciPy, Matplotlib, Enthought librarys 等众多程序库的开发,Python 越来越适合于做科学计算、绘制高质量的 2D 和 3D 图像。

 3. WEB 开发

基于 Python 的 Web 开发框架不要太多,比如耳熟能详的 Django,还有 Tornado,Flask。其中的 Python+Django 架构,应用范围非常广,开发速度非常快,学习门槛也很低,能够帮助你快速的搭建起可用的 WEB 服务。

4. 网络爬虫
爬虫是大数据行业获取数据的核心工具。

5. 数据分析

在大量数据的基础上,结合科学计算、机器学习等技术,对数据进行清洗、去重、规格化和针对性的分析是大数据行业的基石。Python 是数据分析的主流语言之一。

6. 人工智能

Python 在人工智能大范畴领域内的机器学习、神经网络、深度学习等方面都是主流的编程语言,得到广泛的支持和应用。

六、Python 的使用者

说了这么多先进的当下最前沿的 Python 技术方向,那么有哪些公司在使用 Python 呢?下面是一张不完全的统计图:

七、 Python 之禅

最后,让我们来看看 Python 的官方格言,也就是俗称的 Python 之禅。在 Python 的IDLE 或者交互式解释器中,输入 import this,你就会看到下面的一段话:

The Zen of Python, by Tim Peters
Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
Readability counts.
Special cases aren't special enough to break the rules.
Although practicality beats purity.
Errors should never pass silently.
Unless explicitly silenced.
In the face of ambiguity, refuse the temptation to guess.
There should be one-- and preferably only one --obvious way to do it.
Although that way may not be obvious at first unless you're Dutch.
Now is better than never.
Although never is often better than *right* now.
If the implementation is hard to explain, it's a bad idea.
If the implementation is easy to explain, it may be a good idea.
Namespaces are one honking great idea -- let's do more of those!

八、Python 环境搭建

Python 是一个跨平台、可移植的编程语言,因此可在 windows、linux/unix 和 Mac os系统中安装使用。安装完成后,你会得到 Python 解释器(负责运行 python 程序),一个命令行交互环境,一个简单的集成开发环境。

首先,几个 Python 相关的网站地址:
Python 官网:http://www.python.org/
Python 文档地址:http://www.python.org/doc/
Python 模块仓库 https://pypi.python.org/pypi

1. Python 版本的选择

Python 有一个独有的版本问题,它同时存在 2.x 和 3.x 版本两条发行线,并且两者在语法上有一些不同之处,很多时候 3.x 并不向 2.x 兼容。根据官方的解释,Python3 是语言的现在和未来,Python2 必将成为过去式。

指路:https://wiki.python.org/moin/Python2orPython3
今后所使用环境:windows7/10 + Python3.7 + Pycharm Community
2. windows 下安装 Python

首先前往官网下载安装文件。选择 download 下的 windows,而不要直接选择右侧的按钮,那样你无法选择下载文件的格式:

注意:3.5+以上的 Python 版本不支持 windows xp 及更低版本的操作系统,并且windows 7 系统必须安装 sp1 包才可以。进入版本选择页面后,请按下图,选择:

下载完成后,我们会得到一个名字为 python-3.7.2-amd64 的安装文件,运行文件,会看到安装窗口:

上图中建议选择 Customize installation,然后使用类似 C:\Python37 的路径,方便以后使用。注意下方的 Add Python3.7.2 to PATH 选项,请务必打上勾,这能省去你配置系统环境变量的功夫。

安装验证:

如果中途没有出现什么错误,那么进入 CMD 界面,运行 python -V(大写的 V),如果执行结果显示 python 3.7.2,则表明安装成功。

或者直接输入 python,进入下图所示的交互式界面,也表示安装成功了。

如果弹出错误: python 不是内部或外部命令,也不是可运行的程序或批处理文件 。 要么是没正常安装,要么就是环境变量没有设置正确。请按下图中的提示设置环境变量。

九、Python 集成开发环境

Python 的学习过程少不了 IDE(集成开发环境),这些 Python 开发工具帮助开发者加快使用 Python 开发的速度,提高效率。高效的代码编辑器或者 IDE 应该会提供插件,工具等能帮助开发者高效开发的特性。

下面推荐几款常见的的 windows 下的 Python IDE,你可以根据自己的喜好来选择适合自己的 Python IDE。

1.IDLE

IDLE 是 python 自带的一个能够编辑、运行、浏览和调试 python 程序的 GUI,可以在几乎任何 python 平台上运行,包括 windows,Linux,Mac OS 等。

优点:免费,简单易用,可移植,自动支持绝大多数平台
局限:保存文件时需明确的添加“.py”;没有图形化界面;没有代码提示;没有包管理
效果图查看:

2.PyCharm

PyCharm 是由 JetBrains 打造的一款 Python IDE。

PyCharm 具备一般 Python IDE 的功能,比如:调试、语法高亮、项目管理、代码跳转、智能提示、自动完成、单元测试、版本控制等。另外,PyCharm 还提供了一些很好的功能用于 Django 开发,同时支持 Google App Engine。

PyCharm 官方下载地址:http://www.jetbrains.com/pycharm/download/
Community 版本完全免费
效果图查看:

3.Sublime Text

Sublime Text 具有漂亮的用户界面和强大的功能,例如代码缩略图,Python 的插件,代码段等。还可自定义键绑定,菜单和工具栏。

Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。

Sublime Text 是一个跨平台的编辑器,同时支持 Windows、Linux、Mac OS X 等操作系统。
效果图查看:

使用 Sublime Text 2 的插件扩展功能,你可以轻松的打造一款不错的 Python IDE,以下推荐几款插件:

 CodeIntel:自动补全+成员/方法提示(强烈推荐)
 SublimeREPL:用于运行和调试一些需要交互的程序(E.G. 使用了 Input()的程序)
 Bracket Highlighter:括号匹配及高亮
 SublimeLinter:代码 pep8 格式检查

4.Eclipse+Pydev

Eclipse 安装了 PyDev 插件后能够支持 Python 开发。Eclipse 是一个流行和强大的 python 开发工具,包含了对代码完成、语法突出显示、语法分析、重构、调试等功能的支持。

缺点是需要安装较大的系统,并且对于某些功能可能需要共享扩展。
效果图查看:

5.Visual Studio
在 VS 中可以创建 python 工程,但是必须下载相应的 python interpreter 才能正常使用。

7.其他 IDE:
 Spyder:强大的交互式 python 开发环境,提供高级的代码编辑、交互测试、调试等特性,
支持 Windows,Linux 等系统。
 Wing:兼容 python2.X 和 python3.X,可以结合 Django, matplotlib 等框架使用
 PyScripter:免费开源

day01-Python介绍,安装,idea的更多相关文章

  1. python Scrapy安装和介绍

    python Scrapy安装和介绍 Windows7下安装1.执行easy_install Scrapy Centos6.5下安装 1.库文件安装yum install libxslt-devel ...

  2. Python介绍、安装、使用

    Python介绍.安装.使用 搬运工:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Python语言介绍 说到Python语言,就不得不说一下它的创始人Guido van Rossu ...

  3. 基础知识:编程语言介绍、Python介绍、Python解释器安装、运行Python解释器的两种方式、变量、数据类型基本使用

    2018年3月19日 今日学习内容: 1.编程语言的介绍 2.Python介绍 3.安装Python解释器(多版本共存) 4.运行Python解释器程序两种方式.(交互式与命令行式)(♥♥♥♥♥) 5 ...

  4. PythonDay02——编程语言、python介绍以及安装解释器、运行程序的两种方式、变量

    一.编程语言 1.1 机器语言:直接用计算机能理解的二进制指令编写程序,直接控制硬件 1.2 汇编语言:用英文标签取代二进制指令去编写程序,本质也是直接控制硬件 1.3 高级语言:用人能理解的表达方式 ...

  5. day02编程语言,Python语言介绍,Python解释器安装,环境变量,Python代码执行,pip,应用程序使用文件的三步骤,变量,变量的三大组成,比较,pycharm

    复习 重点: 1.进制转换:二进制 与十六进制 2.内存分布:栈区 与堆区 # 二进制1111转换十六进制 => 8 4 2 1 => f 10101100111011 => 2a7 ...

  6. Python基础【day01】:python介绍发展史(一)

    本节内容 Python介绍 发展史 Python 2 or 3? 一. Python介绍 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏 ...

  7. python基础1之python介绍、安装、变量和字符编码、数据类型、输入输出、数据运算、循环

    开启python之路 内容概要: 一.python介绍 二.安装 三.第一个python程序 四.变量和字符编码 五.用户输入 六.数据类型 七.一切皆对象 八.数据运算 九.if else 流程判断 ...

  8. 002 python介绍/解释器安装/变量/常量/内存管理

    编程语言介绍 机器语言 :直接用计算机二进制指令编写程序,直接控制硬件 汇编语言:用英文标签取代二进制指令编写程序,本质也是直接控制硬件 高级语言:用人能理解的表达方式来编写程序,无需考虑硬件的操作细 ...

  9. python介绍、安装及相关语法、python运维、编译与解释

    1.python介绍 Python(英国发音:/ˈpaɪθən/ 美国发音:/ˈpaɪθɑːn/)是一种广泛使用的解释型.高级编程.通用型编程语言,由吉多.范罗苏姆创造,第一版发布于1991年.可以视 ...

  10. py-2 python介绍与安装

    一.python介绍 1.python背景 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,Guido开始写能够解释Python语言语法的解释器.Py ...

随机推荐

  1. [jzoj 5926] [NOIP2018模拟10.25] naive 的图 解题报告(kruskal重构树+二维数点)

    题目链接: https://jzoj.net/senior/#main/show/5926 题目: 题解: 显然最小的最大路径在最小生成树上(最小生成树=最小瓶颈生成树) 于是我们建出kruskal重 ...

  2. 关于JQuery中的事件冒泡

    什么是事件冒泡? 事件冒泡就是当父元素和子元素存在同一事件时在子元素的事件处理程序中会自动调用其父级元素的事件处理程序. demo: <!DOCTYPE html> <html xm ...

  3. 关于jsp web项目,jsp页面与servlet数据不同步的解决办法(报错404、405等)即访问.jsp和访问web.xml中注册的/servlet/的区别

    报错信息: Type Status Report Message HTTP method GET is not supported by this URL Description The method ...

  4. POJ 3278 Catch That Cow【BFS】

    题意:给出n,k,其中n可以加1,可以减1,可以乘以2,问至少通过多少次变化使其变成k 可以先画出样例的部分状态空间树 可以知道搜索到的深度即为所需要的最小的变化次数 下面是学习的代码----@_@ ...

  5. CF666E Forensic Examination 广义后缀自动机_线段树合并_树上倍增

    题意: 给定一个串 $S$ 和若干个串 $T_{i}$每次询问 $S[pl..pr]$ 在 $Tl..Tr$ 中出现的最多次数,以及出现次数最多的那个串的编号. 数据范围: 需要离线 题解:首先,很常 ...

  6. 简单暴力的TP5多主题方案

    一个小项目,需要配置多套前端主题.解决的思路是根据域名加载不同的主题配置. 一.在应用目录 application 下创建 common 目录. 二.application/common 目录下创建 ...

  7. Django模版系统

    一.什么是模板? 只要是在html里面有模板语法就不是html文件了,这样的文件就叫做模板. 二.模板语法分类 一.模板语法之变量:语法为 {{ }}: 在 Django 模板中遍历复杂数据结构的关键 ...

  8. react-native 运行提示红屏 error: bundling failed: ambiguous resolution: module `/User/xxx/Project/ico/index.js` tries to require `react-native`, but there are several files providing this module. You can de

    运行 react-native start 报错 执行这2个进行清除缓存问题 yarn start -- --reset-cache  npm start -- --reset-cache  

  9. ubuntu安装和使用

    1.查看ubuntu是32位还是64位 教程:jingyan.baidu.com/article/db55b609ab531f4ba30a2f13.html 2.安装maven 教程:www.linu ...

  10. java 对象 拆箱装箱 编译和反编译的验证

    创建对象 package 创建对象的个数; public class main { public static void main(String[] agrs){ Check c1=new Check ...