二、数据类型
(1) 什么是数据类型?
数据类型就是变量值的类型
(2) Python常见的数据类型:
数值、字符串、布尔值、列表、元组、字典、集合、文件
2.1 数值
在python中数值分成三种:整数,浮点数(小数),复数
在python中所有的整数都是int类型
在python中的整数大小没有限制,可以是一个无限大的整数
如果数字长度过长,可以使用下划线作为分隔符分割,下划线会自动忽略
>>> a = 123_456_789
>>> print(a)
123456789
2.2 进制
-
二进制
- 0b开头 0b010101
>>> a = 0b010101 >>> print(a) 21
-
八进制
- 八进制 0o开头
>>> a = 0o1010 >>> print(a) 520
-
十进制
-
十进制数字不能以0开头
-
十六进制
- 十六进制0x开头
>>> a = 0x111 >>> print(a) 273
注意:所有的进制输出都是十进制
2.3 浮点数
- 在Python中所有的小数都是float类型
>>> a = 1.23
>>> b = 12.3
>>> print(type(a))
>>> print(type(b))
<class 'float'>
<class 'float'>
- 对浮点数进行运算时,可能会得到一个不精确的结果
>>> c = 0.1 + 0.2
>>> print(c)
0.30000000000000004
2.4 字符串
- 用来表示一段文本信息,是程序中使用最多的数据类型
- 在python中字符串需要使用引号引起来(单引号,双引号都可以)
>>> a = 'abc'
>>> print(type(a))
>>> print(a)
<class 'str'>
abc
- 相同的引号之间不能嵌套,可以使用单双分别嵌套
- 单引号和双引号不能跨行使用
- 使用三重引号来表示一个长字符串,可以实现换行,还可以保留字符串中的格式
a = '''111,
2222,
3333,
4444'''
print(a)
2.5 转义符
\'' : ‘
\"" : “”
\t :制表符
\n :换行符
\\ :反斜杠
\uxxxx :unicode编码
例:
>>> s1 = 'hhh\''
>>> print(s1)
hhh'
>>> s2 = 'hhh\"'
>>> print(s2)
hhh"
>>> s3 = 'hhh\t'
>>> print(s3)
hhh
>>> s4 = 'hhh\n123'
>>> print(s4)
hhh
123
>>> s5 = 'hhh\\123456'
>>> print(s5)
hhh\123456
2.6 字符之间的加法运算
- 2个字符串相加 则会自动将2个字符串拼接成一个字符串
- 字符串不能与整数与浮点数相加
>>> s1 = '你好啊:'
>>> s2 = '喜羊羊'
>>> s3 = '123'
>>> print(s1 + s2)
你好啊:喜羊羊
>>> print(s1 + s3)
你好啊:123
2.7 格式化输出
print传2个参数 进行格式化
>>> s = '你好啊:' + '喜羊羊'
>>> print('s=',s)
s= 你好啊:喜羊羊
使用占位符
- %s在字符串中可以表示任意的字符(占位符与参数列表的顺序是一致的)
>>> s1 = '你好啊:%s,你好啊:%s'%('喜羊羊','懒羊羊')
>>> print(s1)
你好啊:喜羊羊,你好啊:懒羊羊
- 参数的个数与占位符必须保持一致(否则会报以下的错误!!!)
TypeError: not all arguments converted during
string formatting
- %f 在浮点数中可以表示任意浮点数
>>> f1 = '你好啊:%f,你好啊:%s'%(123.456,'喜羊羊')
>>> print(f1)
你好啊:123.456000,你好啊:喜羊羊
- %d在整数中可以表示任意整数,如果参数是浮点数,会直接舍弃小数点后所有的值
>>> a = '你好啊:%d,你好啊:%s'%(123.456,'喜羊羊')
>>> print(a)
你好啊:123,你好啊:喜羊羊
- 在创建字符串时,可以在字符串中指定占位符并限制长度
# 3是长度,不满3用空格填充
>>> a = '你好啊 %3s'%'ab'
>>> print(a)
你好啊 ab
# 3.5是限制在3到5之间
>>> s = '你好啊 %3.5s'%'abcd'
>>> print(s)
你好啊 abcd
-
格式化字符串
- 可以通过在字符串前面添加一个f来创建一个格式化字符串
- 在格式化字符串中可以直接嵌入变量
>>> a = 123 >>> b = 456 >>> print (f'a的值为:{a}') a的值为:123
2.8 布尔类型
(1) 布尔值(bool) 用来做逻辑判断 值有2个(true false)
>>> a = True
>>> print('a=',a)
a= True
(2) 布尔值实际上也属于整型,True相当于1,False相当于0
>>> print(1+True)
2
(3) None(空值) 表示不存在
2.9 类型检查
在Python中,可以使用type检查变量的类型,该函数将检查的结果作为返回值返回
>>> i = 12
>>> print(i)
>>> print(type(i))
12
<class 'int'>
2.10 对象的结构
2.10-1 对象的结构
(1) Python中一切皆对象,每个对象都有其唯一的id,对应的类型和值,其中id指的是对象在内存中的位置。
(2) 在Python中每个对象都需要保存3种数据,分别为:id(标识符)、type(类型)、value(值)
(3) Python中的变量可以指向任意对象,可以将变量都看成是指针,保存了所指向对象的内存地址(对象的引用)
- id(标识符)
- 用来标识对象的唯一性 每个对象都有一个唯一的id
- 通过函数id()获取对象的id
- id是由解析器生成 在Python中 id其实对象在内存中的地址值
- 对象一旦创建,id值就不会改变
- type(类型)
- 用来标识当前对象的所属的类型
- 类型决定了对象有哪些功能
- 通过type()函数查看对象的类型
- Python是一门强类型语言,对象一旦创建类型便无法再改变
- value(值)
- 对象中存储的具体的数据
- 有些对象的值是可以改变的
- 对象分两类
- 可变对象
- list、dict、set
- 不可变对象
- 数字、字符串、tuple
- 可变对象
2.10-2 变量和对象
-
对象并没有直接存储到变量中,在Python中变量更像是给对象起了一个别名
-
变量中存储的不是对象的值,而是对象的id(内存地址)
- 使用变量时,实际上是在通过对象的id在查找对象
>>> a = 123 >>> print(id(a)) >>> b = a >>> print(b) >>> print(id(b)) # print输出的结果 140722215523824 123 140722215523824
-
变量中保存的对象,只有在为变量重新赋值时才会改变
-
变量与变量之间相会独立,修改一个变量不会影响另一个变量
>>> a = 123
>>> print(a)
>>> print(id(a))
>>> a = 456
>>> print(a)
>>> print(id(a))
# print输出的结果
123
140722215523824
456
2326184164112
2.11 类型转化
-
类型转换不是改变对象本身的类型,而是根据当前对象的值创建一个新的对象
-
int类型
- int() 可以将其他的对象转化为整型
- int()函数不会对原来的变量产生影响,它是将对象转换为指定的类型并将其作为返回值返回
- 如果希望修改原来的变量 需要对变量重新赋值
>>> a = True >>> print(type(a)) >>> a = int(a) >>> print(type(a)) # print输出的结果 <class 'bool'> <class 'int'>
-
int()类型转化规则
-
布尔值:True = 1 False = 0
-
浮点数:直接取整,省略小数点后面的内容
-
字符串:合法的整数字符串,直接转化为对应的数字
-
对于其他不可转换为整型的对象,直接抛出异常 valueError
-
-
float()类型
- float()和int()基本一致,不同的是它会将对象转化为浮点数
-
str()类型
- 直接将对象转化为字符串
-
bool()类型
- 将对象转换为布尔值,任何对象都可以转换为布尔值
- 所有表示空性的对象都会转换为False,其余的转换为True
-
以上内容是本人总结Python数据类型的笔记知识点,如有写得不正确的地方,或有更好的见解,希望各位读者指出,谢谢大家!