4.数值类型,集合-python3基础知识

数值类型

1. 整型:

十进制:a=4或者类型转换int() 返回int类型,int(str,base)将字符串转为指定进制的数
二进制:a=0b1011类型转换bin() 返回str类型
八进制:a=0o17 类型转换oct() 返回str类型
十六进制:a=0x12a类型转换hex() 返回str类型

2. 浮点型:float
3. 复数:complex

1+4j或者 1+4J
也可以使用cmoplex(real,imag)来创建
通过c.real c.imag来获取复数的实部跟虚部

数值复杂度整型<浮点型<复数,在不同类型的运算时,Python会默认转为最高复杂度的类型。

4.分数Fraction

通过 from fractions import Fraction导入模块,
创建:x=Fraction(1,3)>>>1/3
可以直接跟其他类型参与计算。

运算

除了基础的数学运算,还包括位运算,取整截断等

运算符描述
x and y逻辑与
x or y逻辑或
not x逻辑非
x if y else z三元表达式
x != y不等于
x | y按位或
x ^ y按位异或/不进位加法
x & y按位与
~x按位非
math.floor()向下取整
math.trunc()截断 ,只保留整数位

集合(set)

集合是无序的可变,但元素是唯一的不可变对象;支持集合论相关操作。

集合创建

直接创建:

x = {'a', 'b', 'c', 'd', 'e'}
>>>{'d', 'c', 'e', 'a', 'b'}
集合是无序的,所以输出结果并不会有序

通过set(Iterator):

字符串:
x=set('abcde')
>>>{'d', 'c', 'e', 'a', 'b'} 
列表:
y=set([1,2,3,4,5])
>>>{1, 2, 3, 4, 5}
元组:
y=set((1,2,3,4,5))
>>>{1, 2, 3, 4, 5}
字典:只有key值 
z=set(dict(a=1,b=2,c=3))
>>>{'a', 'c', 'b'}

同样的,集合可以像列表,字典一样,通过推导方法创建:

x={x**2 for x in [1,2,3,4,5]}
print(x)
>>>{1, 4, 9, 16, 25}
方法

集合论中的差并交补都可以实现
假设 x=set('abcde') y=set(('bcfgh'))

差X-Y:

x-y
>>>{'d', 'e', 'a'}

并X∪Y:

x|y
>>>{'g', 'f', 'd', 'e', 'a', 'c', 'b', 'h'}

交X∩Y:

x&y
>>>{'b', 'c'}

补∁Ux,设U=X∪Y:

u=x|y
u^x
>>>	{'h', 'f', 'g'}

添加元素:
需要注意的是,集合只能包含不可变对象(可哈希的),所以,列表,字典,集合不能嵌套在集合中,否则会报错TypeError: unhashable type:'xxx',如果要添加复合对象,可以添加元组:
x.add(element)或者x.add(tuple)
如果非要嵌套集合,可以通过frozenset(set)创建一个不可变集合:

x=set('abcde')
print(id(x))
y=set(('bcfgh'))
x=frozenset(x)
print(id(x))
y.add(x)
print(y)
>>>1720969268808
1720969341640
{'h', frozenset({'a', 'b', 'e', 'c', 'd'}), 'g', 'b', 'f', 'c'}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值