Python基础——第一章 数值类型及序列类型

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]

猜你喜欢

转载自blog.csdn.net/weixin_44435602/article/details/110234494