牧千夏の話したいこと

読んだ本や考えたことを勝手に紹介しています。

プログラミング学習_オブジェクト・モジュール・ライブラリ

今日はオブジェクト・モジュール・ライブラリを学びます。230頁からです。

  • format関数 73頁

文字列のなかに値を埋め込む関数

書き方

“{}を含む文字列”.format(埋め込む値1,埋め込む値2,…)

breakfast="toast"

lunch="chocolate cakes"

supper="curry"

print("I ate {},and {},and {}.".format(breakfast,lunch,supper))

ただし、実際はあまりformat関数は使われず、以下のように書くことが多い

print(f"I ate {breakfast}, and {lunch}, and {supper}.")

  • オブジェクト object 232頁
    • データと、そのデータに関する処理を行う関数をひとまとまりにしたものをオブジェクトという
    • Python では「整数も文字列もリストも全部オブジェクト」であり、「それぞれが自分専用の関数(メソッド)を持っている」
    • Pythonでは、あらゆる値がオブジェクトとなる。
  • メソッド method 232頁
    • オブジェクトに所属する関数のこと。
    • オブジェクトがしたがえる関数は、データの「型」によって決まる
    • 呼び出すときのきまりは

オブジェクト.メソッド名(引数…)

  • type関数 66頁

変数のタイプを調べる関数

x=0.1

y="pampkin"

z=1

#print は「複数の引数を同時に受け取れる関数」だから一度に表示できるprint(type(x),type(y),type(z))

<class 'float'> <class 'str'> <class 'int'>

続いてモジュールです。262頁から。

 

  • open関数
    • 開いたファイルを表すファイルオブジェクトを戻り値として返す
    • 書き方は open(ファイル名,モード)
      • モードは、”r”が読み込み、”w”が書き込み、”a”が追記。r、w、aは、特定の「意味を持つ設定値(モードやエンコーディング名)」として使われている文字列なので””が必要。
    • writeメソッド
      • ファイルに書き込む
      • 書き方は ファイルオブジェクト.write(書き込む内容)
    • closeメソッド
      • ファイルを閉じる
      • 書き方は ファイルオブジェクト.close()

# Pathライブラリをインポートする

from pathlib import Path

# 入力を受け取る

text = input("What would you like to write? ")

# Pathオブジェクトとして保存先を指定。

# save_dir という変数に、Path 型のオブジェクトを作る。

# r は「バックスラッシュをエスケープ文字として解釈しない」指定。

save_dir = Path(r"ここはファイルパス")

# mkdir は直前のオブジェクト(ディレクトリ)にフォルダを作るメソッド。

# parents=True は、上の階層が存在しない場合もまとめて作る。

# exist_ok=True は、フォルダが既に存在していてもエラーにしない。

save_dir.mkdir(parents=True, exist_ok=True)

# 「/」はパス同士をつなげる特別な演算子

# save_dir がすでに Path 型のオブジェクトになっているので、この演算子が使える。

file_path = save_dir / "diary.txt"

# with open は、ファイルを開いて安全に閉じるための構文。

# 最初の引数はファイルパス。

# "a" は追記モード(既存の内容の末尾に書き足す)。

# encoding='utf-8' は日本語対応。

# as file は、open() で作られたファイルオブジェクトを file という変数名で使う、という意味。

with open(file_path, 'a', encoding='utf-8') as file:

    file.write(text + "\n")

 

print(f"It's done: {file_path}")

  • モジュール module
    • 変数や関数(またはそれらをまとめたクラス)を提供する。ある機能をひとまとめにした1つのファイルを指す。
    • モジュール=コードが書かれた1ファイル
    • モジュールを取り込む

import モジュール名

  • モジュール内の変数を参照

モジュール名.変数名

  • モジュールの関数を呼び出す

モジュール名.関数名(引数,…)

import math #mathモジュールの取り込み

print(f"Pi is {math.pi}.")#mathモジュールの変数piを参照

#mathモジュールのfloor関数を呼び出す、その引数が変数pi

print(f"小数点以下を切り捨てると{math.floor(math.pi)}です")

  • モジュールに別名(エイリアス)を付けて利用する
    • この別名を使うことで、コードを短くできる

import モジュール名 as 別名

import math as m #mathモジュールの取り込み、別名mをつけつ

print(f"Pi is {m.pi}.")#mathモジュールの変数piを参照

#mathモジュールのfloor関数を呼び出す、その引数が変数pi

print(f"小数点以下を切り捨てると{m.floor(m.pi)}です")

  • モジュールの特定の変数や関数のみを取り込む

fromモジュール名 import 関数(または変数)

  • ライブラリ library
    • 複数のモジュールがまとまったもの
    • 「ライブラリ=関連モジュールの集合(もしくは便利なパッケージ群)」。ひとつのモジュールでもライブラリの一部になれる

感想

とりあえず、8章までの練習問題おわりました。この先は、ゲームを作るという演習なので、この本はここで終わります。この本は練習問題の難易度が私にはちょうどよく、勉強になりました。