1. 程式人生 > >day02-python的數字型別

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)
結果:True

print(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表示的是多少進位制的數。