python学习四-对象类型(2019-12-25)
1. 对象类型
Python属于强类型编程语言,Python解释器会根据赋值或运算来自动推断变量类型。Python还是一种动态类型语言,变量的类型也是可以随时变化的。Python 中的变量不需要声明。每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。在Python中,变量没有类型,我们所说的"类型"是变量所指的内存中对象的类型。Python中常见的类型有:
(1) 数值 数值分为整型(int)如:1234, 564;浮点型(float)如:1.245, 3.1415926, 1.23e9, 1.2e-5;复数(complex)如:3+4j;数字大小没有限制,支持复数及其运算。
(2) 字符串 (str) 如:‘Lisa’, r"I'm student", "'Python'";使用单引号、双引号、三引号作为定界符,以字母r或R引导的表示原始字符串,Python中的字符串用单引号 ' 或双引号 " 括起来,同时使用反斜杠 转义特殊字符;反斜杠()还可以作为续行符,表示下一行是上一行的延续。也可以使用 """...""" 或者 '''...''' 跨越多行。字符串的截取的语法格式如下使用:变量[头下标:尾下标],加号 + 是字符串的连接符, 星号 * 表示复制当前字符串,紧跟的数字为复制的次数。
(3) 字节串 (bytes)如:b’Hello, world’;以字母b引导,可以使用单引号、双引号、三引号作为定界符;
(4) 列表 (list)如:[1, 2, 3] ['a','b',['c','2']];所有元素放在一对方括号中,元素之间使用逗号分隔,其中的元素可以是任意类型; 列表截取的语法格式如下:变量[头下标:尾下标],索引值以 0 为开始值,-1 为从末尾的开始位置。加号 + 是列表连接运算符,星号 * 是重复操作;
(5) 元组 (tuple) 如:(1, -9, 6), (3,);不可变,所有元素放在一对圆括号中,元素之间使用逗号分隔,如果元组中只有一个元素的话,后面的逗号不能省略;元组中的元素类型也可以不相同;元组与字符串类似,可以被索引且下标索引从0开始,-1 为从末尾开始的位置。也可以进行截取;字符串可看作一种特殊的元组;
(6) 字典 (dict)如:{1:'a', 2:'b', 3:'c'};所有元素放在一对大括号中,元素之间使用逗号分隔,元素形式为“键:值”;键(key)必须使用不可变类型。在同一个字典中,键(key)必须是唯一的;创建空字典使用 { };
(7) 集合 (set)如:{'a', 'b', 'c'};所有元素放在一对大括号中,元素之间使用逗号分隔,元素不允许重复;另外,set是可变的,而frozenset是不可变的;创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典;
(8) 布尔型 (bool) True , False;逻辑值,关系运算符、成员测试运算符、同一性测试运算符组成的表达式的值一般为True或False;
(9) 空类型 (NoneType) None;空值;
(10) 异常 Exception、ValueError、TypeError;Python内置大量异常类,分别对应不同类型的异常;
(11) 文件 如:f = open('data.dat', 'rb')一般用 with...as...;open是Python内置函数,使用指定的模式打开文件,返回文件对象;
(12) 其他可迭代对象 如:生成器对象、range对象、zip对象、enumerate对象、map对象、filter对象......;具有惰性求值的特点,除range对象之外,其他对象中的元素只能看一次;
(13) 编程单元 函数(用def定义)、类(用class定义)他们都属于可调用对象;类和函数都属于可调用对象,模块用来集中存放函数、类、常量或其他对象
(14) 嵌套类型 如:var= [(2,4,6),{5:7,9:11,'key':[2,5]},6];
2. 变量赋值创建与删除
python采用等号(=)用来给变量赋值。等号(=)运算符左边是一个变量名,等号(=)运算符右边是存储在变量中的值,当初次给变量指定一个值时,变量就会被创建。
counter = 100 # 整型单个变量赋值;
miles = 1000.0 # 浮点型单个变量赋值;
name = "hello" # 字符串单个变量赋值;
a = b = c = 1 # 同时为多变量赋值,从后向前赋值,三个变量被赋予相同的数值;
a, b, c = 1, 2, "hello"#同时为多变量赋值,从后向前赋值,三个变量被赋予不同的值;
a,b = b,a #交换两个变量的值;
当变量不再使用时,可以使用del var_a, var_b方式删除一个或多个变量的引用,同时可以使用isinstance(var_a, int)方式来判断变量是否使用某种类型,可以通过type(var_a)返回变量x当前的类型。
3. 类型转换
当需要进行类型转换时,你只需要将数据类型作为函数名即可。以下几个函数可以执行数据类型之间的转换。这些函数返回一个新的对象,表示转换的值。
int(x [,base])
将x转换为一个整数
float(x)
将x转换到一个浮点数
complex(real [,imag])
创建一个复数
str(x)
将对象 x 转换为字符串
repr(x)
将对象 x 转换为表达式字符串
eval(str)
用来计算在字符串中的有效Python表达式,并返回一个对象
tuple(s)
将序列 s 转换为一个元组
list(s)
将序列 s 转换为一个列表
set(s)
转换为可变集合
dict(d)
创建一个字典。d 必须是一个 (key, value)元组序列。
frozenset(s)
转换为不可变集合
chr(x)
将一个整数转换为一个字符
ord(x)
将一个字符转换为它的整数值
hex(x)
将一个整数转换为一个十六进制字符串
oct(x)
将一个整数转换为一个八进制字符串
str.join(list/tuple/dict/string)
将一个列表/元祖/字典/字符串中元素连接成新的字符串
![69cf3cd963d938dd18f3057862dbf65e.png](https://i-blog.csdnimg.cn/blog_migrate/f32bbe0e8c28d73045fa49095ef4f3f9.jpeg)