hirhirの日記

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

Python3 入門:Dive into Python ネイティブデータ型 ブール値

Python3を基礎からやり直す。

まずは基礎書籍であるDive into Pythonを復習

日本語オンライン版が存在しているし

Dive Into Python 3 日本語版

英語の書籍と日本語の書籍(kindle)を発見した。

 なにこの値段の差。。。。まぁWeb版があるから無理に買う事はないか。。。

英語版はもう趣味の世界だよねぇ

ではIPythonにて勉強開始

 

ネイティブデータ型 ブール値

TrueかFalseだけなんだけどね。。。。

公式チュートリアルでは下記のような記述

-------------------------------------------------------------------------------------------

numbers.Number

数値リテラルによって作成されたり、算術演算や組み込みの算術関数によって返されるオブジェクトです。数値オブジェクトは変更不能です; 一度値が生成されると、二度と変更されることはありません。Python の数値オブジェクトはいうまでもなく数学で言うところの数値と強く関係していますが、コンピュータ内で数値を表現する際に伴う制限を受けています。

Python は整数、浮動小数点数複素数の間で区別を行っています:

numbers.Integral

整数型は、整数(正の数および負の数)を表す数学的集合内における要素を表現する型です。

整数には 2 種類あります:

整数 (int)

整数は無限の定義域を持ち、利用可能な (仮想) メモリサイズの制限のみをうけます。整数はシフト演算やマスク演算のためにバイナリ表現をもつものと仮定されます。負の数は符号ビットが左に無限に延びているような錯覚を与える 2 の補数表現の変型で表されます。

ブール値 (bool)

真偽値の False と True を表します。 FalseTrue を表す 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

 

こんな所だよね。

 あ、ちなみに公式はここです。

概要 — Python 3.4.2 ドキュメント