Python 基礎入門教程login
Python 基礎入門教程
作者:php.cn  更新時間:2022-04-18 16:14:50

Python 運算符



什麼是運算子?

本章節主要說明Python的運算子。舉個簡單的例子 4 +5 = 9 。 在範例中,45 被稱為運算元,"+" 稱為運算子。

Python語言支援以下類型的運算子:

  • 算術運算子

  • 比較(關係)運算子

  • 賦值運算子

  • 邏輯運算子

  • 位元運算子

  • ##成員運算子

  • 身份運算子

  • #運算子優先權

接下來讓我們一個個來學習Python的運算子。


Python算術運算子

以下假設變數a為10,變數b為20:

運算子描述實例+#加上- 兩個物件相加a + b 輸出結果30 -減- 得到負數或是一個數減去另一個數a - b 輸出結果-10*乘- 兩個數字相乘或是傳回一個重複若干次的字串a * b 輸出結果200/除- x除以yb / a 輸出結果2##%#**//

以下實例示範了Python所有算術運算子的運算:

#!/usr/bin/python
# -*- coding: UTF-8 -*-

a = 21
b = 10
c = 0

c = a + b
print "1 - c 的值為:", c

c a - b
print "2 - c 的值為:", c 

c = a * b
print "3 - c 的值為:" a / b
print "4 - c 的值為:", c 

c = a % b
print "5 - c 的值為:", c
##print "5 - c 的值為:", c


















#取模- 傳回除法的餘數b % a 輸出結果0
冪- 傳回x的y次方 a**b 為10的20次方, 輸出結果100000000000000000000
取整除- 返回商的整數部分# #9//2 輸出結果4 , 9.0//2.0 輸出結果4.0
#' a 、b 、ca = 2c = a**b b = 5c = a//b print "7 - c 的值為:", c試試看»#以上實例輸出結果: 2 - c 的值為: 113 - c 的值為: 2104 - c 的值為: 6 - c 的值為: 8Python比較運算子#運算子描述實例==等於- 比較物件是否相等(a == b) 傳回False。 !=不等於- 比較兩個物件是否不相等(a != b) 傳回true.<>不等於-  比較兩個物件是否相等
b = 3print "6 - c 的值為:", ca =#10##10
#試試看»#以上實例輸出結果:", c
1 - c 的值為: 31
5 - c 的值為: 17 - c 的值為: 2
以下假設變數a為10,變數b為20:
###(a <> b) 回傳true。這個運算子類似 != 。 ############>######大於 - 傳回x是否大於y######(a > b) 傳回 False。 ############<######小於 - 回傳x是否小於y。所有比較運算子回傳1表示真,回傳0表示假。這分別與特殊的變數True和False等價。注意,這些變數名的大寫。 ######(a < b) 傳回 true。 ############>=######大於等於 - 回傳x是否大於等於y。 ######(a >= b) 傳回 False。 ############<=######小於等於 - 回傳x是否小於等於y。 ######(a <= b) 傳回 true。 ############

以下實例示範了Python所有比較運算子的運算:

#!/usr/bin/python
# -*- coding: UTF-8 -*-

a = 21
b = 10
c = 0

if ( a == b ):
   print "1 - a 等於# b"
   print "1 - a 等於# b"
   print "1 - a #   print "1 - a 不等於 b"

if ( a != b ):
   print "2 - a  b"
else print "2 - a b"

if ( a <> b ):
   print "3 - a 不等於 b"
else:
   ##if ( a < b ):
   print "4 - a 小於 b" 
else:
   print "4 ):
   print "5 - a 大於 b"
else:
   print "5 - a 小於等於 b"

# 修改變數;
b = 20;
if ( a <= b ):
   print "6 - a 小於等於 b"
else:## 
#if ( b >= a ):
   print "7 - b 大於等於 b"
else:
   print "7  b#1小於 b"
# 以上實例輸出結果:


1 - a 不等於 b
2 - a 不等於 b
3 - a 不等於 b
4 - a b
6 - a 小於等於 b
7 - b 大於等於 b

#


Python賦值運算子

以下假設變數a為10,變數b為20:

