文法・環境

【python】変数の基本まとめ。命名規則、変数宣言、変数型確認、型変換方法など。

本記事では、pythonの変数に関わる規則や、手法を網羅的に紹介します。

変数の命名規則などを正しく理解していると、コード全体の可読性の向上にもつながります。

見やすいコードを書くために、変数の基礎はしっかりおさえておきましょう。

本記事では、下記の内容を紹介しています。

この記事で分かること

  • 変数の命名規則
  • 変数命名の禁止事項
  • 変数宣言、変数定義の規則
  • 変数型の種類
  • 変数型の確認方法
  • 変数型の型変換方法
  • 【補足】変数以外の命名規則

スポンサーリンク

pythonの変数の命名規則

はじめに、pythonの変数の命名規則について紹介します。

変数の命名規則の基本

Pythonの変数の名前には、下記の3種類の文字を使うことができます

変数に使用する文字

  • アルファベット(小文字推奨だが、大文字も使用できる)
  • 0~9の数字
  • '_' :アンダースコア

変数名の例は、下記のとおりです。

test = 100
test1 = 100
test_1 = 100

シンプルですが、変数命名の原則はこれだけです。

この原則に従いつつ、禁止事項を避けたり、可読性を向上できるよう変数名を工夫することになります。

変数命名の禁止事項

変数の命名には禁止事項があります

構文エラーになるので、必ず守るようにしましょう。

3つの禁止事項について、順に紹介します。

1: 変数の "先頭" に "数字" は使用できない

変数の一文字目に、0~9の数字は使用できません。

1a = 100
# 構文エラーになります

2: 予約語は使用できない

ifや、forなど、pythonの予約語となっている文字列は、変数名に指定できません。

if = 1
# 構文エラーになります

変数名に使用できない、予約語の例です。

if

True

import

as

return

not

など

3: "&" などの記号は使用できない

a&b = 1
#演算子を変数名に割り当てられない旨のエラーになります

変数名に使用できない、記号の例です。

~使えない記号の例~

@ : アットマーク

. : ドット

+ : プラス

-  : マイナス

*  : アスタリスク

% : パーセント

/ : スラッシュ

など

不具合の原因になるので、基本的には記号は避けることをオススメします。

なお、可読性の向上につながる、変数以外の命名規則については、

本記事の最後に補足として紹介しています。

スポンサーリンク

Pythonの変数宣言、変数定義

C言語などの他のプログラミング言語は、変数を使用する際に、「変数宣言・変数の型宣言」が必要です。

しかしPythonは、この「変数宣言・変数の型宣言」が必要ありません

Pythonは、変数の型を自動判定してくれるため、

変数名と値をイコールで結ぶだけで、変数を使用することができます

C言語とPythonの変数宣言の比較

■C言語

int a

a = 1

■python

a = 1

数値型の比較ですが、pythonの方が簡単ですよね。

ただ、pythonの動的な変数宣言は、簡単な分、バグの原因にもなってしまうので注意が必要です。

Pythonの動的な変数宣言の注意点

Pythonの動的な変数宣言に伴う、バグの一例を紹介します。

数値型に、文字列が上書きできてしまう例

# variable_test.py

num = 100
fruit = 'Apple'

# 整数型の変数に、文字列型の変数を代入できてしまう。
num = fruit

sum = num + 1
# >> TypeError: can only concatenate str (not "int") to str

numは、はじめは整数型でしたが、文字列型を誤って代入してしまい、途中から文字列型になっています。

そのため、足し算を行ったところ、"文字列同士しか連結できない"旨のエラーが出てしまっています。

上記のバグは簡単な例ですが、Pythonの動的な変数宣言は知らず知らずのうちにバグの原因になります。

便利な特性ですが、コードを書く際は気をつけてみてください。

pythonの変数型(データ型)の種類

Pythonの主な変数型(データ型)は以下の表のとおりです。

