書きながら覚えよう!Pythonでwhile文を使う方法【初心者向け】

初心者向けにPythonでwhile文を使う方法について解説しています。while文は繰り返し(ループ)処理を行う命令文です。Pythonでの書き方を説明し、実際にサンプルプログラムを書いているので参考にしてみてください。

TechAcademyマガジンはオンラインのプログラミングスクールTechAcademy [テックアカデミー]が運営する教育×テクノロジーのWebメディアです。初心者でもすぐ勉強できる記事が2,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独自の文法です。

 

[PR] 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人ずつつき、マンツーマンのメンタリングで学習をサポートし、最短4週間で習得することが可能です。

独学に限界を感じている方はぜひご覧ください。

この記事を監修してくれた方

中本賢吾(なかもとけんご)
アジマッチ有限会社 代表取締役社長

開発実績:PHPフレームワークを利用した会員制SNS・ネットショップ構築、AWSや専用サーバー下でLinuxを使用したセキュアな環境構築、人工知能を利用したシステム開発、店舗検索スマホアプリ開発など。

その他にも地域の職業プログラマー育成活動を行い、2018年には小学生がUnityで開発したオリジナルAndroidアプリをGooglePlayでリリース。ゲームで遊ぶより作ろうぜ!を合言葉に、小学生でも起業できる技術力を育成可能で有ることを証明し続けている。