# #描述實例=簡單的賦值運算子c = a + b 將a + b 的運算結果賦值為c+=加法賦值運算子c += a 等效於c = c + a#-=減法賦值運算子c -= a 等效於c = c - a*=乘法賦值運算子c *= a 等效於c = c * a/=#除法賦值運算符c /= a 等效於c = c / a#%=取模賦值運算子冪賦值運算子
#運算子
##c % = a 等效於c = c % a**=
c **= a 等效於c = c ** a############//=#######取整除賦值運算子######c //= a 等效於c = c // a## ##########

以下實例示範了Python所有賦值運算子的運算:

#!/usr/bin/python
# -*- coding: UTF-8 -*-

a = 21
b = 10
c = 0

c = a + b
print "1 - c 的值為:", c

c + = a
print "2 - c 的值為:", c 

c *= a
print "3 - c 的值為:", c 

c /= c 的值為:", c 

c /= a
print "4 - c 的值為:", c 

#c = 2
c %= a
print "5 - c 的值為:", c









############################################################################的c **= a###print "6 - c 的值為:", c######c //= a###print "7 - c 的值為:", c###################################################################################################################################################的#上述實例輸出結果:#########1 - c 的值為: 31###2 - c 的值為: 52###3 - c 的值為: 1092###4 -3 - c 的值為: 1092###4 - c 的值為: 52###5 - c 的值為: 2###6 - c 的值為: 2097152###7 - c 的值為: 99864######

Python位元運算子

位元運算子是把數字看成二進位來進行計算的。 Python中的位元運演算法則如下:

下表中變數 a 為 60,b 為 13。

運算子描述#實例
&#位元與運算子:參與運算的兩個值,如果兩個對應位元都為1,則該位元的結果為1,否則為0(a & b) 輸出結果12 ,二進位解釋: 0000 1100
| 位元或運算子:只要對應的二個二進位有一個為1時,結果位元就為1。 (a | b) 輸出結果61 ,二進位解釋: 0011 1101
^ 位元異或運算子:當兩對應的二進位相異時,結果為1(a ^ b) 輸出結果49 ,二進位解釋: 0011 0001
~位元取反運算子:對資料的每個二進位位元取反,即把1變為0,把0變為1(~a ) 輸出結果-61 ,二進位解釋: 1100 0011, 在一個有符號二進制數的補碼形式。
<<左移動運算子:運算數的各二進位全部左移若干位,由"<<"右邊的數指定移動的位數,高位丟棄,低位補0。 a << 2 輸出結果240 ,二進位解釋: 1111 0000
>>右移動運算子:把" >>"左邊的運算數的各二進位全部右移若干位,">>"右邊的數指定移動的位數a >> 2 輸出結果15 ,二進制解釋: 0000 1111
#

以下實例示範了Python所有位元運算子的運算:

#!/usr/bin/python
# -*- coding: UTF-8 -*-

#a = 60            # 60 = 0011 1100 
b = 13     0

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

c = a | b;        # 61 = 0011 11 b;        # 49 = 0011 0001
print "3 - c 的值為:", c
 #print "4 - c 的值為: ", c

c = a << 2;       # 240 = 11111. ;       # 15 = 0000 1111
print "6 - c 的值為:", c


為上述實例輸出結果:

##11 12
2 - c 的值為: 61
3 - c 的值為: 49
4 - c 的數值為: -61
5 - c 的值為: 240##6 - c 的值為: 15

Python邏輯運算子
Python語言支援邏輯運算符,下列假設變數a 為10, b為20:




運算子
邏輯表達式

描述

實例

##and ornot

以上實例輸出結果:

#!/usr/bin/python
# -*- coding: UTF-8 -*-

#a = 10
b = 20

if ( a and b ):
   print "1 - 變數 a 與 b 都為 true"##else:
 一個不為 true"

if ( a or b ):
   print "2 - 變數 a 與 b 都為 true,或其中一個變數為 true"
else:print1 2 - 變數 a 與 b 都不為 true"

# 修改變數 a 的數值
a = 0
if ( a and b ): 皆為 true"
else:
   print "3 - 變數 a 與 b 與使用 true"

