Pythonコアプログラミング基礎チュートリアルのPython演算子、演算子優先度、式の概要--20150717


Pythonコアプログラミング基礎チュートリアルのPython演算子、演算子優先度、式の概要
1.Python演算子と式:
(1)Pyhton演算子を認識1:演算子とは
Python演算では、1つ以上の数字または1つ以上の文字列を演算する必要がある場合があります.*,+
(2)Pyhton演算子を認識する2:演算子の使用方法
+:加算
-:減算
*:乗算
/:除算
**:べき乗
<:より小さい
>:より大きい
   != :等しくない
//:除算した整数部を求める
%:除算した剰余部分を求める
&:ビットと
|:ビット単位または
^:ビット別または
~:反対を取る
>>右へ移動
<<:左に移動
<=:以下
>=:以上
==:等号、1つの等号を賦値と呼ぶ
not:論理非
and:論理と
or:論理または
#インスタンス:
1)#"+":2つのオブジェクトを加算
#2つの数値を加算
a = 7+8
print a

#出力結果:
15
2)#2文字列加算
b = "GOOD"+" JOB!"
print b

#出力結果:
GOOD JOB!
3)#"-":1つの数字の反対の数を取るか、2つの数字の減算を実現する
a = -7
print a
b = -(-8)
print b

#出力結果:
-7
8
c = 19-1
print c

#出力結果:
18
4)#"*":2つの数を乗算または文字列の重複数
a = 4*7
print a
b = "hello"*7
print b

#出力結果:
28
hello
hello
hello
hello
hello
hello
hello
5)#"/":2つの数値を除算
a = 7/2
print a #         ,        
b = 7.0/2
c = 7/2.0 #               ,         
print b
print c

#出力結果:
3
3.5
3.5
6)#“**”:べき乗演算を求める
a = 2**3   #   2 3  ,  2*2*2
print a

#出力結果:
8
7)#"<":記号より小さく、bool値を返します.
a = 3<7
print a
b = 3<3
print b

#出力結果:
Ture
False
8)#">":シンボルより大きく、bool値を返します.
a = 3>7
print a
b = 3>1
print b

#出力結果:
False
Ture
9)#"!=":シンボルに等しくなく、bool値も返します.
a = 2!=3
print a
b = 2!=2
print b

#出力結果:
Ture
False
10)#"//":除算演算を行い、商の整数部分を返し、残数を切り捨てる
a=10//3
print a

#出力結果:
3
11)#"%":除算演算を行い、その商の余剰部分を返し、商を切り捨てる
a=10%3
print a

#出力結果:
1
b=10%1  #           ?
print b

#出力結果:
0
a=10//3  #a       
b=10%3   #b 
c=3*a+b  #c               ,  c       
print c

#出力結果:
10
12)#"&":ビットと演算、いわゆるビットとは1つの数字をバイナリに変換し、これらのバイナリの数をビットで演算し、同じ1を1とする
a=7&18  #    ,   7 18    2 ??
print a

#出力結果:
2
'''まず計算機を開き、7をバイナリに変換します.7のバイナリ値は:111、自動補完は8ビット、すなわち00000111です.
次に18をバイナリに変換し,18バイナリの値は10010であり,同様に8ビット,すなわち00010010に補完した.
そして、私たちは00000111
,00010010とビットごとに演算を行い,
得られた結果は:0000010、そして、00000010を10進数に変換します.
数字の2を得て、だから7と18は位の和の結果によって2進数の10で、つまり10進数の2です
'''
13)#"|":ビット単位または演算、同様に数値をバイナリに変換した後にビット単位または演算を行い、1が1
a=7|18
print a

#出力結果:
23
'''分析してみましょう.同じ7のバイナリ形式は00000111で、18のバイナリ形式は00010010です.
我々は100000111
00010010とビット単位または演算を行い、
得られた結果は00010111であり,その後,00010111を10進数に変換した.
数字23が得られるので、7と18はビットまたはビットの結果、バイナリの10111、すなわち10進数の23である.
'''
14)#"^"按位异或,异或指的是,不同则为1,同则为0
a=7^18
print a

#出力結果:
21
'''
まず、異或は、異なる場合は1、同じ場合は0を指す.
分析してみましょう.同じ7のバイナリ形式は00000111で、18のバイナリ形式は00010010です.
我々は100000111
+00010010とビットごとに異或演算を行い、
得られた結果は00010101であり,その後,00010101を10進数に変換した.
数字21が得られるので、7と18はビット別にORした結果、バイナリの10101、すなわち10進数の21である.
'''
15)#"~":ビット反転~x=-(x+1)
a=~18  # ~18=-(18+1)=-19
print a

#出力結果:
-19
16)#"<":左に移動
'''
例えば18左シフトは彼のバイナリ形式00100100を左シフトし、すなわちシフト後00100100、すなわち36となり、左シフト1単位は乗2に相当し、左シフト2単位
乗算4に相当し、左シフト3単位は乗算8に相当し、左シフトn単位は乗算2のn乗に相当する.
'''
a=18<<1
print a
b=3<<3
print b

#出力結果:
36
24
17)#"<":右に移動
'''
右シフトは左シフトの逆演算で、対応するバイナリ数を右に移動し、右シフトの1単位は2で割ることに相当し、右シフトの2単位は4で割ることに相当し、右シフトの3単位は
8で割ると、右にシフトしたn個の単位は、2で割るn乗に相当する.
'''
a=18>>1
print a
b=18>>2# 00010010  00000100,    4,   18//(2**2)
print b