種類データ型説明
数値型整数int小数点なしの数値型num = 100
浮動小数点float小数点ありの数値型num = 1.14
複素数complex虚数単位を j を用いて表すa = 1 + 2j
シーケンス型文字列strシングルクォート「'」もしくは、
ダブルクォート「”」で囲う
fruit = 'Apple'
タプルtuple・( )で定義。
・各要素をカンマ「 , 」で区切る
・要素は変更できない
(1, 2, 3)
リストlist・[ ]で定義。
・各要素をカンマ「 , 」で区切る
・要素は変更可能
[1, 2, 3]
集合型集合set・{ }で定義
・重複する要素は無視される
・要素に順番がない
set1 = {1, 2, 3, 3, 1, 2}
print(set1)
# {1, 2, 3}
マッピング型辞書dict・{ }で定義
・keyとvalueの組み合わせ
price = {"apple":100,
"banana":200,
"orange" : 100}
その他真偽bool・True、False
・1, 0と等価
is_ok = True

数値型はそのままですので、シーケンス型について補足します。

シーケンス型は、複数の要素を順番に並べたものを格納した型です。

リストや、タプルは要素が入っているのが分かりやすいですが、

文字列型も複数の文字が順番に入っているので、シーケンス型の仲間になります。

### 文字列型に含まれる要素を確認する例
fluit = 'Apple'
for char in fluit :
    print(char)
 
#出力結果
#A
#p
#p
#l
#e

fluitから、文字列 "Apple" の要素を1つずつ取り出して表示しています。

こう見ると、文字列型もシーケンス型の仲間ということが理解しやすいかと思います。

pythonの変数型(データ型)の確認方法

変数型(データ型)は、type関数で確認できます

### 変数型の確認例
num = 100
fruit = 'Apple'
is_ok = True

print(type(num))
print(type(fruit))
print(type(is_ok))

##出力結果
# <class 'int'>
# <class 'str'>
# <class 'bool'>


### カンマ「 , 」を入れることで、変数と変数型を同時に確認できます。
print(num, type(num))
print(fruit, type(fruit))
print(is_ok, type(is_ok))

#出力結果
# 100 <class 'int'>
# Apple <class 'str'>
# True <class 'bool'>

スポンサーリンク

pythonの変数型(データ型)の型変換

データ型は変換することもできます

このデータ型変換のことを、型キャストとも呼びます。

代表的な型変換は下記です。

整数型への型変換:int()

浮動小数点型への型変換:float()

文字列型への型変換:str()

### 変数型の型変換の例
num = "1"
print(type(num))

#出力結果
#<class 'str'>

num = int(num)
print(type(num))

#出力結果
#<class 'int'>

文字列型として代入された変数が、

型変換で数値型に変換されていることが確認できたと思います。

【Appendix】Python 命名規則

補足になりますが、変数以外の命名規則についても紹介しておきます。

コードスタイルガイドに準拠した命名を行うことで、可読性を向上させることができます。

対象ルール
パッケージ・全小文字
・なるべく短く
・アンダースコア非推奨
tqdm, requests
モジュール・全小文字
・なるべく短く
・アンダースコア可
sys, os
クラス・最初大文字
・大文字区切り
MyFavoriteClass
例外・最初大文字
・大文字区切り
MyFuckingError
型変数・最初大文字
・大文字区切り
MyFavoriteType
メソッド・全小文字
・アンダースコア区切り
my_favorite_method
関数・全小文字
・アンダースコア区切り
my_favorite_funcion
変数・全小文字
・アンダースコア区切り
my_favorite_instance
定数・全大文字
・アンダースコア区切り
MY_FAVORITE_CONST

こちらのページを参考にさせて頂きました。

スポンサーリンク

まとめ

Pythonの変数に関する基本的な内容について、ひととおり紹介していきました。

命名規則、変数宣言、変数型確認、型変換方法は、

実際にコードを書く上で必要な知識になるので、練習しながら身に付けてきましょう。

スポンサーリンク

-文法・環境
-