Skip to content

Python 変数#

変数#

  • = は右辺の値を左辺の変数に格納するという意味
  • 変数に最初に値を代入することを初期化するともいう

変数の命名規則#

  1. Unicode文字を利用できる(ただし、アンダースコア以外の記号、句読点、絵文字は不可)
  2. 1文字目は数字以外であること
  3. アルファベットの大文字・小文字は区別される
  4. 予約語ではないこと
  5. 文字の制限はない

Pythonの予約後一覧#

  • and
  • as
  • assert
  • async
  • await
  • break
  • class
  • continue
  • def
  • del
  • elif
  • else
  • except
  • False
  • finally
  • for
  • from
  • global
  • if
  • import
  • in
  • is
  • lmbda
  • None
  • nonlocal
  • not
  • or
  • pass
  • raise
  • return
  • True
  • try
  • while
  • with
  • yield
  • Info

    予約語はkeyword --- Python キーワードチェックで 確認する事ができます。

    理想的な命名#

    1. 長すぎない、短すぎない
    2. 名前から内容を推測できる
    3. ローマ字での命名は避ける
    4. 見た目に紛らわしくない(一文字違いや、大文字・小文字のものが混在)
    5. 記法を統一する
    6. パスカルケース(例: SampleVariable)
    7. キャメルケース(例: sampleVariable)
    8. スネークケース(例: sample_variable)
    9. ケバブケース(例: sample-variable)

    Tip

    以下は理想的な命名規則の分類です。基本的には小文字のスネークケースを使用し、変数は大文字に、 クラスはキャメルケースを使用すればよいでしょう。

    名前 命名規則
  • 変数
  • 関数
  • インスタンス変数
  • メソッド
  • パッケージ
  • モジュール
  • スネークケース variable_name
  • 定数
  • 大文字のスネークケース
  • CONSTANT_NAME
  • クラス
  • パスカルケース ClassName

    Warning

    名前の先頭のアンダースコア(_)にはクラス外からアクセスされることを意図されていない変数・メソッドという 意味があります。それ以外の場面では使用しない方が賢明です。

    特殊変数#

    名前 意味
    __name__ 現在のモジュール名
    __doc__ ドキュメンテーション文字列
    __file__ 実行ファイルのパス
    __builtins__ 組み込み型/ 関数

    変数の破棄#

    • del 文にて変数を破棄する
    • variable = 'Python'
      print(variable)
      
      del variable
      print(variable) # NameError: name 'name' is not defined
      

    定数#

    • 一般的に定数は大文字にて定義する
    • 定数は一度格納した値は後で入れ替えできないモノとして扱う(参照するだけ)
    • **Pythonでは変数・定数に区別はなく、どちらも `= で定義します
    • 大文字で定義することにより「書き換えるべきものではない値」であることを明示的に記述します
    price = 1000
    TAX_RATE = 0.08
    print(price * TAX_RATE) # 80.0
    

    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の <符号> <指数部>で小数値に変換できる。 一般敵には非常に大きな(小さな)数値を表すために使用。

    1.4142e10 → 1.4142 × 10^{10} → 14142000000.0 
    
    1.173205e{-7} → 1.173205 × 10^{-7} → 0.00000001173205
    

    複素数型(complex)#

    • 複素数(虚数)とは数学上の概念的な値で、<実部> + <虚部>jの形式で表す
    • j は虚数単位を表す
    • 虚数単位とは-1の平方根(言い換えると、自乗すると-1になる値)のこと
    • 数学では i を利用するのが一般的だが、Pythonでは j を利用する
    • 複素数は complex() 関数を使って実数値から生成することもできる
    • 逆に複素数から実部・虚部を取得したいなら、real / img 属性を利用する。
    c1 = 1 + 2j
    c2 = 3 + 4j
    print(c1 + c2)
    print(c1 * c2)
    

    文字列型(str)#

    文字列リテラルを表すには、文字列全体をシングルクォート(')または、ダブルクォート(")でくくる。

    リスト(list)#

    リストは複数の値を格納することができる入れ物のイメージ。言語によっては配列と呼ぶ。

    • index を指定して格納したデータにアクセスすることができる。
    • また、スライス構文で、シーケンスから範囲を指定してデータにアクセスすることができる。
    • リストの値を更新したい場合はindex を指定し、代入式を書く。
    • リスト内の要素数は len() 関数を使用する。

    • index 指定でアクセス

      last_name = ['佐藤', '鈴木', '田中']
      print(last_name[2]) 
      

    • スライス構文でアクセス

      last_name = ['佐藤','鈴木','田中','渡辺','山本']
      print(last_name[1:3])
      print(last_name[:2])
      print(last_name[2:])
      print(last_name[::2]) # step 指定(最初と最後のスライスは省略)
      print(last_name[:-1]) # - 指定で逆から
      

    • リストの値を更新

      last_name = ['佐藤','鈴木','田中','渡辺','山本']
      last_name[3] = "SMITH"
      

    入れ子のリスト#

    index を複数指定してデータにアクセスします。

    data = [
      ['ミカン', 'デコポン', 'ネーブル'],
      ['マスカット', 'ピオーネ', 'デラウェア'],
      ['王林', 'フジ', 'ジョナゴールド'],
    ]
    print(data[1][0])
    
    data2 = [
      [
        ['バナメイエビ', 'クルマエビ', 'ブラックタイガー'],
        ['ホタテ', 'サザエ', 'アワビ'],
        ['いくら', 'たらこ', 'キャビア']
      ],
      [
        ['タイ', 'スズキ', 'たら'],
        ['マグロ', 'カツオ', 'カジキ'],
        ['ヒラメ', 'カレイ', 'カワハギ']
      ],
      [
        ['アユ', 'イワナ', 'ヤマメ'],
        ['ボラ', 'ハゼ', 'ウナギ'],
        ['コイ', 'フナ', 'ナマズ']
      ]
    ]
    print(data2[1][0][2])
    

    リストのメソッド#

    • .append(値) : 末尾に要素を追加する
    • .insert(index,値) : 任意の位置に値を挿入する
    • .remove(値) : 指定した要素を削除する
    • .pop(index) : 指定した要素を削除し、その要素を取得する
    • .index(値) : リストの要素を検索する

    Info

    del 文でもリストの要素を削できます。
    del list[index]

    辞書#

    辞書は、キーと値を紐付けて複数の値を格納することができるデータ構造のこと。

    • 辞書は以下のように生成する

      greet_dict = {
          "Good morning":"オハヨウゴザイマス",
          "Hello":"コンニチハ",
          "Good evening":"コンバンハ",
          }
      

    • 空の辞書の生成は以下のとおりxz

      empty = {} # empty = dict() も同様
      print(empty)
      print(type(empty)) # <class 'dict'>
      

    • []を指定してキーに対応する値を取得

    fruit = {
        "apple":"リンゴ"
        "banana":"バナナ"
        "grape": "ブドウ"
    }
    
    print(fruit["apple"])
    
    • 辞書object[キー] = 値

    メソッド#

    • get() : 引数にキーを指定し、値を取得。存在しない場合はNoneを返す。
    • keys() : 辞書のキーを取得
    • values() : 辞書の値を取得
    • items() : キーと値両方を取得