1、数值类型
1.1、Python怎么做运算?
加:+
减:-
乘:*
除:/
整除://,例如:5//2 结果是 2
取余:%,例如:7/3 结果是1
幂: ** ,例如2**3 结果是8
1.2、数值类型
整数:int
浮点数:float
字符:char
布尔值:bool
复数:complex
注:查看数值类型或变量的函数type
计算怎么得到精确结果
>>>a = 0.2*0.2
>>>a
输出结果:0.04000000000000001
0.2*0.2,我们都知道结果是0.04,但是计算机运算结果却是0.04000000000000001,为什么会出现这样的结果呢?怎么才能得出精确的结果呢?
这里导入decimal(十进制)的模块,这个模块提供了十进制浮点运算支持。
>>>import decimal
>>>a = decimal.Decimal('0.2')
>>>b = a*a
>>>b
输出结果:Decimal('0.04')
2、序列类型
2.1、字符串
字符串的表示str
定义的方式一:单引号’ ’
方式二:双引号" "
方式三:三引号’’’ ‘’’
>>>b = 'hello world'
>>>b[0]
输出结果:'h'
2.2、列表
列表:list
列表是怎么定义,例如
>>>li = [a,1,2,3,b]
>>>type(li)
输出结果:class 'list'
>>>li[0] '''获取列表li的第一个位置的元素'''
输出结果:a
>>>li[1:3] '''获取列表li的区间内的所有元素,左闭右开'''
输出结果:['1','2']
>>>li[1:] '''获取列表li的区间内的所有元素'''
输出结果:['1','2','3','b']
>>>li[1:4:2] '''获取列表li的指定区间内的隔一个位置的元素'''
输出结果:['1','3']
2.3、元组
元组:tuple
元组怎么定义,例如
>>>yz =(1,2, [a,1,2,3,b],)
>>>type(yz)
输出结果:class 'tuple'
2.4、元组和列表之间的区别
这里先定义一个元组和一个列表
#定义列表
>>>a = [1,2,3,4,5]
>>>a[0] = 6
>>>a
[6,2,3,4,5]
#定义元组
>>>b = [1,2,3,4,5]
>>>b[0] = 88
报错:Traceback (most recent call last):
File "<pyshell#=135",line 1,in<module>
b[0] = 88
TypeError;'tuple' object does not support item assignment
可看出,列表可以通过切片赋值改变元素,而元组不可变,如果要改变元组元素,可以将元组转化成列表去改变。
这里提出个问题,如果元组A转化成列表B,在转化为元组C,那么A和C是一样的吗?
这里就引出了函数——id()查看地址
>>>a = (1,2,3,4)
>>>id(a)
2412605424008
>>>b = list(a)
>>>b
[1,2,3,4]
>>>id(b)
2412605734792
>>>c = tuple(b)
>>>c
(1,2,3,4)
>>>id(c)
2412606169480
可看出,元组a、元组c的地址不一样,转换之后的元组的会改变地址
2.5、序列的相互转化
>>>a = [1,2,3,4] '''定义列表'''
>>>tuple(a) '''强制转换成元组'''
输出结果:(1,2,3,4)
>>>a = (1,2,3,4) '''定义元组'''
>>>list(a) '''强制转换成列表'''
输出结果:[1,2,3,4]
>>>a = 'hello world' '''定义字符串'''
>>>list(a) '''强制转换成列表'''
输出结果:['h','e','l','l','o',' ','w','o' ,'r','l','d']
>>>tuple(a) "'强制转换成元组'''
输出结果:('h','e','l','l','o',' ','w','o' ,'r','l','d')
赋值
>>>a = [1,2,3,4,5,6]
>>>b = a '''把a的值赋值给b'''
>>>b
[1,2,3,4,5,6]
>>>id(a)
24126062114596
>>>id(b)
24126062114596
拆包,当不知道列表或者元组里有多少元素,可以通拆包的形式把想要的数据拆分出来,特别注意的是拆分元组时,分组是以列表形式存储。定义列表li,令a,b,c=li;拆包分组中仅能出现一个带*,出现2个及2个*以上会报错
#列表拆包
>>>li = [1,2,3,4,5,6,7,8,9]
>>>a,*b,c = li
>>>a
1
>>>b
[2,3,4,5,6,7,8]
>>>c
9
>>>a,b,*c = li
>>>a
1
>>>b
2
>>>c
[3,4,5,6,7,8,9]
#元组拆包
>>>yz = (1,2,3,4,5,6,7,8,9)
>>>a,*b = li
>>>a
1
>>>b
[2,3,4,5,6,7,8,9]