赋值语句的语法运算 | 解释 |
---|
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')<p>扩展的序列解包</p>
<p>一个列表赋给了带星号的名称,该列表收集了序列中没有赋值给其他名称的所有项。</p>
<p>先定义一个seq序列用于测试:</p>
<pre class="brush:php;toolbar:false">>>> 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 の値は 10、b の値は 20 です。
算術演算子
演算子 |
説明 |
例 |
+ |
Add、2つのオブジェクトを追加 |
a+b=30 |
- |
マイナス、2 つのオブジェクトを減算すると、結果は負の数になります |
a-b=-10 |
* |
、2 つの数値を乗算するか、数回繰り返された文字列を返します |
a*b=200 |
/ |
Division、2 つのオブジェクトを除算します | b/a=2 |
% |
膜を取り、割り算の余りを返します |
b%a=0 |
** |
べき乗、xのy乗を返します |
a** b=100000000000000000000L |
// |
割り切れる剰余、商の整数部分を返す |
a//b=0 |
比較演算子
操作記号 |
説明 |
インスタンス |
== |
等しい、2 つのオブジェクトが等しいかどうかを比較する |
a==b は False を返す |
!= |
等しくない、2 つのオブジェクトが等しくないかどうかを比較する Equal |
a!=b は True を返します |
<> |
等しくない、2 つのオブジェクトが等しくないかどうかを比較します |
a<>b は True を返します | > |
が大きい、比較しますx y より大きいかどうか、 |
a>b は False を返します |
< | が小さいか、y | a>=b が False を返すかどうかを比較します |
<= | より小さいか | Description | Example | | = | 代入演算子 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 | | %=modulo 代入演算子 | c %= a は c = c % a | **= | power 代入演算子 c | = a は c = c と同等 a | | // =Division代入演算子 | c //= a は c = c と同等です // a | | 論理演算子 | | 演算子説明 | インスタンス | | and | "と" a と b は true を返しますor" または " | a または b は true を返します | | not" non"no(a と b) は false を返します | | | メンバー オペレーター | Operator | Description | | in | 指定されたシーケンス内で値が見つかった場合は True を返し、それ以外の場合は False を返します | にない 値が見つからない場合は 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')<p>扩展的序列解包</p>
<p>一个列表赋给了带星号的名称,该列表收集了序列中没有赋值给其他名称的所有项。</p>
<p>先定义一个seq序列用于测试:</p>
<pre class="brush:php;toolbar:false">>>> 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中文网!
|
|