プログラミング学習_オブジェクト・モジュール・ライブラリ
今日はオブジェクト・モジュール・ライブラリを学びます。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頁
- メソッド 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章までの練習問題おわりました。この先は、ゲームを作るという演習なので、この本はここで終わります。この本は練習問題の難易度が私にはちょうどよく、勉強になりました。