書きながら覚えよう!Pythonでwhile文を使う方法【初心者向け】
初心者向けにPythonでwhile文を使う方法について解説しています。while文は繰り返し(ループ)処理を行う命令文です。Pythonでの書き方を説明し、実際にサンプルプログラムを書いているので参考にしてみてください。
テックアカデミーマガジンは受講者数No.1のプログラミングスクール「テックアカデミー」が運営。初心者向けにプロが解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。 ※ アンケートモニター提供元:GMOリサーチ株式会社 調査期間:2021年8月12日~8月16日 調査対象:2020年8月以降にプログラミングスクールを受講した18~80歳の男女1,000名 調査手法:インターネット調査
Pythonでwhile文(ループ/繰り返し処理)を使う方法を説明します。
while文は、Pythonに限らずプログラミングをする上で基本的な知識になるので、内容をしっかり理解しておきましょう。
なお本記事は、TechAcademyのPythonオンライン講座の内容をもとにしています。
while文とは
while文は同じ処理を何度も行う場合(繰り返し処理)に使用します。
while文を使用するメリットとしては、同じ処理を何度も書かずに済むというメリットがあります。
もし、何度も書く必要があるとタイプミスをしてしまう可能性も増えます。また、何度も書いたコードを修正する場合、書き直す量も膨大になってしまいます。
そのため、while文を使用し同じ処理を1回書くだけで済ます事には大きなメリットがあります。
while文と似た命令文としてfor文があり、一般的にはfor文の方がよく使われます。
Pythonでfor文(ループ処理)を使う方法についても知りたい方は参考にしてみてください。
while文の書き方
while文の文法は次のようになります。
val = 1 while val < 10: print(val) val = val + 1
1行目では、変数valの中に数字の1を代入しています。
2行目では、変数valが10より小さい間は、while内部のprint処理を行い続けるという条件文を設定しています。
:コロンはここまでが条件分であることを意味しています。
もっとも重要な点は、while文の次の行のprint文の前にタブが存在している事です。
この点については次のインデントについてで改めて解説します。
3行目では変数valに対して数値の1を加算しています。
変数について
Pythonでは予約語と呼ばれる事前に定められた単語以外であれば、英数文字と_(アンダースコア)を使用したものであれば、変数名や配列名として使用することができます。
ただし、予約語から始まる文字列や数字から始まる文字列を指定することはできません。
インデントについて
Pytnonではインデントという考え方で処理を分けています。
先程の処理を再度見てみましょう。
while val < 10:
□□print(val)
この赤い□は本来表示されませんが、この記事では説明のためにあえて表示しています。
Pythonではこのタブ文字で字下げされることで、while文の実行する処理ブロックであることを意味しています。
タブ文字は2文字や4文字で設定されることが多く、TABキーを押すことで入力が可能です。
この字下げの事をインデントと言います。
インデントを使用して処理ブロックを示すする文法はPython独自の文法です。
if文とbreak文の利用例
単純なwhile文にif文とbreak文を組み合わせてみましょう。
if文については条件分岐を覚える!Pythonでif文を使う方法を参考にしてみてください。
break文については、実際に書いてみる!Pythonでbreak文を使う方法を参考にしてみてください。
コード例
val = 1 while val < 10: val = val + 1 □□print(val) □□if(val < 7): □□□□print("valは7未満です") □□elif(val > 7): □□□□print("valは8以上です") □□else: □□□□print("valはラッキー7です!") □□□□break
解説
今回の処理ではvalの値が7であるかをif文で確認しています。
valの値が7の場合だけ、breakで抜ける処理になっています。
実際に書いてみよう
それでは、同じ処理を何度も書いてみましょう。
今回は、10回表示しますという内容を書いてみます。まずは、while文を使わずに書くとどうなるか見てみましょう。
プログラムソースコード
print('0回目の表示です') print('1回目の表示です') print('2回目の表示です') print('3回目の表示です') print('4回目の表示です') print('5回目の表示です') print('6回目の表示です') print('7回目の表示です') print('8回目の表示です') print('9回目の表示です')
表示結果
0回目の表示です
1回目の表示です
2回目の表示です
3回目の表示です
4回目の表示です
5回目の表示です
6回目の表示です
7回目の表示です
8回目の表示です
9回目の表示です
これをwhile文を使用して書いてみます。
プログラムソースコード
val = 0 while 10 > val: print ('{}回目の表示です'.format(val)) val = val + 1
表示結果
0回目の表示です 1回目の表示です 2回目の表示です 3回目の表示です 4回目の表示です 5回目の表示です 6回目の表示です 7回目の表示です 8回目の表示です 9回目の表示です
このように、10行必要だった処理が、4行で実行できました。
1行目では、val = 0で変数valに0を代入します。この処理を初期化と言います。
初期化しておくことで変数内に何が入った状態で処理を始めるかを明示することができ、不具合をなくすことができます。
2行目のwhile 10 > val:では、変数valの中身が10より小さい間処理を継続するという制御文です。
3行目では、print (‘{}回目の表示です’.format(val))というwhile文の処理ブロックでprint文を使用して、何回目の表示かを示しています。
4行目では、val = val + 1というwhile文の処理ブロックで、変数valに1を足しています。足す処理を繰り返し、変数valが10になった時に処理を終了する事ができます。
以上、Pythonでwhile文を使う方法を解説しました。
実際の場面でもよく行う処理なので、書き方を覚えておきましょう。
入門向けPythonの学習サイトも記事にしているので、学習したい方は参考にしてみてください。
また、TechAcademyではPythonを使って機械学習の基礎を学ぶPythonコースを開催しています。
初心者向けの書籍を使って人工知能(AI)や機械学習について学ぶことができます。
現役エンジニアがパーソナルメンターとして受講生に1人ずつつき、マンツーマンのメンタリングで学習をサポートし、習得することが可能です。
独学に限界を感じている方はぜひご覧ください。
この記事を監修してくれた方
中本賢吾(なかもとけんご) 開発実績:PHPフレームワークによるフランチャイズ企業向け会員制SNS。Shopifyによる海外進出用大規模ネットショップ構築。Vue.jsによる金融機関向け内部アプリ。AWSやLinuxハウジングサーバーでの環境構築。人工知能を利用した画像判別システム。小売チェーン店舗用スマホアプリ。Wordpressによる不動産チェーン店向け賃貸・売買仲介システム。基幹システム移管用データコンバートシステム。
小学生がUnityでオリジナルAndroidアプリをGooglePlayでリリース、NHK Whyプログラミング入賞、全国Programing Festival入賞、中学生がノーコードでSNS型PWAアプリリリースなど、ボランティアプログラミング教育活動行っている。 |