在繼續下面的文章之前我們先來瀏覽一下Python為我們提供的幾個運算符,定義兩個變量,分別是a和b,a的值是10,b的值是20。
運算子 | 描述 | 實例 |
---|---|---|
減,兩個物件相減,可能會得到負數 | a-b=-10 | |
乘,兩數相稱或是回傳一個重複若干次的字串 | a*b=2000 / | 除,兩個物件相除 |
% | 取膜,返回除法的餘數 | |
的y次方 | a**b=100000000000000000000L | |
整數 | 運算符 | |
實例 | ||
等於,比較兩個物件是否相等 | a==b不回傳False | 相等a!=b返回True |
ab回傳True | ||
---|---|---|
a>b返回False | ||
a | >= | >= | a b傳回False
小於等於,比較x是否小於等於y | a | |
值運算子算符 | ||
= | 賦值運算子 | c=a+b,將a+b的運算結果賦值給c |
c = c + a | -= |
等算符運算符效於c = c | a/= | |
---|---|---|
%=%=%k = a等效於c = c % a | ||
冪賦值運算子 | c | = a等效於c = ca |
/計算取值 | 符號c //= a等效於c = c // a | |
邏輯運算子 | 運算子 | |
or | "或" | |
not | "非" | |
成員運算子 | ||
描述 |
运算 | 解释 |
---|---|
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')
扩展的序列解包
一个列表赋给了带星号的名称,该列表收集了序列中没有赋值给其他名称的所有项。
先定义一个seq序列用于测试:
>>> seq = [1, 2, 3, 4]
a
匹配序列中的第一项,b
匹配剩下的内容
>>> a, *b = seq >>> a, b (1, [2, 3, 4])
b
匹配序列中的最后一项,a
匹配序列中最后一项之前的所有内容
>>> *a, b = seq >>> a,b ([1, 2, 3], 4)
第一项个最后一项分别赋值给了a
和c
,而b
获取了二者之间的所有内容。
>>> *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)
在繼續下面的文章之前我們先來瀏覽一下Python為我們提供的幾個運算符,定義兩個變量,分別是a和b,a的值是10,b的值是20。
運算子 | 描述 | 實例 |
---|---|---|
減,兩個物件相減,可能會得到負數 | a-b=-10 | |
乘,兩數相稱或是回傳一個重複若干次的字串 | a*b=2000 / | 除,兩個物件相除 |
% | 取膜,返回除法的餘數 | |
的y次方 | a**b=100000000000000000000L | |
整數 | 運算符 | |
實例 | ||
等於,比較兩個物件是否相等 | a==b不回傳False | 相等a!=b返回True |
ab回傳True | ||
---|---|---|
a>b返回False | ||
a | >= | >= | a b傳回False
小於等於,比較x是否小於等於y | a | |
值運算子算符 | ||
= | 賦值運算子 | c=a+b,將a+b的運算結果賦值給c |
c = c + a | -= |
等算符運算符效於c = c | a/= | |
---|---|---|
%=%=%k = a等效於c = c % a | ||
冪賦值運算子 | c | = a等效於c = ca |
/計算取值 | 符號c //= a等效於c = c // a | |
邏輯運算子 | 運算子 | |
or | "或" | |
not | "非" | |
成員運算子 | ||
描述 |
运算 | 解释 |
---|---|
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')
扩展的序列解包
一个列表赋给了带星号的名称,该列表收集了序列中没有赋值给其他名称的所有项。
先定义一个seq序列用于测试:
>>> seq = [1, 2, 3, 4]
a
匹配序列中的第一项,b
匹配剩下的内容
>>> a, *b = seq >>> a, b (1, [2, 3, 4])
b
匹配序列中的最后一项,a
匹配序列中最后一项之前的所有内容
>>> *a, b = seq >>> a,b ([1, 2, 3], 4)
第一项个最后一项分别赋值给了a
和c
,而b
获取了二者之间的所有内容。
>>> *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)
更多Python全栈之路系列之赋值与运算符 相关文章请关注PHP中文网!