3-2、Pythonのデータ型、数値と変数


Pythonのデータ型

 まず知っておきたいのは、Pythonではデータがオブジェクトとして扱われます。Pythonプログラム処理できるデータは、数値、テキスト、画像、音声、ビデオなど色々あります。
 データを扱うには、事前にデータの「型」を定義するのが基本です。Pythonには予め用意されたデータ型がいくつがあります。よく使うデータ型を以下に示します。

データ型 意味 データ例
int 整数 123, -456, 78e9
float 浮動小数数点 1.23, -4.56
str 文字列 'abc', "I'm a student."
list リスト [1, 2, "a", 4, "b"], [1, [1, "a"]]
tuple タプル (1, 'abc', True, 4.5)
dict 辞書 {'name':'Tanaka', 'age': 25}
bool ブール、真偽 True, False

数値

整数

 Pythonでは全ての整数(負の整数も)を処理できます。上限はありません。プログラム中の表現は数学の書き方と同じです。例:0, -1, 10, =100, +200 等。
 コンピュータ内部ではバイナリ(2進数)を使っていますが、プログラムでは16進数を使うのが便利です。16進数は0x+ 0~9,a~f で表します。例:0xff01 0xb13c

浮動小数点数

 浮動小数点数は小数です。コンピュータ内部での小数表現において、小数点の位置が固定ではないので、浮動小数点数と言われるそうです。例:1.23e512.3e4は同じです。浮動小数点数の表現は数学の書き方でも大丈夫です。例:12.3 1.23e5

ブール型

 ブール型はTrueかFalseの値のみを持ちます(先頭文字が大文字であることに注意してください)。

>>> True
True
>>> False
False
>>> 1 > 3
False
>>> 3 > 2
Ture

and or notによるプール演算もできます。
and は二つの値の論理積(かつ)を返します。

>>> True and True
True
>>> True and False
False
>>> False and False
False
>>> 1 < 3 and 3 > 2
True

orは二つの値の論理和(または)を返します。

>>> True or True
True
>>> True or False
True
>>> False or False
False
>>> 1 > 3 and 3 > 2
True

notは値の否定(でない)を返す。True False が反転します。

>>>not True
False
>>>not False
True
>>>not 1>3
True

ブール型はif文の条件式としてよく使われます。

if age >= 20:
    print('Adult')
else:
    print('Minor')

nullオブジェクト

nullとは「何もない」、「空」を指す言葉です。nullオブジェクトは「空っぽ」の状態を表すオブジェクトです。
PythonではNoneを使います。
注意:数値の0は意味を持っています、Noneは特別な「空」値なので、同じではありません。

変数

 変数の概念は数学と似ていて、値を代用する役割を果たします。値を記憶しておくことができます。プログラムでは数値だけではなく、すべてのデータ型の値を記憶できます。
 変数はプログラムの中で1つしか使用できないわけではなく、複数の変数を同時に使用することが出来ます。そこで、変数を区別するために変数にはそれぞれ変数名を付けます。

変数に名前を付ける時は次のルールに従います。
 1) 1文字目は英文字かアンダーバー(_)
 2) 2文字目以降は英数字かアンダーバー
 3) 予約語は使用できない
 4) 大文字と小文字は区別される
 ※予約語はPythonで定義されている変数名である。例:and del for is if 等。

# -*- coding: utf-8 -*-
age = 23             # 整数値23を変数ageとして記憶
StudentNum = 'T007'  # 文字列'T007'を変数StudentNumとして記憶
_Answer = True       # ブール値Trueを変数_Answerとして記憶

Pythonの=はデータを変数へ代入する意味です。同じ変数を繰り返してデータの代入ができる、しかも、違うデータ型の代入もできる。

# -*- coding: utf-8 -*-
Answer = 23          # 整数23を変数Answerとして記憶
print(Answer)
Answer = False       # ブール値Falseを変数Answerとして記憶(記憶変更)
print(Answer)

注意: Pythonの=は数学の=(イコール)と違います。

# -*- coding: utf-8 -*-
a = 10
a = a + 5  # ここは「a + 5」を計算した結果「15」を変数aとして記憶する

変数とパソコンの内部処理

 プログラムにa = 10を書いたときに、パソコンの中に下記二つの動作を行う。
 1. メモリ上に10という整数型オブジェクトを作る
 2. 変数名aを辞書キー、整数型オブジェクト10を辞書値とした辞書データを作り、変数辞書に登録する

変数a を 変数bに代入すると、変数aが記憶しているオブジェクトを変数bにも記憶します。変数aと変数bで同じひとつのオブジェクトを記憶します。

# -*- coding: utf-8 -*-
a = "Tanaka"  # 文字列"Tanaka"を作り、変数`a`として記憶する
b = a         # 変数`a`が記憶してる"Tanaka"を、変数`b`として記憶する
a = 10        # 整数`10`を作り、変数`a`に記憶しなおす。変数`b`の記憶は"Tanaka"のまま変わらない
print(a)
print(b)

結果は

となります。

 定数

 定数は、固定の値に固定の名前(定数)を与えたものである。ただし変数と異なり、一度代入するとその内容を変更することはできません。例えば数学でよく使ったπは定数となりますPI = 3.14159265359
しかし、Pythonでは定数を定義することができません。慣例的に全部大文字の変数名は定数として扱うルール(約束)が使われています。

まとめ

・Pythonは沢山のデータをオブジェクトとして扱う。
・変数はデータの「名前」として扱う。変数は変数辞書に登録される。
b = aは、変数aが記憶しているデータ(オブジェクト)を変数bにも記憶する。その後、aの記憶を別のデータに置き換えても、bの記憶は変わらない。
・Pythonの数値データに上限はありません。(C言語のint型のサイズは4バイトで、最大値は2147483647、最小値は-2147483648となります)。Pythonの浮動小数点数には上限がありますが、一定範囲を超えるとinf(無限大)になります。

前章 3-1、Pythonの基礎
次章 3-3、Pythonの文字列
目次 非IT業種のITメモ