Pythonからはじめる数学入門 - Chapter 1: Working with Numbers を読む

2021-12-17Python

はじめに

今年は残り約 2 週間。12 月は 加藤 公一: 機械学習のエッセンス (SB クリエイティブ, 2018) を読もうと思っていたけど、残念ながら日にちが足らなそうだ。

現実的かつ来年への足がかりになりそうな本ということで、 Amit Saha: Python からはじめる数学入門 の原著 Doing Math with Python を読むことにした。

高校数学を題材に Python の練習ができそうなので、年の瀬に軽い気持ちで取り組んでみる。

追記 (2021-12-30): 最後まで読破したので、全体のまとめ記事「Python からはじめる数学入門 (Doing Math with Python) のまとめ」を公開しました!

内容

  • 四則演算
    • /: 小数の割り算
    • //: 整数の割り算(切り捨て)
  • %: 剰余演算
  • **: 指数演算(小数も)
  • 変数
    • 数学的な意味の変数 (variable) との混同を避けるために、この本ではプログラミング的な意味での変数をラベル (label) と呼ぶよ!
  • 数値型
    • int, float
    • fractions.Fraction: 有理数
    • j: 虚数単位 → 複素数
  • ユーザ入出力
    • input() 関数
    • 文字列
    • int() 関数: 文字列のときは「整数」以外を与えると例外発生
    • 例外処理
  • Python の構文
    • 関数の定義と呼び出し
    • for 文と range() 関数
    • if
    • str.format() 関数: 文字列に数値を挿入・小数点以下の桁数の指定など
  • 実例
    • 整数の因数
    • 掛け算表
    • 単位の変換: インチとメートル、マイルと Km、摂氏と華氏
    • 2 次方程式の解

Jupyter ノートブック

ポイント

今回の範囲で特筆すべきは、int() 関数と str.format() メソッドあたりだと思う。

int() 関数

引数をint 型の整数に変換する int() 関数には、数値を渡すことも、文字列を渡すこともできるが、それぞれで 振る舞いが異なる

  • 数値の場合 → 整数小数点以下を 無視
    • 正の数値の場合: 切り捨て
    • 負の数値の場合: 切り上げ
  • 文字列の場合
    • より 厳格 に「整数」以外を与えると例外発生

数値の場合の例

int(3.0)3

int(3.8)3 # 切り捨て

int(-1.0)-1

int(-1.2)-1 # 切り上げ

文字列の場合の例

int("1")1

int("1.0")
→ ValueError

str.format()

文字列に含まれる {} は置換フィールドと呼ばれ、プレースホルダの役目を果たす。置換フィールドを含む文字列に対して str.format() メソッドを呼び出すと、引数で渡した値が挿入された文字列が返される。小数点以下の桁数の指定したり、様々な整形をすることもできる。

pi = 3.14159
"pi: {0}".format(pi)'pi: 3.14159'

# 小数第2位まで表示
"pi: {0:.2f}".format(pi)'pi: 3.14'

# 小数第3位まで表示
"pi: {0:.3f}".format(pi)'pi: 3.142' # 四捨五入される

なお Python 3.6 以降では、よりシンプルな フォーマット済み文字列リテラル、f-strings が利用可能になったらしい。

f"pi: {pi}"'pi: 3.14159'

他にも色々な書式指定が出来るようなので、今後掘り下げていきたい。

参考リンク Python の f 文字列(フォーマット済み文字列リテラル)の使い方 | note.nkmk.me

プログラミング・チャレンジ(章末問題)


Chapter 2 のまとめ「Python からはじめる数学入門 - Chapter 2: Visualizing Data with Graphs を読む)」を公開しました!matplotlib を利用したグラフの表示がテーマです。