#出力結果:
9
4
18)#"<=":シンボル以下、比較演算、以下または等しい、bool値を返します.
a=3<=3
b=4<=3
print a
print b

#出力結果:
Ture
False
19)#">=":以上または等しい、比較演算、bool値を返す
a=1>=3
print a
b=4>=3
print b

#出力結果:
False
Ture
20)#"=":2つのオブジェクトが等しいかどうかを比較し、bool値を返します.
a = 12==13
print a
b="hello"=="hello"
print b

#出力結果:
False
Ture
21)#not:論理非、bool値をnot演算
a=True
b = not a
print b
c=False
print not c

#出力結果:
False
Ture
22)#and:論理和,Bool値と演算,交差,同真
'''
True and True=True
True and FalseはFalseに等しい
False and TrueはFalseに等しい
'''
print True and True

#出力結果:
Ture
23)#or:論理または、Bool値または演算、相乗、真がある
'''
True and True=True
True and FalseはTrueに等しい
False and FalseはFalseに等しい
'''
print True or False

#出力結果:
Ture
2.Python演算優先度
(1)Python優先度とは:
Python演算のプログラムまたは演算子の実行には前後順があり、AとBが同時に現れる場合、AがBを優先できる場合、Aの優先度がBより高く、Bの優先度がAより低く、そのうち、A、Bは演算子であってもプログラムを使用してもよい.
分類:
プログラム間優先度
演算子間の優先度
#インスタンス:
1)#優先度の役割:
a = 2+7*8 #         
print a
b=9>7
print b

#出力結果:
58
Ture#摘要>優先度が等号より高い=
(2)Python優先度実戦使用
#優先度の例:
#優先順位ランキング1位――関数呼び出し、アドレス指定、下付き
#優先順位ランキング2位――べき乗演算**
a=4*2**3
print a

#出力結果:
32
#優先順位ランキング3位――反転演算~
#"~":ビット反転~x=-(x+1)
a=~18  # ~18=-(18+1)=-19
print a

#出力結果:
-19
#優先順位ランキング4位――プラスマイナスはプラスマイナスと区別
print 2+4*- 2   #     ,                ,     ,                     #              ,         

#出力結果:
-6
#優先順位ランキング5位——*、/、%
print 2+4*2/4

#出力結果:
4
#優先順位ランキング6位——+、-
print 3<<2+1
#出力結果:
24
#0000011が00011000、つまり24になる
#優先順位ランキング7位——<、>>
#優先順位ランキング8位――位&、^、|、実はこの3つにも優先順位がありますが、同じレベルなので細分化しません
#優先順位ランキング9位――比較演算子<,>,=.>=,<=,==,
a=2*3+5<=5+1*2
print a

#出力結果:
False#11<=7
#優先順位ランキング10位――論理のnot、and、or
#優先順位ランキング11位――lambda式、実行遅延
3.演算子優先度の基本法則と特徴
(1)Python一般演算子優先度使用規則
#優先度使用規則
#1、一般的には左結合で、左から右へ
print 4+6+5*6+6

#出力結果:
46
#2、賦値が現れる場合は右結合が一般的で、右から左へ
a=8+91
print a

#出力結果:
99
(2)Python優先度法則記憶心法
関数アドレス
べき乗演算小二ニコニコ
全体ユニットの3番目の#例えば反転演算~、正負号(操作数に続く)、1つの操作対象の演算子、単一、1つ;オペランド
乗除して余剰4千里を求める
乗除完了無(五)加減
六ワは左右に移動するのが好きだ.
七番目の人は席を押すか、ついて行くか.
八仙過海比実力(比較演算)
最後から1番目の論理または非
#lambda式は最初はあまり見かけませんでしたが、最も優先順位が低くなりやすいので、記憶を容易にするためにデフォルトで最後にします.
(3)Python優先度使用のコツ
#優先度使用テクニック
#どの優先度が高いか、どの優先度が低いか分からない場合は、()で優先度を変更すればよい
a=2+3*7
b=(2+3)*7
c=((2+3)+5)*7#           ,    
print a
print b
print c

出力結果:
23
35
70
4.Python式の概要
(1)Pythonの表現とは
Pythonは中になって、私達はその中の値、変数と演算子の共通の構成の全体を私達はそれを表現式と呼んで、例えば:“ok”、a=“hello、my girl”、a=5、などはすべて表現式です
#式とは
#1
「Hello」文字列式
#2
25+7#計算式
#3
a=67#式
a#変数
#4
a="hello"
(2)Python式の使用
特徴:
1)ワンウェイコマンド:(ワンウェイコマンドラインプログラミングモードに入る)
a)値式:値式の結果は依然として値である
>>> 8#Enter
8
b)     
>>>a="ok"
>>>a
>>>"ok"
c)     :     
>>>7+8
15
d)      
>>>"OK"
'ok'

2)複数行コマンド:
F 5運転結果なし
(3)式実行とprint実行結果の違い
Pythonの式の実行結果とprintには違いがあります.文字列の出力結果は異なり、式の出力には単一引用符があり、Printには引用符がありません.
>>>"QQ" #Enter
'QQ'
>>>print "QQ"
QQ
>>>a=7
>>>a
7
>>>print a
7