Python算術運算子及用法詳解

2021-09-26 02:02:22 字數 3722 閱讀 6008

算術運算子是處理四則運算的符號,在數字的處理中應用得最多。python 支援所有的基本算術運算子,如表 1 所示。

表 1 python常用算術運算子

運算子說明例項結果+

加12.45 + 15

27.45-減

4.56 - 0.26

4.3*

乘5 * 3.6

18.0/除

7 / 2

3.5%

取餘,即返回除法的餘數

7 % 21//

整除,返回商的整數部分

7 // 23**

冪,即返回 x 的 y 次方

2 ** 4

16,即 24

接下來將對錶 1 中各個算術運算子的用法,一一做詳細講解。

例如如下**:

a = 5.2

b = 3.1

the_sum = a + b

# sum的值為8.3

print("the_sum的值為:", the_sum)

除此之外,「+」還可以作為字串(包括後續要介紹的序列)的連線運算子。例如如下**:

s1 = 'hello, '

s2 = 'charlie'

# 使用+連線兩個字串

print(s1 + s2)

例如如下**:

c = 5.2

d = 3.1

sub = c - d

# sub的值為2.1

print("sub的值為:", sub)

此外,「-」除了可以作為減法運算子之外,還可以作為求負的運算子。請看如下**:

# 定義變數x,其值為-5.0

x = -5.0

# 將x求負,其值變成5.0

x = -x

print(x)

但單目運算子「+」則不對運算元做任何改變,例如如下**:

# 定義變數y,其值為-5.0

y = -5.0

# y值依然是-5.0

y = +y

print(y)

例如如下**:

e = 5.2

f = 3.1

multiply = e * f

# multiply的值為16.12

print("multiply的值為:", multiply)

此外,「*」還可以作為字串(包括後續要介紹的序列)的連線運算子,表示將 n 個字串連線起來。例如如下**:

s3 = 'crazyit '

# 使用*將5個字串連線起來

print(s3 * 5)

上面**將會輸出:

crazyit crazyit crazyit crazyit crazyit
python 的除法運算子有兩個:「/」表示普通除法,使用它除出來的結果與平常數學計算的結果是相同的(即除不盡時,會產生小數部分);而「//」表示整除,使用它除出來的結果只有整數部分,小數部分將會被捨棄。例如如下**:

print("19/4的結果是:", 19/4)

print("19//4的結果是:", 19//4)

aa = 5.2

bb = 3.1

# aa / bb的值將是1.67741935483871

print("aa/bb的值是:", aa / bb)

# aa // bb值將是1.0

print("aa//bb的值是:", aa // bb)

此外,python 不允許使用 0 作為除數,否則將會引發 zerodivisionerror 錯誤。

在有些程式語言中,0 作為除數會得到無窮大,包括正無窮大或負無窮大。

對於 python 2.x 而言,它只提供了乙個「/」運算子,該運算子是 python 3.x 中「/」和「//」的綜合版。對於 python 2.x 中的「/」而言,它既是整除運算子,也是非整除運算子。規則如下:

例如,在 python 2.x 的互動式解釋執行器中執行如下**:

>>>print(5/2)

2>>>print(5.0/2)

2.5>>>print(5/2.0)

2.5>>>print(5.0/2.0)

2.5

python 不要求求餘運算子的兩個運算元都是整數,python 的求餘運算子完全支援對浮點數求餘。求餘運算的結果不一定總是整數,它是使用第乙個運算元來除以第二個運算元,得到乙個整除的結果後剩下的值就是餘數。

由於求餘運算也需要進行除法運算,因此求餘運算的第二個運算元不能是 0,否則程式會報出 zerodivisionerror 錯誤。

例如如下程式:

print("5%3的值為:", 5 % 3) # 輸出2

print("5.2%3.1的值為:",5.2 % 3.1) # 輸出2.1

print("-5.2%-3.1的值為:", -5.2 % -3.1) # 輸出-2.1

print("5.2%-2.9的值為:", 5.2 % -2.9) # 輸出-0.6

print("5.2%-1.5的值為:", 5.2 % -1.5) # 輸出-0.8

print("-5.2%1.5的值為:", -5.2 % 1.5) # 輸出0.8

#print("5對0.0求餘的結果是:", 5 % 0.0) # 導致錯誤

這裡需要注意的一點是,使用 % 求餘,如果除數(第二個運算元)是負數,那麼取得的結果也一定是負數。因此,執行上面程式,可以看到如下輸出結果:

5%3的值為: 2

5.2%3.1的值為: 2.1

-5.2%-3.1的值為: -2.1

5.2%-2.9的值為: -0.5999999999999996

5.2%-1.5的值為: -0.7999999999999998

-5.2%1.5的值為: 0.7999999999999998

前三個算式的執行結果比較簡單,它們進行的都是很簡單的求餘計算。但 5.2 % -2.9 的結果有點奇怪,我們預計它為 -0.6,但實際輸出的是 -0.5999999999999996。這裡有兩個問題:

第乙個問題,為什麼預計 5.2 % 2.9 的結果是 -0.6 呢?因為 python 求餘運算的邏輯是用被除數減去除數的 n 倍,此處的 n 是 -2,因此得到結果是 0.6。

第二個問題,為什麼實際輸出的是 -0.5999999999999996 呢?這是由浮點數的儲存機制導致的。計算機底層的浮點數的儲存機制並不是精確儲存每乙個浮點數的值,讀者暫時不需要花太多的時間去理解浮點數的儲存機制,只要知道浮點數在 python 中可能產生精度丟失的問題就行。比如此處正常計算的結果應該是 -0.6,但實際計算出來的結果是乙個非常接近 -0.6 的值。

python 支援使用「**」作為乘方運算子,這是乙個使用非常方便的運算子。由於開方其實是乘方的逆運算,因此實際上使用「**」也可進行開方運算。例如如下**:

print('5 的 2 次方:', 5 ** 2) # 25

print('4 的 3 次方:', 4 ** 3) # 64

print('4 的開平方:', 4 ** 0.5) # 2.0

print('27 的開 3 次方:',27 **(1 / 3 )) # 3.0

Less 算術運算子用法

算術運算子 可以對任何數字 顏色或變數進行運算。如果可能的話,算術運算子在加 減或比較之前會進行單位換算。計算的結果以最左側運算元的單位型別為準。如果單位換算無效或失去意義,則忽略單位。無效的單位換算例如 px 到 cm 或 rad 到 的轉換。www.dgtais.cn 所有運算元被轉換成相同的單...

算術運算子

核心 運算子 就是對常量和變數進行操作的符號。分類 算術運算子,賦值運算子,比較運算子,邏輯運算子,位運算子,三目運算子 算術運算子 注意事項 a 整數相除只能得到整數。如果想得到小數,必須把資料變化為浮點數型別 b 獲取的是除法操作的商,獲取的是除法操作的餘數 class operatordemo...

算術運算子

算術運算子 加 減 乘 除 或 div div只保留整數部分 模 或 mod 查詢員工的姓名和薪資 select ename,salary from t employee 查詢員工的姓名和原來的薪資和漲薪1000元後的薪資 select ename,salary,salary 1000 from t...