数据类型:
基础数据类型:
整数:正负整数
浮点数:也就是小数,一般用科学计数法表示,如:1.02e-12
布尔值:True/False,其实就是整数,True=1, False=0
字符串:用单引号或则双引号引用的数据。
空值:None,表示没有对象,统一标准占位使用,不是表示0.
复杂数据类型:
元组(tuple):用小括号括起,其值不可改变,如:a = (1, 2, “123”)。注意若只有一个数据时,应添加逗号,和小括号表达式区分。
如:a = (2),表示a = 2,小括号表示是运算
a = (2, ),表示是一个元组,不是运算。
列表(list): 用方括号表示,其值可以修改,可以用下标访问具体某位数据。如:a = [1, 2, ‘234’],a[0] = 1, a[1] = 2, a[2] = ‘234’
字典(dict):用大括号表示,形式为key-value,其值可以修改,key为不可改变数据。如:a = {'12’:34, ‘ab’:’345345’}
集合(set):只有key值,没有对应值,是个无序去重的集合,用于数据集合一些操作,如并集、子集等。
不可变量、可变变量说明:
不可变量有:整数、浮点数、布尔值、字符串、元组
可变变量有:列表、字典
举例说明,不可变量,如下:
a = 10
b = a
a = 12
在python中,一切皆是对象。故a = 10中,变量a是对象,会在内存开辟一个内存表示对象a;值10也是对象,也会开辟内存保存。而赋值即把变量a指向值对象所在内存。变量a=12时,原来值的对象不会改变,会新建一个对象保存12,并把a指向新对象。
所谓不可变对象,实质是指变量指向对象的内存没有发生修改。
可变变量,如下:
a = [1, 23, 34]
a[0] = 50
变量a指向内存,内存又指向对应值。所谓可变变量,实质是a指向的内存,值有改变。也就是所a[0] = 50时,变量a指向内存改变了。
综合所述:
不可变量,类是C语言的指针,只改变指针的值,就是改变指针对应的内存地址,而原本存数据的内存的值没有改变。
可变变量,类是C语言中两级指针,虽然也是改变第一级指针的值,没有修改指针对应的内存地址的值,但是对于变量来说,他是指向第一级指针的的内存,故内存改变了。
所以,在不可变量中,使用函数是不会修改其本身的值,而会生成一个新的对象。可变变量中,会对本身做出修改。如:
a = “234.45”
a.replace(‘.’, ‘-‘) 此时,变量a不会做出修改
a = [2, 4, 1]
a.sort() 此时,变量a会做出相应修改
字符串说明:
3.x字符串默认为unicode编码,对于python提供的编码解码函数(encode/decode)来说。默认情况,针对unicode来说,所有编码都是从unicode转换来的,而解码就是从其他编码转化为unicode。
列表操作:
a = [2, 3, 4]
添加:
a.append(5) 添加到末尾
b.insert(2, ‘two’) 在序列号为2插入数据
获取:
正向获取,从序列号0开始递增
a[2] 获取从0开始,序号为2的值(3)
反向获取,从序号-1开始递减
a[-1] 最后一位数据
获取并删除:
a.pop(0) 获取第0位数据并修改列表
a.pop() 获取最后一位数据并修改列表
字典操作:
a = {‘1’:234, ‘345’:’this’}
添加:
a[‘14’] = ‘book’
获取:
直接获取,如b = a[‘1’]
函数获取:
b = a.get(‘1’) 没有对应key值,返回None
b = a.get(‘1’, -1) 没有对应key值,返回-1
获取并删除:
a.pop()