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

高洛峰
發布: 2017-02-09 11:02:06
原創
1353 人瀏覽過

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

算術運算子

-減,兩個物件相減,可能會得到負數a-b=-10*乘,兩數相稱或是回傳一個重複若干次的字串a*b=2000 /除,兩個物件相除b/a=2%取膜,返回除法的餘數b%a=0的y次方a**b=100000000000000000000L//整數描述==相等a!=b返回True
運算子 描述 實例
運算符
實例
等於,比較兩個物件是否相等 a==b不回傳False

不等於,比較兩個物件是否不相等ab回傳True>a>b返回False小於,比較x是否小於ya>=aa b傳回False小於等於,比較x是否小於等於ya=賦值運算子c=a+b,將a+b的運算結果賦值給c c = c + a-=減法複製運算子
ab回傳True
>=
值運算子算符

c -= a等效於c = c - a

*= a/=除法複製運算子c /= a等效於c = c / a**== a等效於c = c 符號c //= a等效於c = c // aa and b返回trueor"或"a or b返回truenot"非"no(a and b)返回false運算子描述in
等算符運算符效於c = c
%=%=%k = a等效於c = c % a
冪賦值運算子 c a
/計算取值
邏輯運算子 運算子
成員運算子

如果在指定的序列中找到值返回True找到值回傳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')
登入後複製
登入後複製

扩展的序列解包

一个列表赋给了带星号的名称,该列表收集了序列中没有赋值给其他名称的所有项。

先定义一个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)
登入後複製
登入後複製

第一项个最后一项分别赋值给了ac,而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 /除,兩個物件相除b/a=2%取膜,返回除法的餘數b%a=0的y次方a**b=100000000000000000000L//整數描述==相等a!=b返回True
運算子 描述 實例
運算符
實例
等於,比較兩個物件是否相等 a==b不回傳False

不等於,比較兩個物件是否不相等ab回傳True>a>b返回False小於,比較x是否小於ya>=aa b傳回False小於等於,比較x是否小於等於ya=賦值運算子c=a+b,將a+b的運算結果賦值給c c = c + a-=減法複製運算子
ab回傳True
>=
值運算子算符

c -= a等效於c = c - a

*= a/=除法複製運算子c /= a等效於c = c / a**== a等效於c = c 符號c //= a等效於c = c // aa and b返回trueor"或"a or b返回truenot"非"no(a and b)返回false運算子描述in
等算符運算符效於c = c
%=%=%k = a等效於c = c % a
冪賦值運算子 c a
/計算取值
邏輯運算子 運算子
成員運算子

如果在指定的序列中找到值返回True找到值回傳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')
登入後複製
登入後複製

扩展的序列解包

一个列表赋给了带星号的名称,该列表收集了序列中没有赋值给其他名称的所有项。

先定义一个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)
登入後複製
登入後複製

第一项个最后一项分别赋值给了ac,而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中文网!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板