天天看點

032 基本運算符

目錄

  • 算術運算符
  • 比較運算符
  • 指派運算符
  • 邏輯運算符
  • 身份運算符
  • 位運算符
  • 成員運算符
  • Python運算符優先級

當我們眼前飄過一隻生物後,我們會立即獲得這個生物的資訊,種類、性别、身高、三維,當我們擷取這些資訊的同時,我們還會馬上對這些資訊做一些邏輯處理,如這個生物種類是老虎的時候,我們會跑開;這個生物是人,性别為女,但是身高隻有一米三時,我們可能會不自覺地靠近?

算術運算符就是我們從國小就開始抓起的加減乘除,這裡我就不多介紹,如果認為有問題的同學,可以抽空回到國小聯系你國小班主任,讓他給你補補課。

print(1 + 2)
           
3
           
x = 10
y = 20
res = x + y
print(res)
           
30
           
# /有零有整除,得到一個浮點型
print(10 / 3)
           
3.3333333333333335
           
# 地闆除,隻取整數部分
print(10 // 3)
print(10 // 4)
           
3
2
           
# %:取餘
print(10 % 3)
           
1
           
# **,幂
print(10**3)
           
1000
           
032 基本運算符

此處直接貼圖了,以下假設變量a為10,變量b為20。

032 基本運算符
pwd = '123'
print(pwd != '123')
print(pwd == '123')
           
False
True
           
l1 = [1, 'a', 3]
l2 = [3]
print(l1 < l2)  # False
           
True
           
try:
    l3 = [1, 3]
    print(l1 < l3)  # 報錯,清單比較大小僅限于同一位置的對應的值是相同的類型
except Exception as e:
    print(e)
           
name 'l1' is not defined
           
032 基本運算符
age = 19
age = age + 1
print(age)
           
20
           
age = 19
age += 1
print(age)
           
20
           
age = 19
age *= 10
print(age)
           
190
           
032 基本運算符
# 從左到右的方式找到邏輯運算符,找到邏輯運算符的左邊,左邊成立,再去找到邏輯運算符的右邊
print(3 > 3 and 1 > 2 or 2 > 1)  # False
           
True
           

身份運算符用于比較兩個對象的存儲單元。

032 基本運算符

is和==的差別:is用于判斷兩個變量引用對象是否為同一個(是否在同一塊記憶體空間中), ==用于判斷引用變量的值是否相等。

x = 257
y = x
z = 257
           

print(f'x is y:{x is y}') print(f'x == y:{x == y}')

print(f'x is z:{x is z}') print(f'x == z:{x == z}')

x is y:True
x == y:True
x is z:False
x == z:True
           

按位運算符是把數字看作二進制來進行計算的。Python中的按位運算法則如下:

下表中變量 a 為 60,b 為 13,二進制格式如下:

a = 0011 1100
           

b = 0000 1101

a&b = 0000 1100

a|b = 0011 1101

a^b = 0011 0001

~a = 1100 0011

032 基本運算符
a = 60  # 60 = 0011 1100
b = 13  # 13 = 0000 1101
c = 0
           

c = a & b # 12 = 0000 1100 print("1 - c 的值為:", c)

1 - c 的值為: 12
           
c = a | b
# 61 = 0011 1101
print("2 - c 的值為:", c)
           
2 - c 的值為: 61
           
c = a ^ b
# 49 = 0011 0001
print("3 - c 的值為:", c)
           
3 - c 的值為: 49
           
c = ~a
# -61 = 1100 0011
print("4 - c 的值為:", c)
           
4 - c 的值為: -61
           
c = a << 2
# 240 = 1111 0000
print("5 - c 的值為:", c)
           
5 - c 的值為: 240
           
c = a >> 2
# 15 = 0000 1111
print("6 - c 的值為:", c)
           
6 - c 的值為: 15
           

除了以上的一些運算符之外,Python還支援成員運算符,測試執行個體中包含了一系列的成員,包括字元串,清單或元組。

032 基本運算符
a = 10
b = 20
list = [1, 2, 3, 4, 5]
           

if (a in list): print("1 - 變量 a 在給定的清單中 list 中") else: print("1 - 變量 a 不在給定的清單中 list 中")

1 - 變量 a 不在給定的清單中 list 中
           
if (b not in list):
    print("2 - 變量 b 不在給定的清單中 list 中")
else:
    print("2 - 變量 b 在給定的清單中 list 中")
           
2 - 變量 b 不在給定的清單中 list 中
           
# 修改變量 a 的值
a = 2
if (a in list):
    print("3 - 變量 a 在給定的清單中 list 中")
else:
    print("3 - 變量 a 不在給定的清單中 list 中")
           
3 - 變量 a 在給定的清單中 list 中
           

python運算符的優先級相當于數學中的先算乘除再算加減,但是這很愚蠢,優先級高的你括号括起來就行了...

a = 20
b = 10
c = 15
d = 5
e = 0
           
(a + b) * c / d 運算結果為: 90.0
           
e = ((a + b) * c) / d     # (30 * 15 ) / 5
print("((a + b) * c) / d 運算結果為:",  e)
           
((a + b) * c) / d 運算結果為: 90.0
           
e = (a + b) * (c / d);    # (30) * (15/5)
print("(a + b) * (c / d) 運算結果為:",  e)
           
(a + b) * (c / d) 運算結果為: 90.0
           
e = a + (b * c) / d;      #  20 + (150/5)
print("a + (b * c) / d 運算結果為:",  e)
           
a + (b * c) / d 運算結果為: 50.0