计算机中的数据不仅仅指数值,还包括文本,图像,音频,视频等各种各样的数据,不同的数据需要定义不同的数据类型,但并不是所有的数据都可以直接进行处理。我们就python中能直接处理的数据进行说明。

1.整数

python可以处理任意大小的整型,包含负整数,在程序中的表示方法和数学上的写法是完全一致的,例如:1,100,-8000,0等。由于计算机使用二进制,故有时使用十六进制更为方便,十六进制使用0x作为前缀进行表示,例如:0xff11,0xa457df31等等。

学过C或其他语言的同学会发现,python的整型不同,首先,其他语言定义的不同整型类型(短整型,长整型,无符号整型等),其表示的整型范围是有限的,而python则没有这么多限制,这点上更像我们平时数学上处理数据更为类似。

2.浮点数

浮点数,就是我们日常使用的小数,之所以称为浮点数,是因为计算机的存储方式采用科学计数法,一个浮点数的小数点位置是可变的(例1.23x10^9和12.3x10^8,0.123x10^10是完全相同的),故称为浮点,意为小数点可浮动。

浮点数可以使用数学写法,例:1.23,3.14 ,-0.04等,但如果一个很大或很小的数还用此类表示方法就不方便,必须使用科学计数法,例:1.23x10^9表示为1.23e9或12.3e8,0.0023表示为2.3e-3等。

由于计算机内部储存整数和浮点数的方式不同,整数的运算永远是精确的(即使除法也是精确的,两个数不能整除也是精确的),而浮点数的运算则有可能会出现四舍五入的误差。

3.字符串

字符串是以单引号’或双引号“括起来的任意文本,比如‘abc',"bcd"等等。注意,如果单引号’本身作为字符,可以使用双引号”括起来,例如:“I‘m ok”,包含的的字符为 I ,' ,m,空格,o,k 这六个字符。

有人会问,如果字符中既有单引号’ 也有双引号"怎么办?不用怕,这时可以使用转义字符\来识别,例:

'I\'m \"ok\"!'

表示的字符串为:

I’m "ok"!

此外,转义字符可以转义很多字符,例如\n表示换行,\t表示制表符,若想表示字符\本身,那么\\就是字符\

若字符串内有很多字符都需要转义,使用转义字符一方面效率比较低,另一方面容易出错。python中允许使用r''表示‘’内部的字符串不转义。例:

>>>print('\\\t\\')
\    \
>>>print(r'\\\t\\')
\\\t\\

若字符串内有很多换行,导致添加\n过多,影响阅读。python中允许使用‘’‘...'''的格式表示多行内容,例:

>>>print('''line1
...line2
...line3''')
line1
line2
line3

4.布尔值

python中的布尔值使用True,False进行表示,注意首字母大写。使用时可以直接使用,也可通过运算得出:

>>> True
True
>>> False
False
>>> 3>5
False

python中可使用and, or 和not三种运算符对布尔值进行运算。其中and表示与运算,既同真为真,同假为假,一真一假为假。or表示或运算符,其中有一个为真则为真。not运算符为单目运算符,表示非运算。

>>> True and True
True
>>> True and False
False
>>> False and False
False
>>> 5>3 and 3>1
True
>>> not True
False
>>> not False
True

5.空值

空值时python一个特殊的值,用None表示。None不能理解为0,因为0是有意义的,而None是空值。

此外,python还提供了列表,字典等多种数据类型,还允许自定义数据类型。我们以后会学习到。

变量

变量类似与方程中的变量,顾名思义为可以改变的量。与C/C++等语言不同,python中的变量使用前无需声明类型,故变量本身的类型是不固定的。因此python称为动态语言,而与之对应得C/C++等为静态语言。例如:

a = 1 # a为整数
a = 0.1 # a为浮点数
a = 'abc' # a为字符串

最后解释一下,变量在计算机内存中得存储方式。当我们写:

a = 123

python解释器干了两件事,1.在内存中创建了一个’ABC‘得字符串;2.在内存中创建了一个名为a得变量,并把它指向123.

也可以把变量a赋值给另一个变量b,这个操作实际上是把变量b指向变量a所指向得数据(不是指向a)

常量

常量就是不能改变得量,python中并没有特定得字符对常量进行限制,(C/C++中均有),在python中通常使用全部大写得变量名来表示常量,例:

PI = 3.1415926

但事实上,PI仍然是一个变量,python没有任何机制保障其不被更改。只是习惯全部使用大写来表示常量。