Python 変数#
変数#
=は右辺の値を左辺の変数に格納するという意味- 変数に最初に値を代入することを初期化するともいう
 
変数の命名規則#
- Unicode文字を利用できる(ただし、アンダースコア以外の記号、句読点、絵文字は不可)
 - 1文字目は数字以外であること
 - アルファベットの大文字・小文字は区別される
 - 予約語ではないこと
 - 文字の制限はない
 
Pythonの予約後一覧#
Info
予約語はkeyword --- Python キーワードチェックで 確認する事ができます。
理想的な命名#
- 長すぎない、短すぎない
 - 名前から内容を推測できる
 - ローマ字での命名は避ける
 - 見た目に紛らわしくない(一文字違いや、大文字・小文字のものが混在)
 - 記法を統一する
 - パスカルケース(例: SampleVariable)
 - キャメルケース(例: sampleVariable)
 - スネークケース(例: sample_variable)
 - ケバブケース(例: sample-variable)
 
Tip
以下は理想的な命名規則の分類です。基本的には小文字のスネークケースを使用し、変数は大文字に、
クラスはキャメルケースを使用すればよいでしょう。
| 名前 | 命名規則 | 例 | 
|---|---|---|
| スネークケース | variable_name | |
| パスカルケース | ClassName | 
Warning
名前の先頭のアンダースコア(_)にはクラス外からアクセスされることを意図されていない変数・メソッドという 意味があります。それ以外の場面では使用しない方が賢明です。
特殊変数#
- 前後を__(アンダースコア2個)で挟んだ名前は特殊変数を表します。
 - Python - 3.3. 特殊メソッド名
 
| 名前 | 意味 | 
|---|---|
__name__ | 
            現在のモジュール名 | 
__doc__ | 
            ドキュメンテーション文字列 | 
__file__ | 
            実行ファイルのパス | 
__builtins__ | 
            組み込み型/ 関数 | 
変数の破棄#
- del 文にて変数を破棄する
 
定数#
- 一般的に定数は大文字にて定義する
 - 定数は一度格納した値は後で入れ替えできないモノとして扱う(参照するだけ)
 - **Pythonでは変数・定数に区別はなく、どちらも `= で定義します
 - 大文字で定義することにより「書き換えるべきものではない値」であることを明示的に記述します
 
enum を用いた定数#
定数をただ大文字で定義するだけではすぐに書き換えが容易なため、すぐに意図せず書き換えられる可能性があります。
擬似的な定数を実現するには標準ライブラリにあるenumモジュールが便利です。
from enum import Enum
class JapanTax(Enum):
    TAX_RATE = 0.08
print(JapanTax.TAX_RATE.value) # 0.08
# 書き換えようとしても error に
JapanTax.TAX_RATE = 0.1
JapanTax.TAX_RATE.value = 0.1
データ型#
- Python - データ型
 - データ型とはデータの種類のこと。文字列型、数値型、論理型など。
 - Python の主な組み込み型は以下のとおりです。
 
| 型 | 説明 | mutable | iterable | sequence | 
|---|---|---|---|---|
| int | 整数型 | × | × | × | 
| float | 浮動小数点型 | × | × | × | 
| complex | 複素数型 | × | × | × | 
| str | 文字列型 | × | ○ | ○ | 
| bytes | バイナリデータ | × | ○ | ○ | 
| bool | 論理型(True / False) | × | × | × | 
| NoneType | 値がない | × | × | × | 
| tupple | 順序を持つ不変のリスト | × | ○ | ○ | 
| list | 順序を持つリスト | ○ | ○ | ○ | 
| dict | キー ・ 値の辞書 | ○ | ○ | ○ | 
| set | 順序を持たず、一意な値の集合 | ○ | ○ | × | 
論理型(bool)#
論理型はTrue もしくは False いずれかの状態しか持たない。 Pythonでは論理値を必要とする状況で、以下の値を自動的にFalseとみなす。
- 空値(None)
 - 数値のゼロ(0、0.0、0jなど)
 - 空文字列、空のリストなど("、()、[]、{}、set()、range(0)など)
 
整数型(int)#
整数型のリテラルは以下のように10進数のほか、16進数、8進数、2進数も表現できる。
整数リテラル
+----- 10進数リテラル・・・-13, 108, 0
+----- 16進数リテラル・・・0xff, 0xA3C1
+----- 8進数リテラル ・・・0o666, 00124
+----- 2進数リテラル ・・・0b1101, 0b100
浮動小数点型(float)#
一般的な「1.41421356」のような小数点だけでなく、指数表現が存在する。
指数表現とは<仮数部> e <符号> <指数部>の形式で表されるリテラルのこと。
なお、<仮数部> ×10の <符号> <指数部>で小数値に変換できる。
一般敵には非常に大きな(小さな)数値を表すために使用。
複素数型(complex)#
- 複素数(虚数)とは数学上の概念的な値で、
<実部> + <虚部>jの形式で表す - j は虚数単位を表す
 - 虚数単位とは-1の平方根(言い換えると、自乗すると-1になる値)のこと
 - 数学では i を利用するのが一般的だが、Pythonでは j を利用する
 - 複素数は 
complex()関数を使って実数値から生成することもできる - 逆に複素数から実部・虚部を取得したいなら、
real/img属性を利用する。 
文字列型(str)#
文字列リテラルを表すには、文字列全体をシングルクォート(')または、ダブルクォート(")でくくる。
リスト(list)#
リストは複数の値を格納することができる入れ物のイメージ。言語によっては配列と呼ぶ。
- index を指定して格納したデータにアクセスすることができる。
 - また、スライス構文で、シーケンスから範囲を指定してデータにアクセスすることができる。
 - リストの値を更新したい場合はindex を指定し、代入式を書く。
 - 
リスト内の要素数は
len()関数を使用する。 - 
index 指定でアクセス
 - 
スライス構文でアクセス
 - 
リストの値を更新
 
入れ子のリスト#
index を複数指定してデータにアクセスします。
data = [
  ['ミカン', 'デコポン', 'ネーブル'],
  ['マスカット', 'ピオーネ', 'デラウェア'],
  ['王林', 'フジ', 'ジョナゴールド'],
]
print(data[1][0])
data2 = [
  [
    ['バナメイエビ', 'クルマエビ', 'ブラックタイガー'],
    ['ホタテ', 'サザエ', 'アワビ'],
    ['いくら', 'たらこ', 'キャビア']
  ],
  [
    ['タイ', 'スズキ', 'たら'],
    ['マグロ', 'カツオ', 'カジキ'],
    ['ヒラメ', 'カレイ', 'カワハギ']
  ],
  [
    ['アユ', 'イワナ', 'ヤマメ'],
    ['ボラ', 'ハゼ', 'ウナギ'],
    ['コイ', 'フナ', 'ナマズ']
  ]
]
print(data2[1][0][2])
リストのメソッド#
.append(値): 末尾に要素を追加する.insert(index,値): 任意の位置に値を挿入する.remove(値): 指定した要素を削除する.pop(index): 指定した要素を削除し、その要素を取得する.index(値): リストの要素を検索する
Info
del 文でもリストの要素を削できます。
del list[index]
辞書#
辞書は、キーと値を紐付けて複数の値を格納することができるデータ構造のこと。
- 
辞書は以下のように生成する
 - 
空の辞書の生成は以下のとおりxz
 - 
[]を指定してキーに対応する値を取得
 
- 辞書object[キー] = 値
 
メソッド#
get(): 引数にキーを指定し、値を取得。存在しない場合はNoneを返す。keys(): 辞書のキーを取得values(): 辞書の値を取得items(): キーと値両方を取得