【独学】建築設計でかんたんPython入門!:for文で繰り返し部屋を作ろう

当サイトのリンクには広告が含まれています。

ノンプログラマーのための「建築で理解するPython入門」の基礎編10回目です。今回はPyCharmを使いながらfor文を使って繰り返し処理を行う方法を説明します。

この記事で理解できることは次のとおりです。

for文の基本的な使い方

for 変数 in オブジェクト:
  処理の内容

この記事を書いた人

panna(パンナ)| 建築デジタルの専門家

大学院で建築学を専攻し、修了後は設計事務所へ入所。現在はBIMの仕事をしています。
建築デジタル歴は10年以上。Rhino+GrasshopperとPythonを学生時代から使い始め、2017年からAutodesk RevitでBIM推進開始。

この記事のコンテンツ

Pythonのfor文を理解する:繰り返し部屋を作ろう

今回はfor文を説明します。for文とは、繰り返し処理を行いたいときに使う構文です。

for文がどんなものかざっくりまとめると
  • 与えられたデータをもとに繰り返し処理を行う
  • 同じ処理を繰り返し繰り返し処理させる場合にとっても便利
    • 例えば、「複数のデータを1つずつprint関数で表示させる」など

Pythonでfor文はどうやって書くか理解しよう

次のように書きます。

for文の書き方イメージ

for 変数 in オブジェクト:
  処理の内容

変数は好きなように名前を付けられます。オブジェクトにはlist型などが入ります。

処理の内容の前にはインデント(文字下げ)が入ります。タブキーで問題ないですが、半角スペース2つ分を入れる方もいます。このサイト内の記事ではインデントはタブキー1つ分としています。

少し複雑なので実際にどんな動きをするのかコードを書きながら確認しましょう!本当によく使う構文なので頑張って理解したいですね!

for文を使って繰り返し部屋を作る

今回は、作りたい部屋の情報(名前)から部屋を作成してみたいと思います。この例では、オブジェクトにlist型のデータを使用しています。

# 必要な部屋の種類をlist型で入力し、変数roomsに代入する
rooms = ["子供部屋", "寝室", "リビング", "キッチン"]

# 変数roomsを表示する
print(rooms)

"""
↑複数行をまとめてコメントにしたい場合はダブルクォーテーション3つで挟む!
①変数roomsの先頭から1つずつ変数iに代入して、処理を行う
②処理が終わったら次のrooms内の変数をまた変数iに代入して処理を行う
変数roomsの中にあるデータの数だけ繰り返す
"""
for i in rooms:
  print(i)

実行結果を見ると、print関数で表示されている内容に次の違いがあることが分かります。

  • print(rooms):list型のデータを一括出力
  • for文の中のprint(i):roomsの先頭から順番に取り出して一つ一つ表示している

今回のfor文では、【変数roomsから1つデータを取り出して変数iに代入し、print関数で出力する】という処理を1サイクルとして、roomsに入っているデータの数だけ繰り返しています。

for文を使って繰り返し部屋を作る:別の方法

list型のデータは順番(インデックス)があって、数字を指定してあげることで紐づいてるデータを取り出すことができましたね。

# list型のデータを作成して変数list_sampleに代入する
list_sample = ["0番目", "1番目", "2番目"]

# インデックスを指定して変数list_sampleからデータを取り出す
print(list_sample[0])

# 「0番目」と出力されます。

for文でもこのルールは生きています。このルールを使って別のfor文の使い方を説明します。まずはコードを見てみましょう。

# list型のデータを変数list_sampleに代入する
list_sample = ["子供部屋", "寝室", "リビング", "キッチン"]

# len()を使用し、変数list_sampleの長さ(中に入っているデータの数)を求めて変数list_lenに代入する
list_len = len(list_sample)

# for文でlist_sampleの中身を順番に出力する
for i in range(list_len):
  print(i + "番目に" + list_sanpme[i] + "を作りました")

新しくrange関数が出てきます。range関数は数列のリストを作成することができます。上のコードでは、list_sampleの長さである4を引数としているので、実際にはrange(4)をfor文のオブジェクトに入力しています。

range関数について

range関数で数列を作ることができます。例えば[0, 1, 2, 3]という数列を作りたい場合は次の様になります。

range(0, 4) もしくは、range(4)

  • 0は数列の初めの値。省略可能
  • 4は数列のデータの数。

コードをあらためて見てみましょう。

# list型のデータを変数list_sampleに代入する
list_sample = ["子供部屋", "寝室", "リビング", "キッチン"]

# len()を使用し、変数list_sampleの長さ(中に入っているデータの数)を求めて変数list_lenに代入する
list_len = len(list_sample)

# for文でlist_sampleの中身を順番に出力する
for i in range(list_len):
  print(i + "番目に" + list_sanpme[i] + "を作りました")

さきほどよりも、8行目のfor文の意味をイメージしやすくなったと思います。

range(list_len)を言い換えるとrange(4)になり、データとしては[0, 1, 2, 3]というlist型の数列です。それをfor文のオブジェクトに入力しています。

[0, 1, 2, 3]の先頭から1つずつ変数「i」に代入して、処理を繰り返しています。

実行結果は次の様になります。

おめでとうございます!
Pythonの
for文を使って繰り返し処理を行うプログラムを作成できました。

「Pythonのfor文を理解する」のまとめ

今回は次の事を説明しました。

  • for文:オブジェクトの数だけ処理を繰り返す
  • range関数:入力した数値から数列を作成する

「【独学】建築設計でかんたんPython入門!」シリーズのほかの記事はこちらからどうぞ。

ためになったらシェアお願いします!

コメント

コメントする

この記事のコンテンツ