はじめに
今年は残り約 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 次方程式の解
ポイント
今回の範囲で特筆すべきは、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
プログラミング・チャレンジ(章末問題)
- #1: Even-Odd Vending Machine
- #2: Enhanced Multiplication Table Generator
- #3: Enhanced Unit Converter
- #4: Fraction Calculator
- #5: Give Exit Power to the User
Chapter 2 のまとめ「Python からはじめる数学入門 - Chapter 2: Visualizing Data with Graphs を読む)」を公開しました!matplotlib を利用したグラフの表示がテーマです。