数据类型
一. 数值
-
python数值分为三种:整数、浮点数(小数)、复数
-
整型
(1). python中所有的整数都是int类型;
(2). 大小没有限制,可以是一个无限大的数;
(3). 数字长度过大,可以用下划线作为分隔符。如:c=123_234_789
下划线会被自动忽略;
(4). 10进制数字不能以 0 开头;
(5). 其它进制:
其它进制的整数在打印时,一定是以十进制的形式显示的;
a. 二进制:以0b开头:如c = 0b10
;
b. 八进制:以0o开头:如c = 0o10
;
c. 十六进制:以0x开头:如c = 0x10
; -
浮点型(小数)
(1). python中所有的小数都是float类型;
(2). 对浮点数进行运算时,可能会得到一个不精确的结果;
二. 字符串
- 字符串用来表示一段文本信息,python中的字符串需要用引号引起来;如:
s = "abc"
或
s = 'abc'
,单引号和双引号都已表示字符串,但不能混合使用:s = 'abc"
(错误)。 - 相同的引号之间不能嵌套:
s = '子曰:“学而不思则罔,思而不学则殆。”'
(正确) - 单引号和双引号不能跨行使用。
- 长字符串:使用三个单引号或三个双引号,’’’ 或 “”",可以跨行使用,
并且会保留字符串中的格式(换行等)。 - 转义字符:使用 \ 表示转义字符。
可以在字符串中使用一些特殊的内容,例如:a = '\n' #换行 b = '\t' #制表 c = '\\' #反斜杠
三. 格式化字符串
- python使用 ‘+’ 连接字符串,如
s = 'ab' + 'cd'
, - 字符串不能和其他类型进行加法运算,否则会出现异常;
a = 123
print('a =', a) #输出a = 123
- 在创建字符串时,可以在字符串中指定占位符;
- %f 浮点数占位符;
- %s 字符串占位符;
- %d 整型占位符;
a = 'hello %s' % 'abc' # 占位符和填充字符串之间用 % 间隔
b = 'hello %s ,hi %s' % ('ab', 'cd') # 有多个占位符需要使用小括号
c = 'hello %3.5s' % 'dictionary' # %3.5s 表示长度在3-5,不足3用空格填充,超过5截取前五位
d = 'hello %s' % 123.456 # 可以用数字填充 %s
e = 'hello %.2f' % 123.456 # 保留两位小数,自动四舍五入
f = 'Hello %d' % 123.456 # 只保留整数部分,输出123
- 格式化字符串:
可以在字符串前面添加一个 f 来创建一个格式化字符串;
可以在格式化字符串中直接嵌入变量。
a = 123
b = 456
c = f'Hello {a}'
print(f'a = {a}, b = {b}')
- 字符串复制:将字符串 * 一个数字,就是将一个字符串复制(重复)指定次数。
a = '123'
print(a*10) #输出十次 "123"
#输出结果:123123123123123123123123123123
四. 布尔值和空值
- 布尔值主要用于做逻辑判断,主要有两个:True(真)和 False(假);
- 布尔值实际上也属于整型:True == 1, False == 0
- 空值None:专门用来表示不存在
五. 类型检查
通过类型检查,可以检查值(变量)的类型,
使用type()函数来检查值的类型。
a = 123
b = '123'
c = 1.23
d = True
e = None
print(type(a)) # <class 'int'>
print(type(b)) # <class 'str'>
print(type(c)) # <class 'float'>
print(type(d)) # <class 'bool'>
print(type(e)) # <class 'NoneType'>
六. 对象(object)
1.对象介绍
- python是一门面向对象的语言
- 程序运行时,所有数据都是先存储到内存中再运行的
- 对象就是内存中专门用来存储指定数据的一块区域
- 数值、字符串、布尔值、None都是对象
2.对象的结构
- 每个对象中都要保存三种数据
- id(标识)
id用来标识对象的唯一性,每一个对象都有唯一的id
可以通过id()函数来查看对象的id
id是由解析器生成的,在CPython中,id就是对象的内存地址
id一旦创建,则它的id就不能再改变 - type(类型)
类型用来标识当前对象所属的类型
使用type()函数查看对象的类型
类型决定了对象有哪些功能
python是一门强类型语言,对象一旦创建类型就不能再改变 - value(值)
值就是对象中存储的具体的数据
对于有些对象,值是可以改变的
对象分为:可变对象, 不可变对象
可变对象的值可以改变
不可变对象的值不能改变,int string bool等都是不可变对象
- id(标识)
3. 变量和对象
- 对象并没有直接存储到变量中,在python中变量更像是给对象起一个别名
- 变量中存储的不是对象的值,而是对象的i(内训地址)
当我们使用变量是,实际上就是通过对象id在查找对象 - 变量中保存的对象,只有在为变量重新赋值时才会改变
- 变量和变量之间是相互独立的,修改一个变量不会影响另一个变量
七. 类型转换
- 类型转换就是将一个类型的对象转换为其它对象
- 类型转换不是改变对象本身的类型,而是根据当前对象的值创建一个新对象
- 类型转换的四个函数:int() float() str() bool()
- int() 可以将其它的对象转换为整型
规则:
bool : True --> 1 False --> 0
浮点数:直接取整,省略小数点后面的内容
字符串:合法的整数字符串,直接转换为对应的数字;如果不合法,则报错。
对于其它不可转换为整型的类型,直接抛出异常。 - float() 和 int() 基本一致,不同的是它将对象转换成浮点型。
- str() 可以将对象转换为字符串
True --> ‘True’
False --> ‘False’
123 --> ‘123’ - bool() 可以将对象转换为布尔值,任何对象都可以装换为布尔值。
规则:对所有表示空型的对象都会转换为False,其余转换成True
空型:0、None、’ ’ …