概述:本篇记录Python的数据类型和变量。
一、数据类型
整数
Python可以处理任意大小的整数,且整数永远是精确的。
在整数前添加前缀0x,即可用16进制表示数字。
浮点数
浮点数就是小数,由于使用科学技术法表示时,小数点的位置可变,故此得名。
浮点数运算可能是有误差的。
字符串
字符串是用单引号 ' 或双引号 " 括起来的文本。
如果我们用单引号来标识字符串,那么在字符串中可以直接使用双引号,而单引号则需 \ 转义后才能使用。用双引号标识字符串的情况同理。
1 print("I'm Albert") # 正确,字符串用双引号标识,内部可以直接使用单引号 2 print("He is "the king of coding"") # 错误,字符串用双引号标识,内部的双引号需要转义
如果字符串中有很多字符需要转义,则需要加很多 \,十分不便。我们可以在字符串前面加r(如 r'')来标识内部的字符串不转义。
如果字符串内部有很多换行,可以用'''...'''来表示多行内容
>>> print('''aaa ... bbb ... ccc''') aaa bbb ccc
布尔值
布尔值只有True和False两种,可以用and、or或not运算
空值
空值是Python中的一个特殊值,用None表示。None和0不同,0是有意义的,而None就是一个空值。
变量
变量名必须是英文字母、数字和下划线的组合,且不能以数字开头。
Python的变量类型不固定,同一个变量可以被赋不同类型的值。这种变量本身类型不固定的语言,即为动态语言。与之相应的是静态语言。静态语言在定义时必须指定变量类型,如不匹配,则会报错。
我们要注意,数据是在内存中保存的,变量只是指向数据在内存中的地址。如果我们给变量赋不同的数据,即是让变量指向不同的内存地址。
示例:
1. 执行 a = 'ABC' ,解释器在内存中创建字符串 'ABC' 和变量 a,并将 a 指向 'ABC' 的内存地址
2. 执行 b = a ,创建变量 b,并把 b 也指向 a 所指向的字符串 'ABC'
3. 执行 a = 'XYZ' ,解释器创建新的字符串 'XYZ',并使 a 指向 'XYZ',但 b 仍指向 'ABC'。
常量
顾名思义,常量就是不变的量。
在Python中,常量的变量名通常全部大写。譬如:PI(π)。
但Python并没有机制保证常量不被改变,如果你一定要修改它的值,程序也照样能运行。我们把常量的变量名全部大写,就是为了提示,避免误改。
为什么整数除法是精确的?
在Python中,有两种除法:/和 // 。
/ 的结果是浮点数。即使两个整数恰好能整除,使用这种除法得到的结果也是浮点数。
//也叫地板除,其结果为整数。如果实际结果有余数,则只取整数部分。