一、python介绍

1.python历史背景

python的创始人为吉多·范罗苏姆(Guido van Rossum)。1989年的圣诞节期间,吉多·范罗苏姆(中文名字:龟叔)为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语言的一种继承。

1989年,为了打发圣诞节假期,Guido开始写Python语言的编译器。Python这个名字,来自Guido所挚爱的电视剧Monty Python’s Flying Circus。他希望这个新的叫做Python的语言,能符合他的理想:创造一种C和shell之间,功能全面,易学易用,可拓展的语言。

1991年,第一个Python编译器诞生。它是用C语言实现的,并能够调用C语言的库文件。从一出生,Python已经具有了:类,函数,异常处理,包含表和词典在内的核心数据类型,以及模块为基础的拓展系统。

Granddaddy of Python web frameworks, Zope 1 was released in 1999

Python 1.0 - January 1994 增加了 lambda, map, filter and reduce.

Python 2.0 - October 16, 2000,加入了内存回收机制,构成了现在Python语言框架的基础

Python 2.4 - November 30, 2004, 同年目前最流行的WEB框架Django 诞生

Python 2.5 - September 19, 2006

Python 2.6 - October 1, 2008

Python 2.7 - July 3, 2010

In November 2014, it was announced that Python 2.7 would be supported until 2020, and reaffirmed that there would be no 2.8 release as users were expected to move to Python 3.4+ as soon as possible

Python 3.0 - December 3, 2008

Python 3.1 - June 27, 2009

Python 3.2 - February 20, 2011

Python 3.3 - September 29, 2012

Python 3.4 - March 16, 2014

Python 3.5 - September 13, 2015

Python 3.6 - December 16,2016

2.python语言

机器语言:

特点:计算机能够看懂的0和1去写程序

优点:程序运行速度快

缺点:开发效率低

汇编语言:

特点:用一些英文标签代替一串而精致数字去写程序

优点:比机器语言好一点,操作系统内大量使用汇编语言

比如关于进程的调度代码,就是用汇编语言写的

缺点:开发效率低

高级语言:

特点:用人能读懂的(英文)字符去写程序

优点:开发效率高

缺点:必须经过翻译才能让计算机识别,导致运行速度慢

按照编译的方式分为:

编译型:一次翻译,拿着编译后的结果直接给机器运行

C语言: 编译器:gcc glibc

开发效率低,运行效率高

解释型

Python语言:

CPython

当我们从Python官方网站下载并安装好Python 3.6后,我们就直接获得了一个官方版本的解释器:CPython。这个解释器是用C语言开发的,所以叫CPython。在命令行下运行python就是启动CPython解释器。

CPython是使用最广的Python解释器。教程的所有代码也都在CPython下执行。

IPython

IPython是基于CPython之上的一个交互式解释器,也就是说,IPython只是在交互方式上有所增强,但是执行Python代码的功能和CPython是完全一样的。好比很多国产浏览器虽然外观不同,但内核其实都是调用了IE。

CPython用>>>作为提示符,而IPython用In [序号]:作为提示符。

PyPy

PyPy是另一个Python解释器,它的目标是执行速度。PyPy采用JIT技术,对Python代码进行动态编译(注意不是解释),所以可以显著提高Python代码的执行速度。

绝大部分Python代码都可以在PyPy下运行,但是PyPy和CPython有一些是不同的,这就导致相同的Python代码在两种解释器下执行可能会有不同的结果。如果你的代码要放到PyPy下执行,就需要了解PyPy和CPython的不同点。

Jython

Jython是运行在Java平台上的Python解释器,可以直接把Python代码编译成Java字节码执行。

IronPython

IronPython和Jython类似,只不过IronPython是运行在微软.Net平台上的Python解释器,可以直接把Python代码编译成.Net的字节码。

小结:

Python的解释器很多,但使用最广泛的还是CPython。如果要和Java或.Net平台交互,最好的办法不是用Jython或IronPython,而是通过网络调用来交互,确保各程序之间的独立性。

编译型

