Python学习笔记(一),,一.Python解释


一.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 = 123print(a)a = ‘python‘print(a)

理解变量在计算机内存中的表示。当我们写:

a=‘ABC‘

时,Python解释器干了两件事:

1.在内存中创建了一个‘ABC‘的字符串;

2.在内存中创建了一个名为a的变量,并把它指向‘ABC‘。

也可以把一个变量a赋值给另一个变量b,这个操作实际上把变量b指向变量a所指向的数据,例如:

a = ‘ABC‘b = aa = ‘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字节

五.数据运算


算数运算:

技术分享图片

比较运算:

技术分享图片

赋值运算:

技术分享图片

逻辑运算:

技术分享图片

位运算:

技术分享图片

运算符优先级:

技术分享图片

Python学习笔记(一)

评论关闭