hirhirの日記

Pythonとデータ分析と人口知能

Python3 入門:and と or の反対の挙動??

本日は

python3の and と or の面白い挙動を調査してみる

理由はロジックを書いていてちょっと ??な出来事があったからですが

こちらには記載されていた

では、早速 jupyterにて

In [1]:
 
1 and 2
 
 
Out[1]:
2

最初はこんな感じで1が返る想定が2が帰ってきたからちょっと調べてみました。

In [2]:
 
2 and 1
 
 
Out[2]:
1
In [3]:
 
0 and 1
 
 
Out[3]:
0

これで。。。何だと?とね

In [4]:
 
True and False
 
 
Out[4]:
False
In [5]:
 
False and True
 
 
Out[5]:
False

これでわかったことは

左辺が真なら右辺が返るってことですね

で次は or

In [7]:
 
1 or 2
 
 
Out[7]:
1

まさかの挙動、左辺が帰ってきた

In [8]:
 
0 or 1
 
 
Out[8]:
1

ああ、そうですかよもやの反対ですか

左辺が真なら左辺が返る

In [9]:
 
True or False
 
 
Out[9]:
True
In [10]:
 
False or True
 
 
Out[10]:
True
In [16]:
 
"A" or 'A'
 
 
Out[16]:
'A'

??お、おう??

In [17]:
 
'A' or "A"
 
 
Out[17]:
'A'

そうですか。。。。。これは正直まだ良くわからん

これの動きはand も同じだったので文字列間の比較に鍵があるんでしょう

今は目をつぶる。。。

 

In [13]:
 
0.0 or 1
 
 
Out[13]:
1

 

以上終了