1. 程式人生 > >小白學 Python(5):基礎運算子(上)

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

人生苦短,我選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

示例程式碼-Gi