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'}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章