Python是一种解释型,面向对象的语言。由吉多·范罗苏姆(Guido van Rossum)于1989年发明,1991年正式公布。官网:www.python.org
Python单词是“大蟒蛇”的意思。但是龟叔不是喜欢蟒蛇才起这个名字而是正在追剧:英国电视喜剧片《蒙提·派森的飞行马戏团》
编程语言主要从以下几个角度为进行分类:编译型和解释性、静态语言和动态语言、强类型定义语言和弱类型定义语言。
编译和解释的区别是什么?
编译器是把源程序的每一条语句都编译成机器语言、并保存成二进制文件,这样运行时计算机可以直接以机器语言来进行此程序,速度很快;
解释器是执行程序时,才一条一条的解释成机器语言给计算机来执行,所以运行速度是不如编译后的程序运行速度快的。
这是因为计算机不能直接认识并执行我们写的语句,它只能认识机器语言(是二进制的形式)
编译型 | 解释性 | 混合型 |
C | JavaScript | Java |
C++ | Python | C# |
Go | Ruby | |
Swift | PHP | |
Object-C | Perl | |
Pascal | Erlang |
编译型
优点:编译器一般会有预编译的过程对代码进行优化。
解释性
优点:有良好的平台兼容性,在任何环境中都可以运行,前提是安装了解释器(虚拟机),灵活修改代码
Python的继承是多继承的
Python2中的print是一条语句,语句是一段可执行代码。如果返回值也是多个,则返回一个元组。
Python3中的print为一个函数,必须用括号括起来;函数接收参数提供返回值,可接收多个参数。
#Python2
1 print ‘Python‘, python_version() 2 print ‘Hello, World!‘ 3 print(‘Hello, World!‘) 4 print "text", ; print ‘print more text on the same line‘
```
run result:
Python 2.7.6
Hello, World!
Hello, World!
text print more text on the same line
```
#Python3
1 print(‘Python‘, python_version()) 2 print(‘Hello, World!‘) 3 print("some text,", end="") 4 print(‘ print more text on the same line‘)
```
run result:
Python 3.4.1
Hello, World!
some text, print more text on the same line
```
Python 2 中,整数相除默认是整型。Python 3 中,整数相除默认是浮点型。
Python 2:
>>>print("1/2",1/2)
(‘1/2‘,0) #返回的是一个元组
Python 3:
>>>print("1/2",1/2)
1/2 0.5
Python 2 中,默认编码是 asscii ,asscii 编码是应用于拉丁字母的编码系统,程序内用中文常导致出现编码问题。在 Python 3 中采用了UTF-8作为默认编码,UTF-8 属于Unicode编码,支持大多数语言,且可变长度,空间较为节省。在 Python 3 中写代码再不用声明 # conding:utf-8
Python 2 中字符的类型:
str : 已经编码后的字节序列
Unicode : 编码前的文本字符
Python 3 中字符的类型:
str : 编码过的 Unicode 文本字符
bytes : 编码前的字节序列
二进制字节 Unicode字符 Python 2 str类型 Unicode类型 Python 3 bytes类型 str类型 为了避免出错,在Python 2 中应在文本字符串前面加上u.
Python 2 中 range 返回一个列表, xrange 返回一个迭代器。
Python 3 中没有 xrange 。range 方法就相当于 Python 2 中的 xrange 方法,同时像 map 函数等,Python 3 比返回列表的函数改为了返回迭代器。
Python3中input得到的为str;Python2的input得到的为int型,Python2的raw_input得到的为str类型;统一一下:Python3中用的 input 和Python2中用的 row_input,都输入为str。
幸运的是,在Python 3 中已经解决了把用户的输入存储为一个str对象的问题。为了避免在Python 2 中的读取非字符串类型的危险行为,我们不得不适用 raw_input() 代替。
python2中的StringIO和cStringIO合并为python3中的io
python2中的pickle和cPickle合并为python3中的pickle。
python2中的urllib、urllib2和urlparse合并为python3中的urllib
python2中的dict类中的keys、values和items均返回list对象,iterkeys、itervalues和iteritems返回生成器对象。
python3中移除了list、只返回一个生成器的对象,只保留视图(生成器),但方法名为:keys、values和items。
python2中默认类是旧式类,需要显式继承新式类(object)来创建新式类。
python3中完全移除旧式类,所有类都是新式类,但仍可显式继承object类。
python2中的包导入顺序:标准库—相对倒入(即当前目录)—绝对导入(sys.path)
python3中的包导入顺序:标准库—绝对导入(如果想要相对导入,使用from .moudel)
Python 3 | Python 2 |
Configparser | ConfigParser |
filter | itertools.ifilter |
input | raw_input |
map | itertools.imap |
range | xrange |
functools.reduce | reduce |
socketserver | SocketServer |
zip | itertools.izip |
Python的设计哲学是“优雅”、“明确”、“简单”。
优点
缺点:
1 . 恰当的空格, 缩进问题
(1)逻辑首行的空白(空格和制表符)用来决定逻辑行的缩进层次,从而用来决定语句的分组
(2)语句从新行的第一列开始。
(3)缩进风格统一:
①每个缩进层次使用单个制表符或四个空格(IDE会自动将制表符设置成4个空格);
②Python 用缩进而不是 {} 表示程序块。
2 . Python 区分大小写
3 . 注释
(1)行注释
每行注释前加 “#”号。当解释器看到 “#” ,则忽略这一行 “#” 后面的内容
(2)段注释
使用三个连续单引号 (```)。当解释器看到(```),则会扫描到下一个(```),然后忽略他们之间的内容。
原文:https://www.cnblogs.com/oito/p/11184034.html