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.可扩展:可以添加低层次的模块到Python解释器。这些模块使程序员可以添加或定制自己的工具,更有效。
  • 8.数据库:Python提供所有主要的商业数据库的接口。
  • 9.GUI编程:Python支持GUI可以创建和移植到许多系统调用。
  • 10.可扩展性:相比 shell 脚本,Python 提供了一个更好的结构,且支持大型程序。

Python的种类

Cpython

Python的官方版本,使用C语言实现,使用最为广泛,CPython实现会将源文件(py文件)转换成字节码文件(pyc文件),然后运行在Python虚拟机上。

Jyhton

Python的Java实现,Jython会将Python代码动态编译成Java字节码,然后在JVM上运行。

IronPython

Python的C#实现,IronPython将Python代码编译成C#字节码,然后在CLR上运行。(与Jython类似)

PyPy(特殊)

Python实现的Python,将Python的字节码字节码再编译成机器码。

RubyPython、Brython ...

以上除PyPy之外,其他的Python的对应关系和执行流程如下:

Python下载

Python最新源码,二进制文档,新闻资讯等可以在Python的官网查看到:

Python官网:http://www.python.org/

你可以在一下链接中下载Python的文档,你可以下载 HTML、PDF 和 PostScript 等格式的文档。

Python文档下载地址:www.python.org/doc/

安装Python

windows

1、下载安装包
https://www.python.org/downloads/ 2、安装
默认安装路径:C:\python27 3、配置环境变量
【右键计算机】--》【属性】--》【高级系统设置】--》【高级】--》【环境变量】--》【在第二个内容框中找到 变量名为Path 的一行,双击】 --> 【Python安装目录追加到变值值中,用 ; 分割】
如:原来的值;C:\python27,切记前面有分号

linux

无需安装,原装Python环境

ps:如果自带2.6,请更新至2.7

更新Python

windows:

卸载重装即可

linux:

Linux的yum依赖自带Python,为防止错误,此处更新其实就是再安装一个Python

查看默认Python版本

python -V
1、安装gcc,用于编译Python源码
yum install gcc
2、下载源码包,https://www.python.org/ftp/python/
3、解压并进入源码文件
4、编译安装
./configure
make all
make install
5、查看版本
/usr/local/bin/python2.7 -V
6、修改默认Python版本
mv /usr/bin/python /usr/bin/python2.6
ln -s /usr/local/bin/python2.7 /usr/bin/python
7、防止yum执行异常,修改yum使用的Python版本
vi /usr/bin/yum
将头部 #!/usr/bin/python 修改为 #!/usr/bin/python2.6

Python 环境变量

下面几个重要的环境变量,它应用于Python:

变量名

描述

PYTHONPATH

PYTHONPATH是Python搜索路径,默认我们import的模块都会从PYTHONPATH里面寻找。

PYTHONSTARTUP

Python启动后,先寻找PYTHONSTARTUP环境变量,然后执行此文件中变量指定的执行代码。

PYTHONCASEOK

加入PYTHONCASEOK的环境变量, 就会使python导入模块的时候不区分大小写.

PYTHONHOME

另一种模块搜索路径。它通常内嵌于的PYTHONSTARTUP或PYTHONPATH目录中,使得两个模块库更容易切换。

运行Python

Python命令行参数:

选项

描述

-d

在解析时显示调试信息

-O

生成优化代码 ( .pyo 文件 )

-S

启动时不引入查找Python路径的位置

-v

输出Python版本号

-X

从 1.6版本之后基于内建的异常(仅仅用于字符串)已过时。

-c cmd

执行 Python 脚本,并将运行结果作为 cmd 字符串。

file

在给定的python文件执行python脚本。

Python 中文编码

  Python中默认的编码格式是 ASCII 格式,在没修改编码格式时无法正确打印汉字,所以在读取中文时会报错。

解决方法为只要在文件开头加入 # -*- coding: UTF-8 -*- 或者 #coding=utf-8 就行了。

#!/usr/bin/python
# -*- coding: UTF-8 -*-
print "你好,世界";

字符编码简介

  字符串也是一种数据类型,但是字符串比较特殊的还有一个编码问题。因为计算机只能处理数字,如果处理文本需要先把文本转换成数字才能处理。最早的计算机在设计时采用8位作为一个字节,所以,一个字节能表示的最大整数就是255,如果表示更大的数,就必须用更多的字节。比如两字字节表示最大的整数为65535.由于计算机是由美国人发明,因此最早只有127个字符编码到计算机,也就是大小写字母、数字与一些特殊符号,这个编码就叫做ASCII编码,比如大写A编码为65,小写z编码为122.但要处理中文显然一个字节不够使用,至少需要两个字节,而且还不能和ASCII冲突,所以中国制订了GB2312编码把中文编进去。但世界上有上百种语言,日文编码格式为Shift_JIS里,韩文为Euc-kr里,各国都有自己的标准,肯定会出现冲突。因此Unicode应运而生,它将所有语言统一到一套编码里,就不会出现冲突问题了。它也在不断的发展,但最常用的是两个字节表示一个字符(非常偏僻的用四个)。现代大多数操作系统也支持Unicode。但新问题出现了,如果统一为Unicode乱码问题消失了,可是Unicode比ASCII编码需要多一倍的存储空间,在存储和传输上十分不便。所以为了节约使用空间,出现了可变长的Unicode,也就是UTF-8编码。UTF-8编码把一个Unicode字符根据不同数字大小编码成1-6个字节,常用的编成1个字节,汉字通常3个字节,生僻字符4-6个字节。所以传输时大大节约了传输空间。它同样使ASCII编码成为了自己的一部分,所以大量只支持ASCII编码的历史遗留问题可以在UTF-8编码下继续工作。

最新文章

  1. Jquery 搭配 css 使用,简单有效
  2. java中开源日志记录工具log4j
  3. Jquery Data Table插件
  4. Android笔记——什么是json?json如何使用?
  5. wampserver安装之后连接phpMyAdmin 不成功的解决方法
  6. Intellij IDEA 使用Spring-boot-devTools无效解决办法
  7. 配置struts tags 输出HTML
  8. python 脚本
  9. golang_protobuf环境搭建
  10. jQuery ajax表单提交实现局部刷新
  11. 如何在通过knockout数据绑定的DOM元素上添加事件
  12. Swift4 Json
  13. 关于form表单上传图片的一些记录
  14. 如何安装MySQL5.5.62
  15. 隐马尔可夫模型HMM(一)
  16. django部署admin后台static文件丢失问题解决
  17. 一、JAVA变量类型:①类变量与实例变量的异同点
  18. VS2013 "当前不会命中断点.还没有为该文档家在任何符号" 解决办法
  19. jformdesigner 开发
  20. HDU 4768 Flyer (2013长春网络赛1010题,二分)

热门文章

  1. .htaccess更改目录下的默认主页
  2. redis教程
  3. easyui 之ComboTree 用法Demo
  4. adb push和pull使用
  5. Jmeter—1 安装
  6. Python学习路程day2
  7. 寻找研究基于NS2研究覆盖网络的小伙伴:)
  8. Xml Schema:C#访问在complextype中插入新元素
  9. 2015GitWebRTC编译实录15
  10. python 类中staticmethod,classmethod,普通方法