ノンプログラマーのための「建築で理解するPython入門」の基礎編8回目です。今回はPyCharmを使いながら建築設計でよく出てくる計算をPythonにやらせてみようと思います。
建築設計で出てくる計算をPythonにしてもらう
今回は次の計算をPythonでどのようにコードを書くのか説明します。一般的な演算子の書き方を理解できます。
- 床面積の計算
- 坪単価の計算
Pythonの計算に関するコードをさらっと紹介
一般的に算数や数学で使用してきた記号と異なるものもあるので、一度さらっとまとめて紹介します。
Pythonの四則演算に関するコード一覧
乗算と除算は一般的な書き方と異なる点に注意ですね。
演算の名称 | 一般的な記号 | Python演算子 | Python演算子使用例 |
加算 | 2 + 1 | + | 2 + 1 |
減算 | 2 – 1 | – | 2 – 1 |
乗算 | 2 × 2 | * | 2 * 2 |
除算 | 2 ÷ 2 | / | 2 / 2 |
その他の演算子に関するコード一覧
一般的な記述方法とPythonでの記述方法が全て異なります。
演算の名称 | 一般的な記号 | Python演算子 | Python演算子使用例 |
べき乗 | 2n | ** | 2 ** n |
剰余算(余り) | a ÷ b = c ⋯ d | % | a % b |
切り捨て除算 | a ÷ b = c | // | a // b |
それでは解説に移ります。
建築のコストに関する計算をPythonでやってみる
突然ですが、ある建築家が住宅を設計しています。
住宅を設計しています。少しずつ案が固まってきました。
設計が詰まってくるとやはり大事なのがコストですね。住宅の坪単価をPythonで計算してみましょう。次の図面を使います。
- 木造平屋
- 施主には予算があってコストを気にしている
- コストが合わなくて計画がだめにならないように概算必要!
床面積の計算
それではまず、床面積を求めてみましょう。図面を見て建物の外壁の壁芯間距離は以下のとおりです。PyCharmを起動してArea.pyというファイルを作成しています。
- X方向の壁芯間距離:Lx1 = 10.92m
- Y方向の壁芯間距離:Ly1 = 6.37m
今回も変数にデータを代入していきます。
# 寸法をそれぞれ変数に代入する
Lx1 = 10.92
Ly1 = 6.37
# 面積を求めで変数areaに代入する, 掛け算は「*」を使う!
area = Lx1 * Ly1
# 面積を示す変数areaを表示する
print(area)
よし、面積は「69.56m2(小数点3位以下切り捨て)」だね。
概算金額は…..「1,100万円」か。
float型の注意点を確認!
今回面積の計算では小数点のデータを使用しました。データ型その1でサラッと紹介しましたが、ここで使われている小数点のデータのデータ型はfloat型です。
float型は「小さい値から大きい値」まで表すことができますが、ある注意点があります。次のコードを実行しましょう。
# 小数を表すfloat型はすごく小さい値で計算の誤差が生まれる
print(0.1 * 0.1)
ものすごく小さい値で誤差が出ていますね。このようにfloat型のデータを使う場合には誤差が出てしまうという難点があります。しかし、よっぽど細かい精度まで必要とする計算をしない限り、つまり、細かい数字が必要でない限りはあまり気にしなくても大丈夫です。
浮動小数点については少々混乱しやすいのでまた別の機会に解説します。細かい数字が必要なときはdecimalというモジュールがありますが、今はスルーで問題ないです。
坪単価の計算
面積と概算金額から坪単価を求めてみましょう。UnitPrice.pyというPythonファイルを作成してコードを実行しましょう。
- X方向の壁芯間距離:Lx1 = 10.92m
- Y方向の壁芯間距離:Ly1 = 6.37m
- 1坪 = 3.306m2
- 概算:1,100万円
# 寸法と概算の見積もり金額をそれぞれ変数に代入する
Lx1 = 10.92
Ly1 = 6.37
estimated_price = 1100
# 面積を求めで変数areaに代入する, 掛け算は「*」を使う!
area = Lx1 * Ly1
# 面積の単位をm2から坪に変換する
area_tubo = area / 3.306
# 坪単価を求めて変数unit_priceに代入する
unit_price = estimated_price / area_tubo
# 坪単価を表示する
print("坪単価:" + str(unit_price) + "万円")
面積を坪に変換するところがポイントですね。
よし、概算見積もりでは坪単価は約52.3万円ね。
早速お施主さんに連絡っと!
おめでとうございます!
Pythonを使って坪単価を計算できました。
お施主さんから連絡だ……
なんてこった、予算は坪単価50万円までだって!?
どうやら予算内に収まらなかったみたいですね……
それでは練習問題として差額を計算してみましょう。次の条件でコードを書いてみてください。コード例はページ一番下に書いています。
練習問題:削減しなければならないコスト(概算金額と予算の差)を表示するコードを書きましょう。
- X方向の壁芯間距離:Lx1 = 10.92m
- Y方向の壁芯間距離:Ly1 = 6.37m
- 1坪 = 3.306m2
- 概算:1,100万円
- 予算の坪単価:50万円
建築の計算をPythonに任せてみるのまとめ
今回は建築設計で遭遇する計算をPythonにまかせてみるということで、Pythonの演算子を一部紹介しました。また、演算子を使って、設計した建物の面積と坪単価を計算しました。
- よく使うPython演算子の一覧とそれぞれの使い方を紹介
- 演算子を使って、建築の面積と坪単価の求め方を解説
- float型のデータの計算は小さい値で誤差が出る場合がある
練習問題の回答例
# 寸法と概算の見積もり金額をそれぞれ変数に代入する
Lx1 = 10.92
Ly1 = 6.37
estimated_price = 1100
budget_unit_price = 50
# 面積を求めで変数areaに代入する, 掛け算は「*」を使う!
area = Lx1 * Ly1
# 面積の単位をm2から坪に変換する
area_tubo = area / 3.306
# 予算坪単価50万円からこの建物の金額を求めで変数budgetに代入する
budget_price = area_tubo * budget_unit_price
# 概算金額と予算の差額を計算して変数に代入する
difference = estimated_price - budget_price
# 概算金額と予算の差額を表示する
print("概算金額と予算の差額:" + str(difference) + "万円")
概算金額と予算の差額は47.97万円なので、およそ50万円の削減が必要になりそうですね。
「【独学】建築設計でかんたんPython入門!」シリーズのほかの記事はこちらからどうぞ。
コメント