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'}
本文详细介绍了Python中的基本数据类型,包括整型、浮点型、复数和分数,以及它们的运算规则。同时,深入探讨了集合的创建方法、特性与集合论中的差集、并集、交集和补集的实现方式。

被折叠的 条评论
为什么被折叠?



