ノンプログラマーのための「建築で理解するPython入門」の基礎編10回目です。今回はPyCharmを使いながらfor文を使って繰り返し処理を行う方法を説明します。
この記事で理解できることは次のとおりです。
for 変数 in オブジェクト:
処理の内容
panna(パンナ)| 建築デジタルの専門家
大学・大学院で建築学を専攻し、修了後は設計事務所へ入所。現在はBIMの仕事をしています。
建築デジタル歴は10年以上。Rhino+GrasshopperとPythonを大学生時代から使い始め、2017年からAutodesk RevitでBIM推進開始。
パソコンを使って副業をしています。これまでに購入したパソコンは8台になりました。
Pythonのfor文を理解する:繰り返し部屋を作ろう
今回はfor文を説明します。for文とは、繰り返し処理を行いたいときに使う構文です。
- 与えられたデータをもとに繰り返し処理を行う
- 同じ処理を繰り返し繰り返し処理させる場合にとっても便利
- 例えば、「複数のデータを1つずつprint関数で表示させる」など
Pythonで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関数で数列を作ることができます。例えば[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入門!」シリーズのほかの記事はこちらからどうぞ。
コメント