一.Python解释器
CPython
这个解释器是C语言开发的,所以叫CPython。在命令行运行python就是启动CPython解释器。CPython是使用最广的Python解释器。
IPython
IPython是基于CPython之上的一个交互式解释器,也就是说,IPython只是在交互方式上有所增强,但是执行Python代码的功能和CPython是完全一样的。
CPython用>>>作为提示符,而IPython用In[序号]:作为提示符。
PyPy
PyPy是另一个Python解释器,它的目标是执行速度。PyPy采用JIT技术,对Python代码进行动态编译(注意不是解释),所以可以显著提高Python代码的执行速度。
绝大部分Python代码都可以在PyPy下运行,但是PyPy和CPython有一些是不同的,这就导致相同的Python代码在两种解释器下执行可能会有不同的结果。
Jython
Jython是运行在Java平台上的Python解释器,可以直接把Python代码编译成Java字节码执行。
IronPython
IronPython和Jython类似,只不过IronPython是运行在微软.Net平台上的Python解释器,可以直接把Python代码编译成.Net的字节码。
二.变量
变量定义的规则:
(1)变量名只能是字母、数字或下划线的任意组合
(2)变量名的第一个字符不能是数字
(3)以下关键字不能声明为变量名
[‘and‘,‘as‘,‘assert‘,‘break‘,‘class‘,‘continue‘,‘def‘,‘del‘,‘elif‘,‘else‘,‘except‘,‘exec‘,‘finally‘,‘for‘,‘from‘,‘global‘,‘if‘,‘import‘,‘in‘,‘is‘,‘lambda‘,‘not‘,‘or‘,‘pass‘,‘print‘,‘raise‘,‘return‘,‘try‘,‘while‘,‘with‘,‘yield‘]
变量的赋值
在python中,等号=是赋值语句,可以把任意数据类型赋值给变量,同一个变量可以反复赋值,而且可以是不同类型的变量。例如:
a = 123 print(a) a = ‘python‘ print(a)
理解变量在计算机内存中的表示。当我们写:
a=‘ABC‘
时,Python解释器干了两件事:
1.在内存中创建了一个‘ABC‘的字符串;
2.在内存中创建了一个名为a的变量,并把它指向‘ABC‘。
也可以把一个变量a赋值给另一个变量b,这个操作实际上把变量b指向变量a所指向的数据,例如:
a = ‘ABC‘ b = a a = ‘XYZ‘ print(b)
分析:
执行a = ‘ABC‘,解释器创建了字符串‘ABC‘和变量a,并把a指向了‘ABC‘
执行b = a ,解释器创建了变量b,并把b指向a指向的字符串‘ABC‘
执行a = ‘XYZ‘,解释器创建了字符串‘XYZ‘,并把a的指向改为‘XYZ‘,但b没有改
所以,最后打印变量b的结果自然是‘ABC‘
三.数据类型
在python中,能够直接处理的数据类型有以下几种:
整数
python可以处理任意大小的整数,当然包括负整数,在程序中的表示方法和数学上的写法一模一样,例如:1
,100
,-8080
,0
,等等。
计算机由于使用二进制,所以,有时候用十六进制表示整数比较方便,十六进制用0x
前缀和0-9,a-f表示,例如:0xff00
,0xa5b4c3d2
,等等。
浮点数
浮点数也就是小数,之所以称为浮点数,是因为按照科学记数法表示时,一个浮点数的小数点位置是可变的,比如,1.23x109和12.3x108是完全相等的。浮点数可以用数学写法,如1.23
,3.14
,-9.01
,等等。但是对于很大或很小的浮点数,就必须用科学计数法表示,把10用e替代,1.23x109就是1.23e9
,或者12.3e8
,0.000012可以写成1.2e-5
,等等。
整数和浮点数在计算机内部存储的方式是不同的,整数运算永远是精确的(除法难道也是精确的?是的!),而浮点数运算则可能会有四舍五入的误差。
字符串
字符串是以单引号‘
或双引号"
括起来的任意文本,比如‘abc‘
,"xyz"
等等。请注意,‘‘
或""
本身只是一种表示方式,不是字符串的一部分,因此,字符串‘abc‘
只有a
,b
,c
这3个字符。如果‘
本身也是一个字符,那就可以用""
括起来,比如"I‘m OK"
包含的字符是I
,‘
,m
,空格,O
,K
这6个字符。
转义字符\可以转义很多字符,比如\n表示换行,\t表示制表符,字符\本身也要转义,所以\\表示的字符就是\,
Python还允许用r‘‘表示‘‘内部的字符串默认不转义。
布尔值
True False
布尔值可以用and,or,not运算
空值
空值是python里的一个特殊的值,用None表示。None不能理解为0,因为0是有意义的。
此外,Python还提供了列表、字典等多种数据类型,还允许创建自定义数据类型。
四.编码
最早的计算机在设计时采用8个比特(bit)作为一个字节(byte),所以一个字节能表示的最大整数就是255,如果要表示更大的整数,就必须用更多的字节。
ASCII:最早只有127个字符被编码到计算机里。也就是大小写英文字母、数字和一些符号
GB2312:用来把中文编进去
Unicode:把所有语言都统一到一套编码里,处理了乱码问题。
ASCII编码是一个字节,Unicode编码通常是2个字节
UTF-8:可变长编码,解决了存储空间问题。常用英文1个字节,汉字通常3个字节,生僻的字4-6字节
五.数据运算
算数运算:
比较运算:
赋值运算:
逻辑运算:
位运算:
运算符优先级: