Pythonで変数、リスト、タプル、辞書を作成する方法、データ型の調べ方/type関数の使い方、グローバルとローカル

gift-box IT

Pythonで変数を作成する方法についてです。基本、何も前置きせず変数に直接値を代入すればOKです。
Pythonの場合、変数に格納される値のことをオブジェクトと呼びます。int型のオブジェクト=int型の変数と同義ですが、オブジェクト全体には定数も含まれます。

スポンサーリンク

変数の作成

具体的に言うとこんな感じです。変数名の後に=を付けて、代入する値を指定します。
変数名は日本語でもつけられます(Python3以後)。
print関数で変数を出力してみます。
print(変数)と記入して実行すると、変数の中身である1が出力されました。

変数で計算

変数に1足した数を出力するには、変数 + 1のように記述します。
他の言語同様、+で足し算、-で引き算、*で掛け算、/で割り算となります。

変数のデータ型

よく使われる変数として、以下のようなものがあります。

int(整数)

変数にはそれぞれデータ型が設定されており、変数に代入した値によってデータ型が決まります。
先ほどから使っている変数 = 1のように、変数に"'で囲まない整数を直接指定すると、int型(整数)が設定されます。
データ型を調べるには、type関数の引数に変数を指定します。
print(type(変数))とすることで、変数のデータ型が出力されます。

str(文字列)

同じ変数を使いまわして、一度1を代入した後、"1"を代入して再度データ型を取得してみます。
"'で囲った値は、文字列型(str)の変数となります。
Pythonではこのように、変数に違う型の値を代入することが可能です。

float(浮動小数点数型)

小数点を使う場合、float型(浮動小数点数)となります。他の言語とちがい、Pythonでは倍精度浮動小数点数をfloatと呼びます(単精度はない)。

bool(ブール型)

TrueまたはFalseを代入した場合、変数はbool型(真偽値)となります。頭は大文字である必要があり、trueやfalseではエラーになります。
ブール型は真偽、つまりスイッチのON、OFFのみを判定できる変数です。

NoneType型

NoneType型の変数の値は常にNoneとなり、値が存在しないことを意味します。

リスト、配列

まず空のリストを作る方法ですが、list関数を使って変数 = list()のように指定するか、
または単純に[]で閉じるだけでも同じ意味になります。
値を[]で囲み、中の項目を,で区切って記述することで、リストに最初から値を代入した状態で作成することもできます。
[]でのみ可能で、list(“a”,”b”,”c”)は不可です。
配列内の値には0から順にインデクスが振られるので、変数[1]とすれば配列「変数」2番目の値を取り出すことができます。

タプル

#python
#どっちも空のタプルを作っている
タプル = tuple()
タプル2 = ()
タプルはリストと同じようなものですが、一度作ると変更できません。項目の追加、削除、変更、どれもできなくなります。定数に近いです。
タプルを作るにはtuple()と指定するか、[]の代わりに()を使用します。
タプルに項目をセットするには、作成時に()の中で値を指定します。
リスト同様、tuple()内で項目は指定できません。後で項目の追加もできないので、tuple()は空のタプル専用の命令となります。
値を読み取る時はリストと同じく[]でインデックスを指定できます。

辞書

#python
#どっちも空の辞書を作っている
辞書 = dict()
辞書2 = {}
辞書はふたつの値をセットで保存しておけるリストです。インデクスを任意の文字列に置き換えることができると考えるとわかりやすいかもしれません。辞書は後から内容を変更できます。
辞書を作るには、dict()と指定するか{}と指定します。
#python
辞書 = {1:"a",
      2:"b"}
値をセットして作成する場合、キーバリューをコロンでつなぎます。
print(辞書["a"])のようにして、辞書名[キー]を実行するとバリューが呼び出されます。
辞書名[バリュー]でキーを呼び出すことはできません。
#python
辞書 = {1:"a",
      2:"b"}
辞書[2] = "c"
辞書[3] = "d"
辞書の項目を変更したり、追加するには辞書名[キー]に新しいバリューを指定します。
ただし一度作ったキーは変更できません。
実行結果です。

変数名の命名規則

変数名には以下のようなルールがあります。

  • a~zまたはA~Zのアルファベット、0~9の数字、アンダースコア(_)、日本語のみ使用可能
  • ※慣習としては、Pythonでは通常の変数には小文字のアルファベットを使い(variableなど)、定数として扱う変数には大文字のアルファベットで名前をつける(VARIABLEなど)。かつ何を意味する変数なのかがわかる名前をつける。

  • 半角スペースも不可
  • 最初の文字は数字を使えない
  • Pythonの予約語は使えない
予約語はPythonが他で使うために押さえている言葉のことで、ifとかisとかnotとかorとかが該当します。
Pythonでは大文字と小文字を区別するので、IFであれば一応使用可能(おすすめはしません)。

グローバル変数とローカル変数

#python
#関数やクラスの外で定義=グローバル変数
x = 1

def abc(x):
    y = 1
    return x + y
print(abc(x))
ちょっとつっこんだ話になります。defで関数を定義し、その内側と外側でそれぞれ変数を作っています。
関数やクラスなどの外で作った変数はグローバル変数となり、どこからでもアクセス可能です。
#python
x = 1

def abc(x):
  #関数やクラスの中で定義=ローカル変数
    y = 1
    return x + y
print(abc(x))
これに対し、関数やクラスの中で作った変数はローカル変数となり、その関数やクラスの中からしかアクセスできなくなります。
たとえば自作関数の外から、関数内で定義した変数を呼び出そうとすると、「そんな変数は定義されてない」というエラーが出ます。
関数の外では関数内で定義した変数はないもの扱いになるので、
仮に同じ名前の変数を関数の外で再度定義した場合、全く同じ名前の別のグローバル変数を作っていることになります。

global

関数内からグローバル変数を変更したい場合ですが、普通に変数を変更すると新しくローカル変数を作ったものとして扱われるので、
ローカルから変更したいグローバル変数を、global 変数名という式で指定してから変数の値を変更します。
こんな感じでエラーが出る場合、
関数の引数にグローバル変数を使ってるからなので、これは修正が必要となります。
実行すると、関数内からグローバル変数を操作できていることが確認できます。
Python操作方法、関数・メソッドリファレンス
使用用途別にまとめたPythonリファレンスページです。 初期準備、基本概念 ダウンロード、インストール、起動 ShellとEditor、保存、実行 保存したPythonの起動 コメント、docstring、行またぎ コメント、...

コメント

モバイルバージョンを終了