程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

Python (5) - the use of operators

編輯:Python

攜手創作,共同成長!這是我參與「掘金日新計劃 · 8 月更文挑戰」的第5天,點擊查看活動詳情

1、算術運算符

Python 中常用運算符:

運算符說明實例結果+加22.4 + 1537.4-減4.56 - 0.564*乘5 * 315/除法(和數學中的規則一樣)8 / 24//整除(只保留商的整數部分)7 // 23%取模,即返回除法的余數7 % 21**次方運算,即返回 x 的 y 次方2 ** 416,即 2^4

+加法運算符

m = 10
n = 90
sum1 = m + n
print(sum1)
#當+用於字符串時,還可以拼接字符串
name = "方唐鏡"
url = "江蘇蘇州"
age = 18
info = name + "的住址是" + url + ",已經" + str(age) + "歲了."
print(info)
復制代碼

執行結果:

100
方唐鏡的住址是江蘇蘇州,已經18歲了.
復制代碼

-減法運算符

m = 100
n = 97
sum1 = m - n
print(sum1)
x = 45
y = -x
print(y)
復制代碼

執行結果:

3
-45
復制代碼

*乘法運算符

n = 4 * 25
m = 34.5 * 6
print(n, m)
#將n個字符串連接
str = "hello "
print(str * 4)
復制代碼

執行結果:

100 207.0
hello hello hello hello
復制代碼

/ 和 // 除法運算符