优点:编译器一般会有预编译的过程对代码进行优化。因为编译只做一次,运行时不需要编译,所以编译型语言的程序执行效率高。可以脱离语言环境独立运行。

缺点:编译之后如果需要修改就需要整个模块重新编译。编译的时候根据对应的运行环境生成机器码,不同的操作系统之间移植就会有问题,需要根据运行的操作系统环境编译不同的可执行文件。

解释型

优点:有良好的平台兼容性,在任何环境中都可以运行,前提是安装了解释器(虚拟机)。灵活,修改代码的时候直接修改就可以,可以快速部署,不用停机维护。

缺点:每次运行的时候都要解释一遍,性能上不如编译型语言。

2.2动态语言和静态语言

通常我们所说的动态语言、静态语言是指动态类型语言和静态类型语言。

(1)动态类型语言:动态类型语言是指在运行期间才去做数据类型检查的语言,也就是说,在用动态类型的语言编程时,永远也不用给任何变量指定数据类型,该语言会在你第一次赋值给变量时,在内部将数据类型记录下来。Python和Ruby就是一种典型的动态类型语言,其他的各种脚本语言如VBScript也多少属于动态类型语言。

(2)静态类型语言:静态类型语言与动态类型语言刚好相反,它的数据类型是在编译其间检查的,也就是说在写程序时要声明所有变量的数据类型,C/C++是静态类型语言的典型代表,其他的静态类型语言还有C#、JAVA等。

2.3强类型定义语言和弱类型定义语言

(1)强类型定义语言:强制数据类型定义的语言。也就是说,一旦一个变量被指定了某个数据类型,如果不经过强制转换,那么它就永远是这个数据类型了。举个例子:如果你定义了一个整型变量a,那么程序根本不可能将a当作字符串类型处理。强类型定义语言是类型安全的语言。

(2)弱类型定义语言:数据类型可以被忽略的语言。它与强类型定义语言相反, 一个变量可以赋不同数据类型的值。

强类型定义语言在速度上可能略逊色于弱类型定义语言,但是强类型定义语言带来的严谨性能够有效的避免许多错误。另外,“这门语言是不是动态语言”与“这门语言是否类型安全”之间是完全没有联系的!

例如:Python是动态语言,是强类型定义语言(类型安全的语言); VBScript是动态语言,是弱类型定义语言(类型不安全的语言); JAVA是静态语言,是强类型定义语言(类型安全的语言)。

通过上面这些介绍,我们可以得出,python是一门动态解释性的强类型定义语言。

总结:

运行效率从高到低

开发效率从低到高

二、python环境

windows下安装Python(手动添加环境变量)以3.5版本举例:

windows:

windows下安装Python(自动添加环境变量)以3,.5版本的举例:

2,选择版本。

3,自动添加环境变量。

4,更改完成。

5,点击安装即可。

linux:

