数据类型

type()#查看变量类型
isinstance()#比较变量类型
区别
type()不会认为子类是一种父类类型
isinstance()会认为子类是一种父类类型

Number(数字):不可变数据

int, float, bool, complex
可以用十六进制/八进制代表整数
int(x) 将x转换为一个整数
float(x) 将x转换到一个浮点数
complex(x) 将x转换到一个复数,实数部分为 x,虚数部分为 0
complex(x, y) 将 x 和 y 转换到一个复数,实数部分为 x,虚数部分为 y。x 和 y 是数字表达式。

String(字符串) :不可变数据

字符串截取: 变量[头下标:尾下标]索引值以 0 为开始值,-1 为从末尾的开始位置
+是连接符
*复制当前字符串(次数)
r前缀表示原始字符串
"""..."""可以跨越多行
格式化字符串%:基本同C
print("My name is %s" % ('小明'))
"My name is %s" % ('小明')
"{0} love {1}".format("i", "python")
"{a} love {b}".format(a = "i", b = "python")
{{}}#转义:{}
方法:
split()#将字符串按指定方式分割
字符串跨行:
str1 = (
''
''
str1 = """
"""
str1 = "\
\
"

List(列表):可改变数据

类型可以不相同
列表是写在方括号 [] 之间、用逗号分隔开的元素列表
截取列表:变量[头下标:尾下标]
索引值以 0 为开始值,-1 为从末尾的开始位置
+连接;*重复;+=、*=、>、<……
in not in不能找出列表中的列表中的元素
向列表中添加元素:
append()//末尾添加一个元素
extend()//末尾添加列表
insert()//指定位置添加元素
从列表中删除元素
remove()//删除列表中某一个值第一次与参数匹配的元素
del//不是列表函数,del member[]、delete member
pop()//默认取出最后一个元素删除,返回删除的元素
列表分片
member[1 : 3]//源列表不发生改变,第三个参数:步长
list1 = list2[:]//源列表不发生改变
list1 = list2//相当于引用&,两个列表都指向同一块空间
sort()//排序,func:排序的方法,key:使用的算法,reverse:顺序(默认False,正序)
reverse()//翻转
copy()//拷贝,和切片拷贝是一样的
clear()//清空列表的元素
count()//参数在列表中的次数
index()//参数在列表中第一次出现的位置,第二个参数:给定的范围内查找
列表推导式/列表解析:
[表达式 for 表达式中的变量 in 列表]
a = [i for i in range(100) if not (i % 2) and i % 3]
[2, 4, 8, 10, 14, 16, 20, 22, 26, 28, 32, 34, 38, 40, 44, 46, 50, 52, 56, 58, 62, 64, 68, 70, 74, 76, 80, 82, 86, 88, 92, 94, 98]

Tuple(元组) :不可变数据

类型可以不相同
元组写在小括号 () 里,元素之间用逗号隔开 ,可以没有()
除了空元组逗号必须有
可以包含可变的对象
创建元组:
tuple1 = (20, )//一个元素的元组
tuple2 = (20)//不是元组
tuple3 = ()//是元组
很多操作同列表(不可修改的list)
在指定的位置添加(相当于创建一个新的元组):
temp = temp[:2] + (4,) + temp[2:]
删除整个元组:
del tuple//删除一个指向该内存的标签
相关操作符:
+ * [] in not in 关系操作符 逻辑操作符
无元组推导式(生成器:通过__next__()访问)

序列:列表、元组、字符串

可迭代的对象

都可以通过索引访问每一个元素
默认索引值从0/-1开始
都可以通过分片的方法得到一个范围内的元素
有很多共同的操作符

Set(集合)

集合(set)是由一个或数个形态各异的大小整体组成的,构成集合的事物或对象称作元素或是成员
基本功能是进行成员关系测试和删除重复元素
可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set()
集合运算:
- | & ^
差集, 并集,交集,同时不存在的元素
元素是无序的,不支持索引
添加元素:
add()
update()#可以添加多个
移除元素:
remove()#移除指定元素,元素不存在会发生错误
discard()#移除指定元素,元素不存在不会出现错误
pop()#随机删除
frozen 关键字:
frozenset()#创建不可变集合
集合推导式
{ i for i in [1, 2, 3, 4, 5] }
{1, 2, 3, 4, 5}

Dictionary(字典)

映射、哈希、散列、关系数组
字典是无序的对象集合 ,通过键取出,而不是偏移
字典是一种映射类型,字典用 { } 标识,它是一个无序的 键(key) : 值(value) 的集合 (类似map
键(key)必须使用不可变类型
在同一个字典中,键(key)必须是唯一
key值与通过散列函数创建出唯一的地址相对应,将值放入该地址中
dict = {} //空字典
dict['one'] = "1 - 菜鸟教程" //创建映射
tinydict = {'name': 'runoob','code':1, 'site': 'www.runoob.com'}
dict([('Runoob', 1), ('Google', 2), ('Taobao', 3)])
{x: x**2 for x in (2, 4, 6)}
dict(Runoob=1, Google=2, Taobao=3)#键值不加'', values加''
字典类型也有一些内置的函数,例如clear()、keys()、values()等
del dict#可以删除字典,也可以删除键值
dict()#创建字典
dict.keys()#获取键,可以用in / not in配合使用
dict.values()#获取值,可以用in / not in配合使用
dict.fromkeys()#创建一个新的字典,键列表,值,覆盖掉原来的字典
dict.items()#返回每一个映射的元组
dict.get()#如果没有键,返回出None或指定的字符,如果存在,返回值
dict.clear()#清空字典
dict.copy()#浅拷贝,与直接赋值不同
dict.pop()#删除指定的键值
dict.popitem()#随机删除指定的键值
dict.setdefault()#找到指定的键,没有键时创建一个键(可以同时赋值)
dict.update()#根据参数中的字典更新调用的字典
字典推导式:
b = { i : i % 2 == 0 for i in range(10) }
{0: True, 1: False, 2: True, 3: False, 4: True, 5: False, 6: True, 7: False, 8: True, 9: False}

类型转换函数:

int(x [,base])
将x转换为一个整数
"undefined">float(x)
将x转换到一个浮点数
complex(real [,imag])
创建一个复数
[InvalidCharacterError: "hre<" did not match the Name production]
将对象 x 转换为字符串
[InvalidCharacterError: "href<" did not match the Name production]
将对象 x 转换为表达式字符串
eval(str)
用来计算在字符串中的有效Python表达式,并返回一个对象
"undefined">tuple(s)
将序列 s 转换为一个元组
[InvalidCharacterError: "href<" did not match the Name production]
将序列 s 转换为一个列表
[InvalidCharacterError: "hre<" did not match the Name production]
转换为可变集合
[InvalidCharacterError: "href<" did not match the Name production]
创建一个字典。d 必须是一个 (key, value)元组序列。
frozenset(s)
转换为不可变集合
[InvalidCharacterError: "hre<" did not match the Name production]
将一个整数转换为一个字符
[InvalidCharacterError: "hre<" did not match the Name production]
将一个字符转换为它的整数值
[InvalidCharacterError: "hre<" did not match the Name production]
将一个整数转换为一个十六进制字符串
[InvalidCharacterError: "hre<" did not match the Name production]
将一个整数转换为一个八进制字符串