Python全棧之路系列之賦值與運算符

在繼續下面的文章以前咱們先來瀏覽一下Python爲咱們提供的幾種運算符,定義兩個變量,分別是a和b,a的值是10,b的值是20。python

算術運算符

運算符 描述 實例
+ 加,兩個對象相加 a+b=30
- 減,兩個對象相減,可能會獲得負數 a-b=-10
* 乘,兩數相稱或是返回一個被重複若干次的字符串 a*b=200
/ 除,兩個對象相除 b/a=2
% 取膜,返回除法的餘數 b%a=0
** 冪,返回x的y次冪 a**b=100000000000000000000L
// 整除餘,返回商的整數部分 a//b=0

比較運算符

運算符 描述 實例
== 等於,比較兩個對象是否相等 a==b返回False
!= 不等於,比較兩個對象是否不相等 a!=b返回True
<> 不等於,比較兩個對象是否不相等 a<>b返回True
> 大於,比較x是否大於y, a>b返回False
< 小於,比較x是否小於y a<b返回True
>= 大於等於,比較x是否大於等於y a>=b返回False
<= 小於等於,比較x是否小於等於y a<=b返回True

賦值運算符

運算符 描述 實例
= 賦值運算符 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

邏輯運算符

運算符 描述 實例
and "與" a and b返回true
or "或" a or b返回true
not "非" no(a and b)返回false

成員運算符

運算符 描述
in 若是在指定的序列中找到值返回True,不然返回False
not in 若是在指定的序列中沒有找到值返回True,不然返回false

賦值語句的語法

運算 解釋
spam='Spam' 基本形式
spam, ham='yum', 'YUM' 元組賦值運算
[spam, han]=['yum', 'YUM'] 列表賦值運算
a,b,c,d='spam' 序列賦值運算,通用性
a, *b='spam' 擴展的序列解包
spam = ham = 'hello' 多目標賦值運算
spams += 42 加強賦值運算

實例

序列運算測試

>>> nudge = 1
>>> wink = 2
>>> A, B = nudge, wink
>>> A,B
(1, 2)
# 嵌套的方式
>>> ((a, b), c) = ('SP', 'AM')
>>> a, b, c
('S', 'P', 'AM')

擴展的序列解包spa

一個列表賦給了帶星號的名稱,該列表收集了序列中沒有賦值給其餘名稱的全部項。code

先定義一個seq序列用於測試:對象

>>> seq = [1, 2, 3, 4]

a匹配序列中的第一項,b匹配剩下的內容字符串

>>> a, *b = seq
>>> a, b
(1, [2, 3, 4])

b匹配序列中的最後一項,a匹配序列中最後一項以前的全部內容table

>>> *a, b = seq
>>> a,b
([1, 2, 3], 4)

第一項個最後一項分別賦值給了ac,而b獲取了兩者之間的全部內容。class

>>> *a, b, c = seq
>>> a,b,c
([1, 2], 3, 4)

帶星號的名稱可能只匹配單個的項,可是,總會向其複製一個列表,若是沒有剩下的內容能夠匹配那麼會返回一個空列表:變量

>>> a,b,c,*d = seq
>>> print(a,b,c,d)
1 2 3 [4]
>>> a,b,c,d,*e = seq
>>> print(a,b,c,d,e)
1 2 3 4 []

多目標賦值語句就是直接把全部提供的變量名都賦值給右側的對象擴展

>>> a = b = c = 'As'
>>> a,b,c
('As', 'As', 'As')
# 所引用的值也都是同一個
>>> id(a),id(b),id(c)
(4331109208, 4331109208, 4331109208)
相關文章
相關標籤/搜索