本記事では、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の変数に関する基本的な内容について、ひととおり紹介していきました。
命名規則、変数宣言、変数型確認、型変換方法は、
実際にコードを書く上で必要な知識になるので、練習しながら身に付けてきましょう。
スポンサーリンク