小白學 Python(5):基礎運算符(上)

  • 2019 年 10 月 24 日
  • 筆記

人生苦短,我選Python

前文傳送門

小白學 Python(1):開篇

小白學 Python(2):基礎數據類型(上)

小白學 Python(3):基礎數據類型(下)

小白學 Python(4):變數基礎操作

前言

前面我們講了變數的基礎操作,本文我們接著講運算符。

運算符根據用途可以分為以下這麼幾類:

  • 算術運算符
  • 比較運算符
  • 賦值運算符
  • 邏輯運算符
  • 成員運算符
  • 身份運算符

本篇我們先介紹前兩個,算術運算符和比較運算符。

算數運算符

算術運算符顧名思義就是我們做數字計算的時候用到的運算符,當然,加減乘除肯定都有,除此之外呢,還有程式中常見的取摸、取冪和取整除。詳細如下表:

運算符 描述
+
*
/
% 取模 – 返回除法的餘數
** 冪 – 返回x的y次冪
// 取整除 – 向下取接近除數的整數

我們來看幾個簡單的例子:

a = 5  b = 10    c = a + b  print("1. c 的值為:", c)    c = a - b  print("2. c 的值為:", c)    c = a * b  print("3. c 的值為:", c)    c = a / b  print("4. c 的值為:", c)    c = a % b  print("5. c 的值為:", c)    c = a ** b  print("6. c 的值為:", c)    # 改變 a 和 b 的值    a = 10  b = 5    c = a // b  print("7. c 的值為:", c)

計算結果如下:

1. c 的值為: 15  2. c 的值為: -5  3. c 的值為: 50  4. c 的值為: 0.5  5. c 的值為: 5  6. c 的值為: 9765625  7. c 的值為: 2

上面的栗子都整形的計算,如果是不同類型的數據運算,會發生隱式類型轉換。

類型轉換的規則由低等向高等轉換。

bool(布爾) < int(整形) < float(浮點型) < complex(複數)

我們再看幾個栗子:

a = 1  b = 1.5  c = a + b  print("8. c 的值為:", c, ",c 的類型為:", type(c))    d = True  e = c + d  print("9. e 的值為:", e, ",e 的類型為:", type(e))    f = 2 + 4j  g = e + f  print("10. g 的值為:", g, ",g 的類型為:", type(g))

計算結果如下:

8. c 的值為: 2.5 ,c 的類型為: <class 'float'>  9. e 的值為: 3.5 ,e 的類型為: <class 'float'>  10. g 的值為: (5.5+4j) ,g 的類型為: <class 'complex'>

注意: 在算術運算時,True代表1,False代表0

運算內置函數

內置的意思就是安裝好就有,無需額外安裝,就比如我們每次買回來的新手機都有一堆內置的軟體:)

Python 提供的內置函數如下圖:

我們這裡選取一些和計算相關的常用的內置函數做一些簡單的講解和演示(個人覺得演示更加的重要):

函數 含義
abs(x) 返回一個數的絕對值。實參可以是整數或浮點數。如果實參是一個複數,返回它的模。
complex([real[, imag]]) 返回值為 real + imag*1j 的複數,或將字元串或數字轉換為複數。
divmod(a, b) 它將兩個(非複數)數字作為實參,並在執行整數除法時返回一對商和餘數。
float([x]) 返回從數字或字元串 x 生成的浮點數。
pow(x, y[, z]) 返回 x 的 y 次冪;如果 z 存在,則對 z 取余(比直接 pow(x, y) % z 計算更高效)。兩個參數形式的 pow(x, y) 等價於冪運算符: x**y。
round(number[, ndigits]) 返回 number 舍入到小數點後 ndigits 位精度的值。 如果 ndigits 被省略或為 None,則返回最接近輸入值的整數。
sum(iterable[, start]) 從 start 開始自左向右對 iterable 中的項求和並返回總計值。 start 默認為 0。 iterable 的項通常為數字,開始值則不允許為字元串。
bin(x) 將一個整數轉變為一個前綴為「0b」的二進位字元串。
oct(x) 將一個整數轉變為一個前綴為「0o」的八進位字元串。
hex(x) 將整數轉換為以「0x」為前綴的小寫十六進位字元串。
chr(i) 返回 Unicode 碼位為整數 i 的字元的字元串格式。
ord(c) 對表示單個 Unicode 字元的字元串,返回代表它 Unicode 碼點的整數。
bool([x]) 返回一個布爾值,True 或者 False。

測試示例如下:

print("11. -1 的絕對值為:", abs(-1))    print("12. 創建的複數為:", complex(1, -2))    print("13. 商和餘數為:", divmod(10, 3))    print("14. 浮點型轉換:", float(1))    print("15. 10的3次冪為:", pow(10, 3))    print("16. 四捨五入為:", round(5.5))    print("17. 集合求和結果為:", sum({1, 2, 3 ,4}))    print("18. 整數20的二進位為:", bin(20))    print("19. 整數20的八進位為:", oct(20))    print("20. 整數20的十六進位為:", hex(20))    print("21. Unicode 為 97 的字元串:", chr(97))    print("22. 字元串 a 的 Unicode 碼:", ord('a'))    print("23. 123 的 boolean 值為:", bool(123))    print("24. 空字元串的 boolean 的值為:", bool(''))

測試結果如下:

11. -1 的絕對值為: 1  12. 創建的複數為: (1-2j)  13. 商和餘數為: (3, 1)  14. 浮點型轉換: 1.0  15. 10的3次冪為: 1000  16. 四捨五入為: 6  17. 集合求和結果為: 10  18. 整數20的二進位為: 0b10100  19. 整數20的八進位為: 0o24  20. 整數20的十六進位為: 0x14  21. Unicode 為 97 的字元串: a  22. 字元串 a 的 Unicode 碼: 97  23. 123 的 boolean 值為: True  24. 空字元串的 boolean 的值為: False

比較運算符

從字面意思來理解,比較運算符就是比較兩個數值或者字元串類型的數據,返回一個布爾值。

比較運算符有以下幾種:

運算符 描述
== 等於 – 比較對象是否相等
!= 不等於 – 比較兩個對象是否不相等
> 大於 – 返回x是否大於y
< 小於 – 返回x是否小於y。所有比較運算符返回1表示真,返回0表示假。這分別與特殊的變數True和False等價。注意,這些變數名的大寫。
>= 大於等於 – 返回x是否大於等於y。
<= 小於等於 – 返回x是否小於等於y。

下面我們舉幾個栗子:

a = 5  b = 10    if (a == b):      print("25. a 等於 b")  else:      print("25. a 不等於 b")    if (a != b):      print("26. a 不等於 b")  else:      print("26. a 等於 b")    if (a < b):      print("27. a 小於 b")  else:      print("27. a 大於等於 b")    if (a > b):      print("28. a 大於 b")  else:      print("28. a 小於等於 b")    if (a <= b):      print("29. a 小於等於 b")  else:      print("29. a 大於  b")    if (b >= a):      print("30. b 大於等於 a")  else:      print("30. b 小於 a")

結果如下:

25. a 不等於 b  26. a 不等於 b  27. a 小於 b  28. a 小於等於 b  29. a 小於等於 b  30. b 大於等於 a

示例程式碼

本系列的所有程式碼小編都會放在程式碼管理倉庫 Github 和 Gitee 上,方便大家取用。

示例程式碼-Github

示例程式碼-Gitee