皆さん、こんにちは。
南波真之(なんばさねゆき)と申します。
私は現在、Pythonについて勉強を進めています。というのも、AIやデータ分析、アプリケーション開発など様々な状況でPythonは活用されており、テクノロジー業界で活躍していくためには必要だと思っているからです。
と言っても、私はエンジニアではない文系の人間です。
「解きながら学ぶ Pythonつみあげトレーニングブック」を使って、Pythonの一番基本的なところを学んでいます。そこで、自分で学習してきて感じたポイントや疑問、皆さんにシェアできることを書いていきます。
今回は、P.100〜P.117の部分になります。
テーマはPythonでロジックを組み立てていく際に重要な、繰り返し処理についてです。
コンピュータは繰り返し処理が得意なため、その特性をうまく活かすためにforとwhileという2つの方法があります。その使い方や違いについて学んでいきます。
繰り返し処理とは
プログラミングにおける繰り返し処理とは、同じ処理を何度も行う必要がある場合にその回数分の記述を書くことなく、1回繰り返し処理を書くことで繰り返しを行うことができるものです。ほとんどのプログラムにはこの繰り返し処理が使われています。
例えば、レストラン情報や書籍情報を一覧で表示させるWebサービスがあったとします。その際は、「データベースから該当の情報を取得 → それを画面に表示させる」という処理になります。
繰り返し処理を使うことで、「X回処理を繰り返すことでX件の情報を表示させる」、ということが実現できますが、繰り返し処理を使わない場合同じような処理を表示させたい個数分記述する必要が出てきます。
すると、コードの可読性が下がり、記述ミスがあったときにも見つけにくいというデメリットが発生する可能性が高まりますので、繰り返し処理は必修と言えます。
その繰り返し処理を行う際には大きく分けてfor文とwhile文を使います。
ちなみに、繰り返し処理はループ処理と呼ばれる場合もあり、書籍やネット記事を見ているとどちらの表記もありましたので覚えておきたいところです。
for文
まずはfor文です。for文は、対象となる要素の数だけ、その下に書かれた処理を行うことができる書き方です。回数指定のある繰り返しの場合に使います。
書き方は、forで宣言し、変数、キーワードのin、繰り返し対象にするリストなどを記述し、コロンを打ちます。そしてその次の行に実行する処理を記載していきます。
# for文の書き方 # fruitは変数、inはfor文で使われるキーワード、fruitsは繰り返し対象(今回はリスト) # fruitやfruitsはコードに合うように変更してください for fruit in fruits: 実行する処理 |
これによって、繰り返し対象の要素が1つずつ変数に格納され、その変数が次の行の処理を実行し、繰り返しの数だけ繰り返されます。
かんたんな例を出してみます。
# 変数fruitsにリスト形式で5つの要素を代入 fruits = [‘りんご’, ‘ぶどう’, ‘ばなな’, ‘めろん’, ‘すいか’] # for文で繰り返し処理を行いprint文で表示 for fruit in fruits: print(fruit + ‘を買った’) |
この処理の結果は、こうなります。繰り返し処理がされているのがわかります。
りんごを買った ぶどうを買った ばななを買った めろんを買った すいかを買った |
その他にも関数と組み合わせることで様々な処理ができます。
range関数を利用し、整数を指定した回数だけ繰り返し。
# range関数で5回繰り返し(0〜4が作成される) for number in range(5): print(‘出席番号は’, number, ‘です。’) |
出力結果は、こうなります。
出席番号は 0 です。 出席番号は 1 です。 出席番号は 2 です。 出席番号は 3 です。 出席番号は 4 です。 |
enumerate関数を使いリストを作成し、出席番号になる数字とmembersの要素をそれぞれ出力させる。
members = [‘太郎’, ‘剛志’, ‘翔子’, ‘亮二’, ‘美優’] for number, member in enumerate(members): print(member ,’の出席番号は’, number, ‘です。’) |
出力結果は、こうなります。
太郎 の出席番号は 0 です。 剛志 の出席番号は 1 です。 翔子 の出席番号は 2 です。 亮二 の出席番号は 3 です。 美優 の出席番号は 4 です。 |
その他、for文の中にfor文を入れるという入れ子のループを作ることも可能になっています。
while文
while文もfor文と同じく繰り返し(ループ)処理を行う方法ですが、for文との違いとしては繰り返しの回数が決まっていない場合に利用します。そのため、無限ループに注意する必要もあります。
書き方は、whileで宣言し、条件式を記載、最後にコロンを打ちます。そして次の行には実行する処理を記載するというものです。
# while文の書き方 while 条件式: 実行する処理 |
シンプルですね。これを使ってサンプルを書いてみました。
# 変数aには0を代入 a = 0 # while文でaが5より小さい場合は繰り返しを続ける while a < 5: # 数字を出力 print(a) # 毎回aに1を足していく a += 1 |
このコードの実行結果はどうなるでしょうか。
以下のようになりました。
0 1 2 3 4 |
whileを使うと例えばこういった繰り返し処理も可能です。
# 10000円持っているとする my_money = 10000 # 購入した商品数 item_count = 0 # 所持金が尽きるまで繰り返し処理を行い出力させる while 0 < my_money: item_count += 1 my_money -= 2500 print(‘商品を’, item_count, ‘個購入しました。’ ‘残金は、’, my_money, ‘円です。’) |
出力はこのようになります。
商品を 1 個購入しました。残金は、 7500 円です。 商品を 2 個購入しました。残金は、 5000 円です。 商品を 3 個購入しました。残金は、 2500 円です。 商品を 4 個購入しました。残金は、 0 円です。 |
ちなみに、無限ループを実行してしまった場合は「ctrl + C」(「control + C」)のキーを同時に押すことで実行を中止できます。
# 無限ループの例 japan = ‘Tokyo’ # このwhile文がFalse(変数japanが空っぽの状態)になることはないので無限ループとなる while japan != ”: print(‘Tokyo’) print(‘===’) |
While文の基本についてはシンプルなのでわかりやすかったかと思います。
その上で、繰り返しの制御をもっと色々できると処理の幅が広がります。主に利用するのはbreak文、continue文です。
- break文
- 繰り返し処理の途中で使うことで強制的に繰り返し処理から抜けることができる(ループ処理の停止)
- continue文
- その時点でループ処理の先頭に戻り、次の繰り返しを開始できる(ループ処理をスキップ)
繰り返し処理でPythonの活用の幅が一気に広がる
今回は、Pythonの繰り返し処理(ループ処理)について紹介してきました。
ループ処理はコンピューターが得意なものですので、利用方法を理解しどういった処理ができるかを考えることがとても重要です。
インターネット・アカデミーは、Python講座が充実しています。Python認定スクールにもなっているため質の高い知識を得ることができ、基礎学習の先にあるそれぞれの目標を目指していくためには良い場所となります。
よく、「プログラミングは独学でもなんとかなる」という情報もありますが、新しいことを学んでいく際の近道は「プロに教えてもらうこと」です。
インターネット・アカデミーはキャリアサポートも充実しており、一人ひとりに専任のキャリアプロデューサーがサポートしてくれるため中途半端になることがありません。
ご興味ある方は各講座のページを覗いてみてください。無料カウンセリングもできます。
Pythonの基礎からDjangoフレームワークを使ったWebアプリケーションを作りたい方向けの「Python講座」
Pythonを活用したAIプログラミング、機械学習を実装したい方向けの「AIプログラミング講座」
※上記の講座は「解きながら学ぶ Pythonつみあげトレーニングブック」を基にした研修コースではありません。