天天看點

python科學計算生态-002-數字python科學計算生态-002-數字

python科學計算生态-002-數字

數字:

數字可以直接通路,是不可更改并且不可分割的原子類型。 不可更改意味着變更數字值的實質是新對象的建立。 Python本身支援整數和浮點數,其整數類型可以存儲任意大小的整數 (所能表達的數字範圍和計算機的虛拟記憶體大小有關),這使得Python非常适合大數計算。

python可以進行大數計算

數字對象的建立和指派

# 像大多數腳本語言一樣,無需指定類型
a_int = 1
a_float = 3.1415
           

布爾值

bool() # False
bool(1) # True
bool(0) # False
bool(True) # True
bool(False) # False
print(True+False) # 1  -->是以t和f可以看做1和0進行運算
           

布爾運算

and or not

三個布爾運算符

運算優先級:

not

>

and

>

or

複數

real + imag j

  • 實數部分和虛數部分都是浮點型,虛數部分結尾必須是j或J。
  • 複數包含兩個浮點屬性:real(實數部分),imag(虛數部分), 還有一個方法:

    conjugate()

    ,用以擷取其共轭複數。
a_complex = 3.5 + 2.9j
print(a_complex) # (3.5 + 2.9j)
type(a_complex) # complex-->複數類型
print(a_complex.real) # 3.5 -->擷取複數的真值部分
print(a_complex.imag) # 2.9 -->擷取複數的虛部的值
a_complex.conjugate() # 擷取虛數的共轭複數
# 當然實數也可以用這個函數,并且傳回值就是他本身
a_real = 3
a_real.conjugate()
           

更新數字對象(即重新指派)

本質:建立了新對象,并且指向了新對象,并不是改變了原本對象的值哦

a_float = 3.14
a_float = 3.14159
           

‘删除’數字對象

del a_float
a_float # 報錯啦
           

tip:

注意引用計數,和對象之間的關系。當引用計數為0的時候,對象才會沒有。

python的數學運算

運算符 描述 示例 結果
+ 加法 5 + 8 13
- 減法 90 - 10 80
* 乘法 4 * 7 28
/ 浮點數除法 7 / 2 3.5
// 整數除法 7 // 2 3
% 模(求餘) 7 % 3 1
** 3 ** 4 81

一些運算指派合并

1/2 # 0.5
2/2 # 1.0 -->這裡進行的是浮點數除法運算
1//2 # 0 -->整數整除運算
1.0//2.0 #0.0 --> 浮點數整除運算
           

除法

  • /

    執行的浮點除法
  • 5/0

    如果除數為0,則會産生

    ZeroDivisionError

    異常

基數

三種進制的數字

0b10 or 0B10 二進制
0o10 or 0010 八進制
0x10 or 0X10 十六進制
           

進制轉換

簡單類型向複雜類型轉換

不精确類型向更精确類型轉換。

類型轉換失敗會産生

ValueError

異常。

# 都會報錯
int('10a')
int('98.6')
           

數學函數

int()
float()
complex()
bool()
complex() ## 隻有虛部不可,但隻有實部可
bool('') # False
           

功能函數

abs()

傳回絕對值函數 and 可以用于複數絕對值運算,即傳回實部和虛部平方和的二次方根。

divmod()

此函數将除法和求餘結合起來,傳回一個包含商和餘數的元組

pow()

此函數可以實作幂運算

round()

此函數可以實作真正的四舍五入

divmod(10,3) # (3,1)
divmod(2.5,10) # (0.0,2.5)
pow(5.2) #25
round(4.499) # 4
round(4.6) # 5
round(4.51) #5
round(4.492,2) # 4.49