前言
python中的運算符主要包括算術運算符,關系(比較)運算符,賦值運算符,邏輯運算符,成員運算符,身份運算符,三目運算符。使用運算符將不同類型的數據按照一定的規則連接起來的式子,稱為表達式。下面將介紹一些常用的運算符
print(1 + 2) # 3
print(2 - 1) # 1
print(2 * 3) # 6
print(3 / 2) # 1.5
print(6 % 5) # 1
print(8 // 2) # 4
print(3 ** 2) # 9
如果想同時得到商和余數,可以用divmod這個方法
該方法的返回值是tuple (x//y, x%y).
print(divmod(10,3)) # (3,1)
因為浮點數精度的問題,Python還存在一些計算方面的小問題
print(0.1+0.1+0.1-0.3) # 5.551115123125783e-17
要解決這個問題,可以導入decimal模塊
from decimal import Decimal
# 計算結果:0.0
print(Decimal('0.1')+Decimal('0.1')+Decimal('0.1')-Decimal('0.3'))
a = 10
b = 20
print(a == b) # False
print(a != b) # True
print(a > b) # False
print(a < b) # True
print(a >= b) # False
print(a <= b) # True
1.返回值為bool值
print(True == 1) # True
print(False == 0) # True
==比較數值(int與str不能直接比較)
print(2.0 == 2) # True
print('2' == 2) # False
字符串與字符串之間是比較ASCII值
# True
print('abc' < 'xyz') # 97 98 99 < 120 121 122
連續比較,python的解釋機制
print(3 > 2 > 1) # True
print(3 > 2 > 2) # False
print((3 > 2) > 1) # False
a = 1 # 將等號右邊 賦值 等號左邊
a = a + 1 # 先等號右邊計算 再賦值給 等號左邊
a += 1 # a = a + 1
a = 10
b = 20
print(a and b) # 20
print(a or b) # 10
print(not a) # False
a and b 兩者都為True時結果才為True
a or b 兩者有一個為True則結果就為True
短路(懶惰)原則
False and True 當and運算符時,遇到第一個為False則不會往後了
True or False 當or運算符時,遇到第一個為True則不會往後了
list1 = [1, 2, 3, 4, 5]
a = 1
if a in list1:
print("a是list1的元素之一")
else:
print("a不是list1的元素")
a = [1, 2, 3]
b = [1, 2, 3]
# 可通過id()查看內存地址
print(id(a)) # 2042443551304
print(id(b)) # 2042443551816
print(a is b) # False
print(a == b) # True
a = 2
b = 2.0
# 可通過id()查看內存地址
print(id(a)) # 140722443350320
print(id(b)) # 2336678499216
print(a is b) # False
print(a == b) # True
三目運算符的表示方法:True_statements if expression else False_statements
a = 1
b = 2
# a+b不大於3執行後面的else語句 b-a = 1
print(a+b if a+b>3 else b-a)