day02-python的數字型別
在Python中,資料採用的是物件的形式,無論是Python所提供的內建物件,還是使用Python的工具和像C語言這樣的其他語言所建立的物件。
Python的數字型別是相當典型的,它其實並不是一個真正的型別物件,而是一組類似物件的分類。Python不僅支援常規的數字型別(整形和浮點型),而且可以通過常亮去直接建立數字以及處理數字的表示式。
Python的數字型別一般包括:整數和浮點數、複數、固定精度的十進位制數、集合、布林值、無窮的整數精度、數字型別的內建函式和模組。
1.數字常量
在Python的基本數字型別中,擁有整數(正、負)、浮點數、還允許我們使用二進位制、八進位制和十進位制常量來表示整數、複數以及允許整數擁有無窮的精度。
數字 |
常亮 |
12、-12、0、0.888888888888….. |
整數(無窮大小) |
2.12、2.、4.444e-10 |
浮點數 |
0o133、0x2d、0b1010101 |
八進位制、十六進位制、二進位制 |
3+4j |
複數 |
2.變數和基本的表示式
在Python中:
- 變數在它第一次賦值時被建立
- 變數在表示式中使用時被替換為它們的值
- 變數在表示式中使用時必須被賦值
- 變數和物件一樣不需要在一開始進行宣告
這些特點總體的意思是說變數不需要預先宣告,但是用之前必須要賦值。示例如下:
a = 3 b = 4 print(a + 1, b - 1) 結果:4 3 print(a * 3, b / 2) 結果:9 2.0 print(a % 2, b ** 2) 結果:1 16 print(a + 5.5, 2.4 ** b) 結果:8.5 33.1776
3. 數字的比較
print(1 < 2) 結果:True print(1 < 2.0) 結果:True print(1 < 2 < 3) 結果:Trueprint(2 > 1 and 2 < 3) 結果:True
4. 數字的除法
4.1 傳統除法和真除法
在Python2.6以前的版本中,除法操作對於整數會隱去小數部分,對於浮點數會保留小數部分。但是在Python3.0中變成了真除法(都會保留小數部分)
print('真除法:',1 / 2) 真除法: 0.5 print('真除法:',1 / 3.0) 真除法: 0.3333333333333333
4.2 Floor除法
會忽略掉小數部分,只保留整數部分。
print('floor除法',10 // 4) floor除法:2 print('floor除法',10 // 4.0) floor除法:2.0 print('floor除法',10 // -4.0) floor除法:-3.0
5. 複數
在Python中,複數是個不同的核心物件型別。複數表示兩個浮點數(實部和虛部)並且在虛部增加了j或者J的字尾。
print(1j + 2J) 結果:3j print(1 + 2j * 4) 結果:(1+8j)
6. 進位制
a = 22 print('轉化為8進位制:',oct(a)) #轉化為8進位制: 0o26 print('轉化為16進位制:',hex(a)) #轉化為16進位制: 0x16 print('轉化為2進位制:',bin(a)) #轉化為2進位制: 0b10110 b = '22' print('8轉化10進位制:',int(b,8)) #8轉化10進位制: 18
print('16轉化10進位制:',int('40',16))
#16轉化10進位制: 64
print('2轉化10進位制:',int('11000',2))
#2轉化10進位制: 24
7. 內建的數字相關函式
print('幾次方:',pow(2,3)) #幾次方: 8 print('絕對值:',abs(-8)) #絕對值: 8 print('計算和:',sum((1,2,3,4,5,5,6))) #計算和: 26 print('最大值:',max(1,2,3,4)) #最大值: 4 print('最小值:',min(1,2,3,4)) #最小值: 1 print('將數字轉化為字串:',type(str(33))) #將數字轉化為字串: <class 'str'> import random print('生成隨機數:',random.random()) #生成隨機數: 0.6469830797468936 print('生成指定範圍的整數:',random.randint(1,5)) #生成指定範圍的整數: 5 print('從序列(list,tuple,str)中獲取一個隨機的元素:',random.choice([1,2,3,4,5,6])) #從序列(list,tuple,str)中獲取一個隨機的元素: 2
8.布林型別
真值:True,假值:False
9.練習
(1)Python表示式2 * (3 + 4)的值是多少?
答:最後的結果是14,是2 * 7的結果。
(2)Python表示式2 * 3 + 4的值是多少?
答:最後的結果是10,是6 + 4的結果。
(3)求一個數字的平方根和平方?
平方根:math.sqrt(num)
平方:a ** 2,pow(a,2)
(4)表示式1 + 2.0對的結果是什麼型別的數字?
答:浮點數型別。浮點數型別比整數型別複雜,會按照複雜的浮點數型別進行計算。
(5)怎樣截斷或者捨去浮點數的小數部分?
答:int(a)和math.trunc(a)函式省略小數部分,round(num,dight)做四捨五入。
(6)怎樣將一個整數轉化為浮點數?
答:float(a)將一個整數轉化為浮點數
(7)如何將8進位制、16進位制、2進位制的數轉化為正常的整數。
答:int(num,dihgt),dight表示的是多少進位制的數。