python的数据类型及组合数据类型

424 阅读4分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路

数据类型

整数类型

  • 可正可负,没有取值限制
  • pow(x,y)函数:计算x^y,想算多大算多大

四种进制的表示方法

  • 十进制:1010,99,-128
  • 二进制,以0b0B开头:0b010,-0B101
  • 八进制,以0o0O开头:0o123-0O456
  • 十六进制,以0x0X开头:0x9a-0X89

浮点数类型

  • 带有小数点及小数的数字
  • 浮点数取值范围和小数精度都存在限制,但常规计算可以忽略
  • 取值范围数量级约-10^308至10^308,精度数量级10^-16

浮点数间的运算存在不确定位数,不是bug

>>>0.1 + 0.3
0.4
>>>0.1 + 0.2
0.3000000000004

浮点数间运算存在不确定尾数

  • round(x,d):对x四舍五入,d是小数截取位数

    round(0.1+0.2,1)==0.3
    #输出结果
    Ture
    
  • 浮点数间运算及比较用round()函数辅助

  • 不确定尾数一般发生再10^-16左右,round()十分有效

浮点数可以采用科学计数法表示

  • 使用字母e或E作为幂的符号,以10为基数,格式如下:

e 表示a*10^b

  • 例如:4.3e-3值为0.0043 9.6E5值为960000.0

取值范围和精度基本无限制

运算存在不确定尾数 round()

科学计数法的表示

复数类型

只有python提供复数类型

z=1.23e-4+5.6e+89j
  • 实部是什么? z.real 获得实部
  • 虚部是什么? z.imag获得虚部

组合数据类型

集合类型定义

集合是多个元素的无序组合(类似于c语言中的数组)

  • 集合类型与数学中的集合概念一致

  • 集合元素之间无序,每个元素唯一,不存在相同元素

  • 集合元素不可更改,不能是可变数据类型 非可变数据类型(整数,浮点数,复数,字符串类类型,元组类型等)

  • 集合用大括号{}表示,元素间用逗号分隔

  • 建立集合类型用{}或set()

  • 建立空集合类型,必须使用set()

例子
>>> A = {"python",123,("python",123)} #使用{}建立集合
{123,"python",("python",123)}
>>> B = set("pypy123")  #使用set()建立集合
{"1","p","y","2","3"}
>>> C = {"python",123,"python",123}
{"python",123}

重点

  • 集合用大括号{}表示,元素间用逗号分隔
  • 集合中每个元素唯一,不存在相同元素
  • 集合元素之间无序

集合操作符

6个操作符用来表示集合的运算(一个新的集合)

操作符及应用意义
S | T返回一个新集合,包括在集合S和T中的所有元素
S - T返回一个新集合,包括在集合S但不在T中的元素
S & T返回一个新集合,包括同时在集合S和T中的元素
S ^ T返回一个新集合,包括集合S和T中的非相同元素
S<=T或S<T返会True/False,判断S和T的子集关系
S>=T或S>T返会True/False,判断S和T的包含关系

1644310903(1).jpg

4个增强操作符 (修改原有的集合)

操作符及应用意义
S |= T更新集合S,包括在集合S和T中的所有元素
S -= T更新集合S,包括在集合S但不再T中的元素
S &= T更新集合S,包括同时在集合S和T中的元素
S ^= T更新集合S,包括集合S和T中的非相同元素
示例
>>> A = {"P","y",123}
>>> B = {"pypy123"}
>>> A-B
{123}
>>> B-A
{"1","2","3"}
>>> A&B
{"p","y"}
>>> A|B
{"1","2","3","y","p",123}
>>> A^B
{"1","2","3",123}

集合的处理方法

操作函数或方法意义
S.add(x)如果x不再集合S中,将x增加到S
S.discard(x)移除S中元素x,如果x不在集合S中,不报错
S.remove(x)移除S中元素x,如果x不在集合S中,产生KeyError异常
S.clear()移除S中所有元素
S.pop()随机返回S的一个元素,更新S,若S为空产生KeyError异常
S.copy()返回集合S的一个副本
len(S)返回集合S的元素个数
x in S判断S中元素x,x在集合S中,返回True,否则返回False`
x not in S判断S中元素x,x不在集合S中,返回True,否则返回False
set(x)将其他类型变量x转变为集合类型
示例
>>> A = {"p","y",123}
>>> for item in A
	print(item,end="")
p123y
>>> A
{"p",123,"y"}

____________________________
>>> A = {"p","y",123}
>>> try:
    	while True:
            print(A.pop(),end="")
    except:
        pass
p123y
>>> A
set()

集合类型应用场景

1.包含关系的比较

>>> "p" in {"p","y",123}
True
>>> {"p","y"} >= {"p","y",123}
Flase

2.数据去重

利用集合中的元素不能重复的特点

>>> ls = ["p","p","y","y",123]
>>> s = set{ls} #利用了集合无重复元素的特点
{"p","y",123}
>>> lt = list(s)  #将集合转换为列表
["p","y",123]