if ( a or b 皆為 true,或其中一個變數為 true"
else:
   print "4 - 變數 a 與 b 都不為 true"

if not( a and b ): true"

if not( a and b ): "5 - 變數 a 與 b 皆為 false,或其中一個變數為 false"
else:
   print "5 - 變數 a 且為上述實例輸出實例輸出實例為「以下」結果:


1 - 變數 a 與 b 都為 true
2 - 變數 a 與 b 皆為 true,或其中一個變數為 true##3 不為 true
4 - 變量 a 和 b 都為 true,或其中一個變量為 true

5 - 變量 a 和 b 都為 false,或其中一個變量為 false


Python成員運算符

除了以上的一些運算子之外,Python還支援成員運算符,測試實例中包含了一系列的成員,包括字串,列表或元組。

x and y布林"與" - 如果x 為False,x and y 傳回False,否則它傳回y 的計算值。 (a and b) 回傳 20。
x or y布林"或" - 如果x 是非0,它會傳回x 的值,否則它會傳回y 的計算值。 (a or b) 回傳 10。
not x布林"非" - 如果 x 為 True,則傳回 False 。如果 x 為 False,它會傳回 True。 not(a and b) 傳回 False
##in#如果在指定的序列中找到值傳回True,否則傳回False。 x 在 y 序列中 , 如果 x 在 y 序列中回傳 True。 not in如果在指定的序列中沒有找到值傳回 True,否則傳回 False。 x 不在 y 序列中 , 如果 x 不在 y 序列中傳回 True。
運算子描述#實例
以下實例示範了Python所有成員運算子的運算:

#!/usr/bin/python
# -* - coding: UTF-8 -*-
##a = 10
b = 20
list = [1, 2, 3, 4, 5 ];

if ( a in list ):
   print "1 - 變數 a 在給定的清單中 list 中"
else:
   print "1 - 變數 a #「已給定的清單中#if ( b not in list ):
   print "2 - 變數 b 在已設定的清單中 list 中"
else:
    "2 - 中"
else:
   

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


以上實例輸出結果:

1 - 變數 a 不在給定的清單中 list 中

2 - 變數 b 不在給定的清單中 list 中
3 - 變數 a 在給定的清單中 list 中


#Python身分運算子

身份運算子用於比較兩個物件的儲存單元

#運算子描述#實例isis是判斷兩個識別碼是否引用自一個物件x is y, 如果id(x)  等於id(y ) , 傳回結果1is notis not是判斷兩個識別符是不是引用自不同物件x is not y, 如果id(x) 不等於id(y). 傳回結果1

以下實例示範了Python所有身分運算子的運算:

#!/usr/bin/python
# -*- coding: UTF-8 -*-

#a = 20
b = 20

if ( a is b ):
   print "1 - a 與 b  1 - a 與 b 沒有相同的標誌"

if ( id(a) == id(b) ):
   print "2 - a 與 b 相同的識別識別"
##   print "2 - a 和 b 沒有相同的識別"

# 修改變數 b 的數值
b = 30
if ( a is bo): a 與 b 有相同的標誌"
else:
   print "3 - a 與 b 沒有相同的識別"

if ( a is not  ):

#if ( a is not  ):

#if 且 b 沒有相同的識別"
else:
   print "4 - a 和 b 有相同的識別"
#以上實例輸出結果:

1 - a 和 b 有相同的標誌
2 - a 和 b 有相同的標誌
3 - a 和 b 沒有相同的標誌
4 - a 和#b 沒有相同的標誌
#Python運算子優先權

以下表格列出了從最高到最低優先權的所有運算子:

is
is not
運算符號描述**索引(最高優先權)按位元翻轉, 一元加號與減號(最後兩個的方法名稱為+@ 和-@)乘,除,取模和取整除#加法減法右移,左移運算子##位'AND'^ |位元運算子<= < > >=比較運算子<> == !=等於運算子#= %= /= //= -= += *= ** =賦值運算子is is not身分運算子
##~~ + -
* / % //
+ -
>> < ;<
&
##in not in成員運算子
not or and#邏輯運算子

以下實例示範了Python所有運算子優先權的運算:

#!/usr/bin/python
# -*- coding: UTF-8 -*-

a = 20
b = 10
c = 15
# = 5
e = 0

#e = (a + 30 * 15 ) / 5
print "(a + b) * c / d 運算結果為:",  e

. ) / 5
print "((a + b) * c) / d 運算結果為:",  e

#e = (a + b) * (15/5)
print "(a + b) * (c / d) 運算結果為:",  e

e = a + (b /5)
print "a + (b * c) / d 運算結果為:",  e

以上實例輸出結果:

#(a + b ) * c / d 運算結果為: 90
((a + b) * c) / d 運算結果為: 90
(a + b) *已計算運算#a + (b * c) / d 運算結果為: 50