print("--------整數不能除盡-----------")
print("24/7 =", 24/7)
print("24//7 =", 24//7)
print("24.0//7 =", 24.0//7)
print("--------整數能除盡-----------")
print("25/5 =", 25/5)
print("25//5 =", 25//5)
print("25.0//5 =", 25.0//5)
print("--------小數除法-----------")
print("12.4/3.5 =", 12.4/3.5)
print("12.4//3.5 =", 12.4//3.5)
復制代碼

執行結果:

  • /的計算結果返回的總是小數,不管是否能除盡,也不管參與運算的是整數還是小數.
  • 當有小數參與運算時,//返回的結果才是小數,否則就是整數.
--------整數除不盡-----------
24/7 = 3.4285714285714284
24//7 = 3
24.0//7 = 3.0
--------整數能除盡-----------
25/5 = 5.0
25//5 = 5
25.0//5 = 5.0
--------小數除法-----------
12.4/3.5 = 3.542857142857143
12.4//3.5 = 3.0
復制代碼

%求余運算符

print("-----整數求余-----")
print("7%2 =", 7 % 2)
print("7%-2 =", 7 % -2)
print("-----小數求余-----")
print("7.7%2.2 =", 7.7 % 2.2)
print("-7.7%2.2 =", -7.7 % 2.2)
print("-7.7%-2.2 =", -7.7 % -2.2)
print("---整數和小數運算---")
print("23.4%5 =", 23.4 % 5)
print("23%4.5 =", 23 % 4.5)
print("23.4%-5 =", 23.4 % -5)
print("-23%4.5 =", -23 % 4.5)
print("-23%-4.5 =", -23 % -4.5)
復制代碼

執行結果:

  • 求余運算本質還是是除運算,所以第二個數字不能是 0,不然會報 ZeroDivisionError 錯誤.
  • 只有當第二個數字是負數時,求余的結果才是負數.
  • 求余運算兩邊的數字都是整數時,求余的結果也是整數;但是只要有一個數字是小數,求余的結果就是小數.
-----整數求余-----
7%2 = 1
7%-2 = -1
-----小數求余-----
7.7%2.2 = 1.0999999999999996
-7.7%2.2 = 1.1000000000000005
-7.7%-2.2 = -1.0999999999999996
---整數和小數運算---
23.4%5 = 3.3999999999999986
23%4.5 = 0.5
23.4%-5 = -1.6000000000000014
-23%4.5 = 4.0
-23%-4.5 = -0.5
復制代碼

**次方運算符

print('----次方運算----')
print('3**2 =', 3**2)
print('2**5 =', 2**5)
print('----開方運算----')
print('9**(1/2) =', 9**(1/2))
print('32**(1/5) =', 32**(1/5))
復制代碼

執行結果:

----次方運算----
3**2 = 9
2**5 = 32
----開方運算----
9**(1/2) = 3.0
32**(1/5) = 2.0
復制代碼

2、賦值運算符

擴展賦值運算符

運算符說 明用法舉例等價形式=最基本的賦值運算x = yx = y+=加賦值x += yx = x + y-=減賦值x -= yx = x - y*=乘賦值x *= yx = x * y/=除賦值x /= yx = x / y%=取余數賦值x %= yx = x % y**=冪賦值x **= yx = x ** y//=取整數賦值x //= yx = x // y&=按位與賦值x &= yx = x & y|=按位或賦值x |= yx = x | y^=按位異或賦值x ^= yx = x ^ y<<=左移賦值x <<= yx = x << y,這裡的 y 指的是左移的位數>>=右移賦值x >>= yx = x >> y,這裡的 y 指的是右移的位數
a = 15
b = 6
c = a + b
print("c 的值為:", c)
c += a
print("c 的值為:", c)
c *= a
print("c 的值為:", c)
c /= a
print("c 的值為:", c)
c %= a
print("c 的值為:", c)
c **= a
print("c 的值為:", c)
c //= a
print("c 的值為:", c)
復制代碼

執行結果:

c 的值為: 21
c 的值為: 36
c 的值為: 540
c 的值為: 36.0
c 的值為: 6.0
c 的值為: 470184984576.0
c 的值為: 31345665638.0
復制代碼

連續賦值運算

將賦值表達式的值再賦值給另外一個變量,這就構成了連續賦值,如:

 a = b = c = 10
復制代碼

c = 100 這個子表達式的值是 10,b = c = 10 表示將 c = 10 的值賦給 b,因此 b 的值也是 10.以此類推,a 的值也是 10.

所以a、b、c 三個變量的值都是 10.

3、比較運算符

比較運算符說明大於,如果>前面的值大於後面的值,則返回 True,否則返回 False.<小於,如果<前面的值小於後面的值,則返回 True,否則返回 False.==等於,如果==兩邊的值相等,則返回 True,否則返回 False.>=大於等於(等價於數學中的 ≥),如果>=前面的值大於或者等於後面的值,則返回 True,否則返回 False.<=小於等於(等價於數學中的 ≤),如果<=前面的值小於或者等於後面的值,則返回 True,否則返回 False.!=不等於(等價於數學中的 ≠),如果!=兩邊的值不相等,則返回 True,否則返回 False.

比較運算符的使用實例:

print("89是否大於100:", 8 > 100)
print("24*5是否大於等於76:", 24*5 >= 80)
print("45.6是否等於45.6:", 45.6 == 45.6)
print("45是否等於45.0:", 45 == 45.0)
print("False是否小於True:", False < True)
print("True是否等於True:", True == True)
復制代碼

執行結果:

89是否大於100: False
24*5是否大於等於76: True
45.6是否等於45.6: True
45是否等於45.0: True
False是否小於True: True
True是否等於True: True
復制代碼

4、邏輯運算符

運算符含義基本格式說明and邏輯與運算,等價於“且”a and b當 a 和 b 兩個表達式都為真時,a and b 的結果才為真,否則為假.or邏輯或運算,等價於“或”a or b當 a 和 b 兩個表達式都為假時,a or b 的結果才是假,否則為真.not邏輯非運算,等價於“非”not a如果 a 為真,那麼 not a 的結果為假;如果 a 為假,那麼 not a 的結果為真.相當於對 a 取反.

對於 and 邏輯與運算,兩邊的值都為真最終結果才為真,但是只要其中有一個值為假,那麼最終結果就是假:

  • 如果左邊表達式的值為假,那麼就不用計算右邊表達式的值了,因為不管右邊表達式的值是什麼,最終結果都是假,此時 and 會把左邊表達式的值作為最終結果.
  • 如果左邊表達式的值為真,那麼最終值是不能確定的,and 會繼續計算右邊表達式的值,並將右邊表達式的值作為最終結果

對於 or 邏輯或運算,兩邊的值都為假最終結果才為假,只要其中有一個值為真,那麼最終結果就是真:

  • 如果左邊表達式的值為真,那麼就不用計算右邊表達式的值了,因為不管右邊表達式的值是什麼,最終結果都是真,此時 or 會把左邊表達式的值作為最終結果.
  • 如果左邊表達式的值為假,那麼最終值是不能確定的,or 會繼續計算右邊表達式的值,並將右邊表達式的值作為最終結果.

5、位運算符

位運算符說明使用形式舉 例&按位與a & b4 & 5|按位或a | b4 | 5按位異或a ^ b4 ^ 5~按位取反~a~4<<按位左移a << b4 << 2,表示整數 4 按位左移 2 位>>按位右移a >> b4 >> 2,表示整數 4 按位右移 2 位

按位與&

按位與& 運算符規則:只有兩個都是1結果才為1,其余情況都為0

第一個Bit位第二個Bit位結果000010100111

實例:

print(12 & 5)
復制代碼

執行結果:

4
復制代碼

12 & 5二進制位進行&與運算過程如下:

 0000 1100
& 0000 0101
-------------
0000 0100
復制代碼

按位或 |

按位或 | 運算符規則:只有兩個都是0結果才為0,其余情況都為1

第一個Bit位第二個Bit位結果000011101111

實例:

print(12 | 5)
復制代碼

執行結果:

13
復制代碼

12 | 5二進制位進行|或運算過程如下:

 0000 1100
| 0000 0101
-------------
0000 1101
復制代碼

按位異或^

按位異或^ 運算符的規則:兩個值相同結果為0,不同結果為1

第一個Bit位第二個Bit位結果000011101110

實例:

print(12 ^ 5)
復制代碼

執行結果:

9
復制代碼

12 ^ 5二進制位進行^或運算過程如下:

 0000 1100
^ 0000 0101
-------------
0000 1001
復制代碼

6、運算符優先級和結合性

結合性:先執行左邊的叫左結合性,先執行右邊的叫右結合性

從上到下優先級逐漸減低:

運算符說明Python運算符結合性優先級順序小括號( )無高索引運算符x[i] 或 x[i1: i2 [:i3]]左︿屬性訪問x.attribute左|乘方**右|按位取反~右|符號運算符+(正號)、-(負號)右|乘除*、/、//、%左|加減+、-左|位移>>、<<左|按位與&右|按位異或左|按位或|左|比較運算符==、!=、>、>=、<、<=左|is 運算符is、is not左|in 運算符in、not in左|邏輯非not右|邏輯與and左|邏輯或or左|逗號運算符exp1, exp2左低
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved