【基礎教程】Python算術運算符及用法詳解

算術運算符也即數學運算符,用來對數字進行數學運算,比如加減乘除。下表列出了 Python 支持所有基本算術運算符。

表 1 Python 常用算術運算符
運算符 說明 實例 結果
+ 12.45 + 15 27.45
- 4.56 - 0.26 4.3
* 5 * 3.6 18.0
/ 除法(和數學中的規則一樣) 7 / 2 3.5
// 整除(只保留商的整數部分) 7 // 2 3
% 取餘,即返回除法的餘數 7 % 2 1
** 冪運算/次方運算,即返回 x 的 y 次方 2 ** 4 16,即 24


接下來將對錶 1 中各個算術運算符的用法逐一講解。

+ 加法運算符

加法運算符很簡單,和數學中的規則一樣,請看下面的代碼:


 
  1. m = 10
  2. n = 97
  3. sum1 = m + n
  4.  
  5. x = 7.2
  6. y = 15.3
  7. sum2 = x + y
  8.  
  9. print("sum1=%d, sum2=%.2f" % (sum1, sum2) )

運行結果:
sum1=107, sum2=22.50

拼接字符串

+用於數字時表示加法,但是當+用於字符串時,它還有拼接字符串(將兩個字符串連接爲一個)的作用,請看代碼:


 
  1. name = "C語言中文網"
  2. url = "http://c.biancheng.net/"
  3. age = 8
  4. info = name + "的網址是" + url + ",它已經" + str(age) + "歲了。"
  5. print(info)

運行結果:

C語言中文網的網址是http://c.biancheng.net/,它已經8歲了。

str() 函數用來將整數類型的 age 轉換成字符串。

- 減法運算符

減法運算也和數學中的規則相同,請看代碼:


 
  1. n = 45
  2. m = -n
  3.  
  4. x = -83.5
  5. y = -x
  6.  
  7. print(m, ",", y)

運行結果:
-45 , 83.5

求負

-除了可以用作減法運算之外,還可以用作求負運算(正數變負數,負數變正數),請看下面的代碼:


 
  1. n = 45
  2. n_neg = -n
  3.  
  4. f = -83.5
  5. f_neg = -f
  6.  
  7. print(n_neg, ",", f_neg)

運行結果:
-45 , 83.5

注意,單獨使用+是無效的,不會改變數字的值,例如:


 
  1. n = 45
  2. m = +n
  3.  
  4. x = -83.5
  5. y = +x
  6.  
  7. print(m, ",", y)

運行結果:
45 , -83.5

*乘法運算符

乘法運算也和數學中的規則相同,請看代碼:


 
  1. n = 4 * 25
  2. f = 34.5 * 2
  3. print(n, ",", f)

運行結果:
100 , 69.0

重複字符串

*除了可以用作乘法運算,還可以用來重複字符串,也即將 n 個同樣的字符串連接起來,請看代碼:


 
  1. str1 = "hello "
  2. print(str1 * 4)

運行結果:
hello hello hello hello 

/ 和 // 除法運算符

Python 支持///兩個除法運算符,但它們之間是有區別的:

  • /表示普通除法,使用它計算出來的結果和數學中的計算結果相同。
  • //表示整除,只保留結果的整數部分,捨棄小數部分;注意是直接丟掉小數部分,而不是四捨五入。


