「python 1~指定した整数までの偶数の合計 while文」
といった検索キーワードで、このサイト『インストラクターのネタ帳』へアクセスがありました。
最近のメジャーなプログラミング言語の場合、数値で繰り返し条件を指定できるときにはfor文を使い、そうでない場合にwhile文を使うのが一般的です。
実務で利用するコードの場合、繰り返す条件を数値で指定できるのならfor文で書くほうがイイはずですが、for文で書ける処理をあえてwhile文で書いてみるのは、プログラミング学習の観点から悪くありません。
「python 1~指定した整数までの偶数の合計 while文」
と検索なさった方は、何らかのプログラミング教育を受けていて、課題が出ていたのかもしれません。
偶数のみを出力する
まずは1から10までの偶数だけをprintする、以下のようなwhile文を使ったスクリプトを書いてみてください。
while i <= 10:
if i % 2 == 0:
print(i)
i = i + 1
カウンター変数iに初期値「1」を代入し、
i = 1
ループ処理を終了する条件を指定して、
while i <= 10:
カウンター変数が偶数のときに出力を行い、
if i % 2 == 0:
print(i)
カウンター変数をインクリメントしています。
i = i + 1
拙著『VBAユーザーのためのPython超入門』の、「6-3. VBAのDo While~LoopとPythonのwhile」で、1から5までの整数を出力するwhile文を使ったコードをご紹介しています。同じ構造のループ処理に、偶数かどうかを判定する処理を追加したものです。
for文との違い
ちなみに、for文の場合は、
for i in range(1, 11):
の1行に、処理を繰り返す条件等が書かれます。これに対し、上述のとおりwhile文では条件等をあちこちに分散して書かなければならず、可読性も落ちる点に注目してください。
while文の場合、カウンター変数をインクリメントする
i = i + 1
を書き忘れたり、インデントのレベルを間違えてしまうプログラミング初心者の方は、少なくないと思います。
偶数の和を計算する
上記のコードに、偶数の足し算を行う処理を追加しましょう。
i = 1
while i <= 10:
if i % 2 == 0:
total = total + i
print(i, total)
i = i + 1
合計を計算するための変数totalを用意し、
total = 0
whileループの中で、偶数であれば変数totalに変数iの値を加算し、
if i % 2 == 0:
total = total + 1
変数i・totalの値をprintし、
print(i, total)
カウンター変数iをインクリメントしています。
i = i + 1
変数total・iを加算する部分を、複合代入演算子を使って書くと以下のとおりです。
i = 1
while i <= 10:
if i % 2 == 0:
total += i
print(i, total)
i += 1
何も見ず自分の手を動かしてコードを書きましょう
もしも、何らかのプログラミング教育を受けていて、偶数の和をwhile文で書く課題が出ていたのであれば、上記の説明を読んだあと、何も見ないで同じようなコードを自分で書いてみることをおすすめします。