爬虫与Python:(二)Python基础篇——4.数据类型和变量
接下来,我们来了解一下Python的基础——数据类型和变量。对于大多数有编程基础的人来说,可以略过此步骤。
数据类型
在计算机中,以位(0或1)表示数据,因此计算机程序理所当然地可以处理各种数值。但是,计算机能处理的远不止数值,还可以处理文本、图形、音频、视频、网页等各种各样的数据,不同的数据,需要定义不同的数据类型。数据类型的出现是为了把数据分成所需 内存大小不同的数据,编程时,需要大数据时才需要申请大内存。按内存不同将数据分类,可以充分利用内存。例如,胖的人必须睡双人床,就给他双人床;瘦的人单人床就够了,就给他单人床,这样才能物尽其用。
在Python中,能够直接处理的数据包括整数、浮点数、字符串、布尔值、空值。
此外Python还提供了列表、字典等各种数据类型,还允许创建自定义数据类型。
1.整数
Python可以处理任意大小的整数,在程序中表示的方法和数学上的写法一样,例如:1、100、-8080、0等。
由于计算机使用二进制编码,因此,有时用十六进制表示整数比较方便,十六进制用 0x 前缀和0~9、a~f表示。例如: 0xff00 、 0xa5b4c3d2 。
2. 浮点数
浮点数也就是小数,之所以称为浮点数,是因为按照科学计数法表示时,一个浮点数的小数点位置是可变的,例如,1.23X109和12.3X108是相等的。浮点数可以用数学写法,例如:1.23、3.14、-9.01等。但是对于很大或很小的浮点数,就必须用科学计数法来标识,把10用e替代,1.23X109就是1.23e9或12.3e8,0.000012也可以写成1.2e-5,等等。
整数和浮点数在计算机内部存储的方式是不同的,整数运算永远是精确的(除法也是精确的),而浮点数运算则可能会有四舍五入的误差。
3. 字符串
字符串是以单引号 '' 或 "" 括起来的任意文本,如‘abc’、“xyz”等。需要注意的是‘’或“”本身只是一种表示方式,不是字符串的一部分,因此,字符串‘abc’只有a、b、c这3个字符串。如果单引号'本身也是字符串的一部分,可以用双引号“”括起来。例如 "I'm OK" 。
字符串内包含单引号或双引号,可以使用转义字符。例如:
1 print('I\'m Zhangsan') # 输出 I'm Zhangsan 2 print("\"Hi!\"") # 输出 "Hi!"
转义字符“\”可以转义很多字符,如\n、\t、\\等。可以自行搜索或通过print()方法打印查看。
4.布尔值
布尔值和布尔代数的表示完全一直,一个布尔值只有True和False两种值。
- 在Python中,可以直接用True、False表示布尔值(注意大写),也可以通过布尔值计算出来,例如:
1 print(True) #True 2 print(False) #False 3 print(1 > 0) #True 4 print(3 > 10) #False
- 布尔值可以用and(与运算)、or(或运算)和not(非运算)运算。
1 # 与运算 2 print(True and True) # True 3 print(False and True) # False 4 # 或运算 5 print(True or True) # True 6 print(True or False) # True 7 # 非运算 8 print(not True) # False 9 print(not False) # True
5.空值
空值是Python中的一个特殊值,用 None 表示。None不能理解为0,因为0是有意义的,二None是一个特殊的空值。
变量
变量来源于数学,是计算机语言中能存储计算结果或能表示值的抽象概念。变量可以通过变量名访问。在指令式语言中,变量通常是可变的;但在纯函数语言(如Haskell)中,变量可能是不可变的。在一些语言中,变量可能被明确为是能表示可变状态、具有存储空间的抽象(如Jva he Visual Basic中)。但另外一些语言可能使用其他概念(如C的对象)来指称这种抽象,二部严格地定义“变量”的准确外延。
在计算机程序中,变量不仅可以是数字,还可以是任意数据类型。变量在程序中是用一个变量名来表示,变量名必须大写英文、数字和_的组合,且不能数字开头。例如:
1 a = 1 2 b = "hello" 3 c1 = True
这里将1赋值给变量a,所以a就是一个整数。同理,变量不等于字符串“hello”、变量c1等于布尔值True。在Python中,等号“=”是赋值语句,可以把任意数据类型赋值给变量,同一个变量可以反复赋值,而且可以是不同类型的变量,例如:
1 a1 = 123 2 a1 = "test111"
这种变量类型不固定的语言称为动态语言,与之对应的是静态语言。静态语言在定义变量时必须指定变量类型,如果赋值类型不匹配,就会报错。