1、Python運算符
Python語言支持以下類型的運算符:
- 算術運算符
- 比較(關系)勻速那副
- 賦值運算符
- 邏輯運算符
- 位運算符
- 成員運算符
- 身份運算符
- 運算符優(yōu)先級
-
Python算術運算符
以下假設變量: a=10,b=20:
運算符 | 描述 | 實例 |
---|---|---|
+ | 加 - 兩個對象相加 | a + b 輸出結果 30 |
- | 減 - 得到負數或是一個數減去另一個數 | a - b 輸出結果 -10 |
* | 乘 - 兩個數相乘或是返回一個被重復若干次的字符串 | a * b 輸出結果 200 |
/ | 除 - x除以y | b / a 輸出結果 2 |
% | 取模 - 返回除法的余數 | b % a 輸出結果 0 |
** | 冪 - 返回x的y次冪 | a**b 為10的20次方类浪, 輸出結果 100000000000000000000 |
// | 取整除 - 返回商的整數部分 | 9//2 輸出結果 4 , 9.0//2.0 輸出結果 4.0 |
注意:Python2.x 里琅捏,整數除整數服鹅,只能得出整數司澎。如果要得到小數部分物独,把其中一個數改成浮點數即可房揭。
-
Python比較運算符
以下假設變量a為10备闲,變量b為20:
運算符 | 描述 | 實例 |
---|---|---|
== | 等于 - 比較對象是否相等 | (a == b) 返回 False。 |
!= | 不等于 - 比較兩個對象是否不相等 | (a != b) 返回 true. |
<> | 不等于 - 比較兩個對象是否不相等 | (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賦值運算符
以下假設變量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位運算符
按位運算符是把數字看作二進制來進行計算的。Python中的按位運算法則如下:
下表中變量 a 為 60兆沙,b 為 13欧芽,二進制格式如下:
a = 0011 1100 60=2^5+z^4+2^3+2^2
b = 0000 1101
-----------------
a&b = 0000 1100
a|b = 0011 1101
a^b = 0011 0001
~a = 1100 0011
運算符 | 描述 | 實例 |
---|---|---|
= | 簡單的賦值運算符 | 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邏輯運算符
Python語言支持邏輯運算符,以下假設變量 a 為 10, b為 20:
運算符 | 邏輯表達式 | 描述 | 實例 |
---|---|---|---|
and | x and y | 布爾"與" - 如果 x 為 False葛圃,x and y 返回 False千扔,否則它返回 y 的計算值。 | (a and b) 返回 20库正。 |
or | x or y | 布爾"或" - 如果 x 是非 0曲楚,它返回 x 的值,否則它返回 y 的計算值诀诊。 | (a or b) 返回 10洞渤。 |
not | not x | 布爾"非" - 如果 x 為 True,返回 False 属瓣。如果 x 為 False载迄,它返回 True。 | not(a and b) 返回 False |
-
Python成員運算符
除了以上的一些運算符之外抡蛙,Python還支持成員運算符护昧,測試實例中包含了一系列的成員,包括字符串粗截,列表或元組惋耙。
運算符 | 描述 | 實例 |
---|---|---|
in | 如果在指定的序列中找到值返回 True,否則返回 False熊昌。 | x 在 y 序列中 , 如果 x 在 y 序列中返回 True绽榛。 |
not in | 如果在指定的序列中沒有找到值返回 True,否則返回 False婿屹。 | x 不在 y 序列中 , 如果 x 不在 y 序列中返回 True灭美。 |
-
Python身份運算符
身份運算符用于比較兩個對象的存儲單元
運算符 | 描述 | 實例 |
---|---|---|
is | is 是判斷兩個標識符是不是引用自一個對象 | x is y, 類似 id(x) == id(y) , 如果引用的是同一個對象則返回 True,否則返回 False |
is not | is not 是判斷兩個標識符是不是引用自不同對象 | x is not y 昂利, 類似 id(a) != id(b)届腐。如果引用的不是同一個對象則返回結果 True铁坎,否則返回 False。 |
is 與 == 區(qū)別 :
is 用于判斷兩個變量引用對象是否為同一個犁苏, == 用于判斷引用變量的值是否相等硬萍。
-
Python運算符優(yōu)先級
以下表格列出了從最高到最低優(yōu)先級的所有運算符:
運算符 | 描述 |
---|---|
** | 指數(最高優(yōu)先級) |
~ + - | 按位翻轉,一元加號減號(最后兩個的方法名為 +@ 和 -@) |
* / % // | 乘围详,除朴乖,取模和取整除 |
+ - | 加法減法 |
>> << | 右移,左移運算符 |
& | 位 'AND' |
^| | 位運算符 |
<= < > >= | 比較運算符 |
<> == != | 等于運算符 |
= %= /= //= -= += *= **= | 賦值運算符 |
is is not | 身份運算符 |
in not in | 成員運算符 |
not or and | 邏輯運算符 |
2短曾、Python條件語句
Python條件語句是通過一條或多條語句的執(zhí)行結果(True或者False)來決定執(zhí)行的代碼塊寒砖。
可以通過下圖來簡單了解條件語句的執(zhí)行過程:
Python程序語言指定任何非0和非空(null)值為true赐劣,0 或者 null為false嫉拐。
Python 編程中 if 語句用于控制程序的執(zhí)行,基本形式為:
if 判斷條件:
執(zhí)行語句……
else:
執(zhí)行語句……
其中"判斷條件"成立時(非零)魁兼,則執(zhí)行后面的語句婉徘,而執(zhí)行內容可以多行,以縮進來區(qū)分表示同一范圍咐汞。
else 為可選語句盖呼,當需要在條件不成立時執(zhí)行內容則可以執(zhí)行相關語句,具體例子如下:
#!/usr/bin/python
# -*- coding: UTF-8 -*-
# 例1:if 基本用法
flag = False
name = 'luren'
if name == 'python': # 判斷變量否為'python'
flag = True # 條件成立時設置標志為真
print 'welcome boss' # 并輸出歡迎信息
else:
print name # 條件不成立時輸出變量名稱
if 語句的判斷條件可以用>(大于)化撕、<(小于)几晤、==(等于)、>=(大于等于)植阴、<=(小于等于)來表示其關系蟹瘾。
當判斷條件為多個值時,可以使用以下形式:
if 判斷條件1:
執(zhí)行語句1……
elif 判斷條件2:
執(zhí)行語句2……
elif 判斷條件3:
執(zhí)行語句3……
else:
執(zhí)行語句4……
實例如下:
#!/usr/bin/python
# -*- coding: UTF-8 -*-
# 例2:elif用法
num = 5
if num == 3: # 判斷num的值
print 'boss'
elif num == 2:
print 'user'
elif num == 1:
print 'worker'
elif num < 0: # 值小于零時輸出
print 'error'
else:
print 'roadman' # 條件均不成立時輸出
由于 python 并不支持 switch 語句掠手,所以多個條件判斷憾朴,只能用 elif 來實現,如果判斷需要多個條件需同時判斷時喷鸽,可以使用 or (或)众雷,表示兩個條件有一個成立時判斷條件成功;使用 and (與)時做祝,表示只有兩個條件同時成立的情況下砾省,判斷條件才成功。
#!/usr/bin/python
# -*- coding: UTF-8 -*-
# 例3:if語句多個條件
num = 9
if num >= 0 and num <= 10: # 判斷值是否在0~10之間
print 'hello'
# 輸出結果: hello
num = 10
if num < 0 or num > 10: # 判斷值是否在小于0或大于10
print 'hello'
else:
print 'undefine'
# 輸出結果: undefine
num = 8
# 判斷值是否在0~5或者10~15之間
if (num >= 0 and num <= 5) or (num >= 10 and num <= 15):
print 'hello'
else:
print 'undefine'
# 輸出結果: undefine
當if有多個條件時可使用括號來區(qū)分判斷的先后順序混槐,括號中的判斷優(yōu)先執(zhí)行编兄,此外 and 和 or 的優(yōu)先級低于>(大于)、<(小于)等判斷符號纵隔,即大于和小于在沒有括號的情況下會比與或要優(yōu)先判斷翻诉。
3炮姨、簡單的語句組
你也可以在同一行的位置上使用if條件判斷語句,如下實例:
#!/usr/bin/python
# -*- coding: UTF-8 -*-
var = 100
if ( var == 100 ) : print "變量 var 的值為100"
print "Good bye!"
以上代碼執(zhí)行輸出結果如下:
變量 var 的值為100
Good bye!