請看下面的例子:


 
  1. #整數不能除盡
  2. print("23/5 =", 23/5)
  3. print("23//5 =", 23//5)
  4. print("23.0//5 =", 23.0//5)
  5. print("-------------------")
  6.  
  7. #整數能除盡
  8. print("25/5 =", 25/5)
  9. print("25//5 =", 25//5)
  10. print("25.0//5 =", 25.0//5)
  11. print("-------------------")
  12.  
  13. #小數除法
  14. print("12.4/3.5 =", 12.4/3.5)
  15. print("12.4//3.5 =", 12.4//3.5)

運行結果:

23/5 = 4.6
23//5 = 4
23.0//5 = 4.0
-------------------
25/5 = 5.0
25//5 = 5
25.0//5 = 5.0
-------------------
12.4/3.5 = 3.542857142857143
12.4//3.5 = 3.0

從運行結果可以發現:

  • /的計算結果總是小數,不管是否能除盡,也不管參與運算的是整數還是小數。
  • 當有小數參與運算時,//結果纔是小數,否則就是整數。


需要注意的是,除數始終不能爲 0,除以 0 是沒有意義的,這將導致 ZeroDivisionError 錯誤。在某些編程語言中,除以 0 的結果是無窮大(包括正無窮大和負無窮大)。

Python 2.x 中的除法

Python 2.x 只提供了一種除法運算,就是/,它的行爲和大部分編程語言中/的行爲是一樣的:

  • /兩邊都是整數時,結果始終是整數;如果不能除盡,就直接捨棄小數部分。
  • /兩邊有一個是小數時,結果始終是小數;如果恰好除盡,小數部分就是 0。


請看下面的代碼:


 
  1. #整數除法
  2. print "18/6 =", 18/6
  3. print "47/7 =", 47/7
  4.  
  5. print "----------------"
  6.  
  7. #小數除法
  8. print "18.0/6 =", 18.0/6
  9. print "47.0/7 =", 47.0/7
  10. print "29.5/4.2 =", 29.5/4.2

運行結果:

18/6 = 3
47/7 = 6
----------------
18.0/6 = 3.0
47.0/7 = 6.71428571429
29.5/4.2 = 7.02380952381

你可以將 Python 2.x 中的/看作 Python 3.x 中///的結合體,因爲 Python 2.x 中/的行爲有點奇怪,所以 Python 3.x 增加了//運算符,用以規範除法運算的行爲。

% 求餘運算符

Python % 運算符用來求得兩個數相除的餘數,包括整數和小數。Python 使用第一個數字除以第二個數字,得到一個整數的商,剩下的值就是餘數。對於小數,求餘的結果一般也是小數。

注意,求餘運算的本質是除法運算,所以第二個數字也不能是 0,否則會導致 ZeroDivisionError 錯誤。

Python % 使用示例:


 
  1. print("-----整數求餘-----")
  2. print("15%6 =", 15%6)
  3. print("-15%6 =", -15%6)
  4. print("15%-6 =", 15%-6)
  5. print("-15%-6 =", -15%-6)
  6.  
  7. print("-----小數求餘-----")
  8. print("7.7%2.2 =", 7.7%2.2)
  9. print("-7.7%2.2 =", -7.7%2.2)
  10. print("7.7%-2.2 =", 7.7%-2.2)
  11. print("-7.7%-2.2 =", -7.7%-2.2)
  12.  
  13. print("---整數和小數運算---")
  14. print("23.5%6 =", 23.5%6)
  15. print("23%6.5 =", 23%6.5)
  16. print("23.5%-6 =", 23.5%-6)
  17. print("-23%6.5 =", -23%6.5)
  18. print("-23%-6.5 =", -23%-6.5)

運行結果:

-----整數求餘-----
15%6 = 3
-15%6 = 3
15%-6 = -3
-15%-6 = -3
-----小數求餘-----
7.7%2.2 = 1.0999999999999996
-7.7%2.2 = 1.1000000000000005
7.7%-2.2 = -1.1000000000000005
-7.7%-2.2 = -1.0999999999999996
---整數和小數運算---
23.5%6 = 5.5
23%6.5 = 3.5
23.5%-6 = -0.5
-23%6.5 = 3.0
-23%-6.5 = -3.5

從運行結果可以發現兩點:

運行結果:

----次方運算----
3**4 = 81
2**5 = 32
----開方運算----
81**(1/4) = 3.0
32**(1/5) = 2.0

  • 只有當第二個數字是負數時,求餘的結果纔是負數。換句話說,求餘結果的正負和第一個數字沒有關係,只由第二個數字決定。
  • %兩邊的數字都是整數時,求餘的結果也是整數;但是只要有一個數字是小數,求餘的結果就是小數。
  • ** 次方(乘方)運算符

    Python ** 運算符用來求一個 x 的 y 次方,也即次方(乘方)運算符。

    由於開方是次方的逆運算,所以也可以使用 ** 運算符間接地實現開方運算。

    Python ** 運算符示例:
    
     
    
     
  • print('----次方運算----')
  • print('3**4 =', 3**4)
  • print('2**5 =', 2**5)
  •  
  • print('----開方運算----')
  • print('81**(1/4) =', 81**(1/4))
  • print('32**(1/5) =', 32**(1/5))
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章