人生苦短,我選Python
前文傳送門
前言
前面我們講了變量的基礎操作,本文我們接着講運算符。
運算符根據用途可以分為以下這么幾類:
- 算術運算符
- 比較運算符
- 賦值運算符
- 邏輯運算符
- 成員運算符
- 身份運算符
本篇我們先介紹前兩個,算術運算符和比較運算符。
算數運算符
算術運算符顧名思義就是我們做數字計算的時候用到的運算符,當然,加減乘除肯定都有,除此之外呢,還有程序中常見的取摸、取冪和取整除。詳細如下表:
運算符 | 描述 |
---|---|
+ | 加 |
- | 減 |
* | 乘 |
/ | 除 |
% | 取模 - 返回除法的余數 |
** | 冪 - 返回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 上,方便大家取用。