python历史背景_python学习之旅1-1(python背景、安装介绍)相关推荐

  1. python打字效果_Python学习之旅:用Python制作一个打字训练小工具

    一.写在前面 说道程序员,你会想到什么呢?有人认为程序员象征着高薪,有人认为程序员都是死肥宅,还有人想到的则是996和 ICU. Python资源共享群:626017123 别人眼中的程序员:飞快的敲 ...

  2. 自学python如何就业_python学习:想要自学Python达到就业的水平,应该怎么去学习...

    点击蓝字"python教程"关注我们哟! 这篇文章主要给大家讲解学习Python技术应该如何学习才能达到企业要求 内容会涉及到Python的学习技巧以及系统的学习知识安排和学习方法 ...

  3. 有哪些免费自学python的网站_Python学习网站有哪些?Python基础教程网站推荐

    Python学习网站有哪些?Python基础教程网站推荐:菜鸟教程.PHP中文网.PHP中文网.W3C.Reddit.博学谷.python中文学习大本营.Python 3 Module of the ...

  4. python中的ls是什么意思_Python学习之旅:使用Python实现Linux中的ls命令

    一.写在前面 在 Linux 中 ls 是一个使用频率非常高的命令了,可选的参数也有很多, 算是一条不得不掌握的命令.Python 作为一门简单易学的语言,被很多人认为是不需要认真学的,或者只是随便调 ...

  5. python本地编译器_Python学习札记(0)——Python开发环境搭载及推荐几款Python编译器...

    1.进入网址:http://www.python.org/download/#id10 2.选择版本: 其中有两个Python版本,一个为3.0以上版本,一个为2.7版本,主要区别有一些特定的软件只支 ...

  6. python 乱码 无效_python学习第四天:python基础(字符编码和乱码到底咋回事儿)...

    字符编码 这得从字符编码开始说起: 字符串也是一种数据类型,但是,字符串比较特殊的是还有一个编码问题.因为计算机只能处理数字,如果要处理文本,就必须先把文本转换为数字才能处理. 最早的计算机在设计时采 ...

  7. 用python批量处理图片_Python学习九十三天:Python批量处理图片

    1.Pillow库介绍 Pillow是Python里的图像处理库,提供了了广泛的文件格式支持,强大的图像处理能力,主要包括图像储存.图像显示.格式转换以及基本的图像处理操作等: 安装 pip inst ...

  8. 《Python零基础快乐学习之旅》学习笔记13——模块的设计与应用

    文章目录 第13章 模块的设计与应用 13.1 将自建的函数存储在模块中 13.1.1 准备工作 13.1.2 创建函数内容的模块 13.2 应用函数模块 13.2.1 import 语句 13.2. ...

  9. 《Python零基础快乐学习之旅》学习笔记4——基本输入与输出

    第4章 基本输入与输出 4.1 Python的辅助说明help() help()函数可以列出某一个Python的指令或函数的使用说明. >>> help(print) Help on ...

最新文章

  1. Caffe将自己的文件生成lmdb
  2. Waymo起诉加州车管所,要求对无人车事故数据保密,网友:这事怕不是和特斯拉有关...
  3. 配置内网邮件和外网邮件互发
  4. python基础(文件、异常、模块、类、对象)
  5. Java1.5增加了新特性:可变参数
  6. wamp的mysql触发器教程_wamp里的mysql怎么做出这个
  7. boundcolumn 根据值进行判断_Excel使用函数进行条件判断的方法步骤
  8. 如何基于阿里云搭建适合初创企业的轻量级架构?
  9. python动态规划算法最大k乘积_C语言使用DP动态规划思想解最大K乘积与乘积最大问题...
  10. sqlplus中清理屏幕语句_sqlplus的小秘密[转]
  11. 从零学ELK系列(二):VMware安装Centos(超详细图文教程)
  12. 围观人类弹琴后,Facebook的AI学会了假装演奏
  13. 【数字信号调制】基于matlab GUI 2ASK+2FSK+2PSK调制解调仿真【含Matlab源码 1504期】
  14. relative会脱离文档流吗_抖音投放你会吗?选Feed流还是Dou+?
  15. mark制图软件_mac自带的画图工具在哪?如何使用苹果电脑自带的预览工具进行画图操作...
  16. SpringBoot(七) 整合Mybatis
  17. SBOM(Software Bill of Materials,软件物料清单)
  18. JAVA:实现QuickSort快速排序算法(附完整源码)
  19. 数学建模中的ARMA模型和ARIMA模型的使用实例(含代码)
  20. sqlserver批量(部分)导出一张表中的数据

热门文章

  1. signed 与 unsigned 有符号和无符号数
  2. c# 配置文件App.config操作类库
  3. 【will】JS去字符串首尾空格
  4. 用Keil-MDK开发TQ2440裸机程序入门教程——LED流水灯实现
  5. sql获取受影响行数、插入标识值
  6. 【计算机网络复习 数据链路层】3.4.3 后退N帧协议(GBN)
  7. 再会迪杰斯特拉(Dijkstra)
  8. 互联网是由多个计算机相互连接而成,计算机网络
  9. 测试流程图_挑战美国Postman VS 龙测搭积木接口测试,谁与争锋
  10. 保存时间 默认_一些不起眼但又非常的实用的PPT制作技巧,大大节省PPT制作时间...