ホームページ  >  記事  >  バックエンド開発  >  Python フルスタック ロード シリーズ: 代入と演算子

Python フルスタック ロード シリーズ: 代入と演算子

高洛峰
高洛峰オリジナル
2017-02-09 11:02:061297ブラウズ

次の記事に進む前に、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

比較演算子

Example代入演算子
操作記号 説明 インスタンス
== 等しい、2 つのオブジェクトが等しいかどうかを比較する a==b は False を返す
!= 等しくない、2 つのオブジェクトが等しくないかどうかを比較する Equal a!=b は True を返します
<> 等しくない、2 つのオブジェクトが等しくないかどうかを比較します a<>b は True を返します
> が大きい、比較しますx y より大きいかどうか、 a>b は False を返します
< が小さいか、ya>=b が False を返すかどうかを比較します
<= より小さいかDescription
=
c=a+bかどうかを比較し、a+bの結果をcに代入する

+=-=減算コピー演算子乗算コピー演算子と同等です= a は c = c と同等 /=%=power 代入演算子 = a は c = c と同等 // =論理演算子インスタンス "と"
追加のコピー演算子 c += a は c = c + a と同等です
c -= a は c = c - a*=
c a
除算コピー演算子 c /= a は c = c / a
modulo 代入演算子c %= a は c = c % a**=
c a
Division代入演算子c //= a は c = c と同等です // a
演算子説明
and
a と b は true を返します

ornot" non" メンバー オペレーター
" または "a または b は true を返します
no(a と b) は false を返します
OperatorDescription
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)

第一项个最后一项分别赋值给了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 の値は 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

比較演算子

Example代入演算子
操作記号 説明 インスタンス
== 等しい、2 つのオブジェクトが等しいかどうかを比較する a==b は False を返す
!= 等しくない、2 つのオブジェクトが等しくないかどうかを比較する Equal a!=b は True を返します
<> 等しくない、2 つのオブジェクトが等しくないかどうかを比較します a<>b は True を返します
> が大きい、比較しますx y より大きいかどうか、 a>b は False を返します
< が小さいか、ya>=b が False を返すかどうかを比較します
<= より小さいかDescription
=
c=a+bかどうかを比較し、a+bの結果をcに代入する

+=-=減算コピー演算子乗算コピー演算子と同等です= a は c = c と同等 /=%=power 代入演算子 = a は c = c と同等 // =論理演算子インスタンス "と"
追加のコピー演算子 c += a は c = c + a と同等です
c -= a は c = c - a*=
c a
除算コピー演算子 c /= a は c = c / a
modulo 代入演算子c %= a は c = c % a**=
c a
Division代入演算子c //= a は c = c と同等です // a
演算子説明
and
a と b は true を返します

ornot" non" メンバー オペレーター
" または "a または b は true を返します
no(a と b) は false を返します
OperatorDescription
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)

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

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。