Python3 入門:Dive into Python ネイティブデータ型 ブール値
Python3を基礎からやり直す。
まずは基礎書籍であるDive into Pythonを復習
日本語オンライン版が存在しているし
英語の書籍と日本語の書籍(kindle)を発見した。
なにこの値段の差。。。。まぁWeb版があるから無理に買う事はないか。。。
英語版はもう趣味の世界だよねぇ
ではIPythonにて勉強開始
TrueかFalseだけなんだけどね。。。。
公式チュートリアルでは下記のような記述
-------------------------------------------------------------------------------------------
数値リテラルによって作成されたり、算術演算や組み込みの算術関数によって返されるオブジェクトです。数値オブジェクトは変更不能です; 一度値が生成されると、二度と変更されることはありません。Python の数値オブジェクトはいうまでもなく数学で言うところの数値と強く関係していますが、コンピュータ内で数値を表現する際に伴う制限を受けています。
Python は整数、浮動小数点数、複素数の間で区別を行っています:
- numbers.Integral
-
整数型は、整数(正の数および負の数)を表す数学的集合内における要素を表現する型です。
整数には 2 種類あります:
整数 (int)
整数は無限の定義域を持ち、利用可能な (仮想) メモリサイズの制限のみをうけます。整数はシフト演算やマスク演算のためにバイナリ表現をもつものと仮定されます。負の数は符号ビットが左に無限に延びているような錯覚を与える 2 の補数表現の変型で表されます。
- ブール値 (bool)
-
真偽値の False と True を表します。 False と True を表す 2 つのオブジェクトのみがブール値オブジェクトです。 ブール型は整数型の部分型であり、ほとんどの状況でそれぞれ 0 と 1 のように振る舞いますが、例外として文字列に変換されたときはそれぞれ "False" および "True" という文字列が返されます。
整数表現に関する規則は、負の整数を含むシフト演算やマスク演算において、最も有意義な解釈ができるように意図されています。
-------------------------------------------------------------------------------------------
うん、やってみよう
In [8]: a=0
In [9]: a<0
Out[9]: False
In [10]: a==0
Out[10]: True
In [11]: a>0
Out[11]: False
In [12]: a>=0
Out[12]: True
In [13]: a<=0
Out[13]: True
In [14]: a===0
File "<ipython-input-14-3d16ce4a5655>", line 1
a===0
^
SyntaxError: invalid syntax
おっとトリプルイコールは駄目,
次へ
In [15]: a=True
In [16]: a
Out[16]: True
In [17]: a=False
In [18]: a
Out[18]: False
In [19]: a=true
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
<ipython-input-19-0834b8a3a65c> in <module>()
----> 1 a=true
NameError: name 'true' is not defined
In [20]: a=false
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
<ipython-input-20-1b1e198e7764> in <module>()
----> 1 a=false
NameError: name 'false' is not defined
うん想定通り
では数値としての扱い検証
In [21]: a=True
In [22]: a+a
Out[22]: 2
In [23]: a-a
Out[23]: 0
In [24]: a*a
Out[24]: 1
In [25]: a/a
Out[25]: 1.0
わかるけど、、、ちょっと気持ち悪いな。。。。
まぁ次
In [26]: a=True
In [27]: b=False
In [28]: a+b
Out[28]: 1
In [29]: a-b
Out[29]: 1
In [30]: a*b
Out[30]: 0
In [31]: a/b
---------------------------------------------------------------------------
ZeroDivisionError Traceback (most recent call last)
<ipython-input-31-7a64888ccf6e> in <module>()
----> 1 a/b
ZeroDivisionError: division by zero
こんな所だよね。
あ、ちなみに公式はここです。