なるほどPython講座~繰り返し文~
今回は繰り返し文と制御構文を学習していきましょう。代表例であるforとwhileを使って実際にコードを書きつつ解説していきますね。
for文/基礎
まずはfor文から解説していきますね。例えばこんなコードがあったとしましょう。
names = ["鈴木" , "山田" , "大西" ,"山本" , "高橋"]
print(names[0]+"さん")
print(names[1]+"さん")
print(names[2]+"さん")
print(names[3]+"さん")
print(names[4]+"さん")
これはnamesという変数に5名の苗字が代入されています。そして下のprintで5名全員が「苗字+さん」という形で出力されていますね。
こうするとprintは全員分書くのが非常にめんどくさいですよね。そういったときにforを使いましょう。とりあえずコードを書きます。
names = ["鈴木" , "山田" , "大西" ,"山本" , "高橋"]
for number in range(5):
print(names[number]+"さん")
どうでしょうか。勘の鋭い人ならどのような仕組みなのか分かるのではないでしょうか??
まず先ほど同様にnamesに5名の苗字が代入されていますね。つぎにforがあります。そしてnumber、これは変数名です。次にin、range(5):と続いています。そしてprintでnamesのnumber番の苗字に「さん」を繋げて表示させていますね。
ではforから詳しく解説していきます。まずnumberという変数にin range(5):で「0から4までの5つの数値を順番に代入しますよ」という意味になります。なのでnumberに0、1、2、3、4と代入されていきます。("前回も説明したようにプログラミングでは0から数を数える")
次にprintで変数namesの[number]番の苗字+「さん」を表示しています。これは前々回の変数でもやったように、変数名[数値]で...その変数に代入されている数値番目の文字列を表示しするという意味になります。
names = ["鈴木" , "山田" , "大西" ,"山本" , "高橋"]
for number in range(5):
print(names[0]+"さん")
print(names[1]+"さん")
print(names[2]+"さん")
print(names[3]+"さん")
print(names[4]+"さん")
つまりこれと同じことです。一応公式を書いておきます。
こんな感じですね。( )に入れる数値は「数値の数」なので気をつけて下さいね。先程のように( )に5を入れると5つの数値なので0~4の数値が代入されます。
for文/応用
次にfor文の応用を教えますが、非常に簡単なのでサラッとしか説明しませんが、もし分からない場合がありましたら記事の最後にあるコメント欄かTwitterのDMにて質問して下さい。ではコードです。
names = ["鈴木" , "山田" , "大西" ,"山本" , "高橋"]
for name in names:
print(name+"さん")
どうでしょうか。まず今回はnamesからnameに1つずつ文字列を代入し、それを「苗字+さん」の形で計5回繰り返しています。namesの前にrangeは不要です。rangeは数値を1つずつ代入するときのみに用いるので、直接namesのような変数名を書くときはinの後に続けて書きます。
while文
while文の中でも今回は永遠に処理を繰り返し続けるwhile Trueを紹介します。まずはコードを書きます。
number = 0
while True:
number +=1
if number > 5:
print(number)
少しだけ難しくなってきた気がしますね。まずnumberという変数に0を代入しています。次にwhileTrueで以下の処理を繰り返し行います。「number += 1」とは「number = number + 1」を省略して書いたもので、足す・引く・掛ける・割る、において全てこのような書き方ができます。
そしてif文の条件分岐ですね。条件式と処理文には「もしnumberが5よりも大きいならば、numberを表示する」と書かれています。
つまりnumberに1ずつ数字を足していき、numberが5よりも大きくなったらnumberを表示する。ということですね。
実行すると永遠に数が足されていくと思います。これはwhile True:だからです。最初にも話したようにwhile Trueを使うと永遠に処理を実行し続けます。なので途中で止めて上げる必要があります。処理を中止する際にはbreakを使います。ではbreakを入れてコードを改善していきます。
number = 0
while True:
number +=1
if number > 5:
break
print(number)
このときに気をつけてほしいのがprint(number)はbreakから改行し、左詰めに書きます。もしbreakの下に書くと、ifの処理文として処理されてしまします。
これで実行すると6が表示されると思います。while Trueを中止させるにはnumberが5よりも大きくなくてはならないので、答えは6になりますね。
ソースコードのインデント
これは最初に解説するべきだった内容なのですが、ソースコードにはインデントというものが重要です。インデントとは行の最初にある空白のことです。例えば先程のこのソースコードを見てみましょう。
number = 0
while True:
number +=1
if number > 5:
break
print(number)
最初のインデントはnumber += 1の部分ですね。これはインデントを加えることによってpythonがwhile True(繰り返し文)の処理文であると理解します。
そして次のifはnumber += 1と同じようにwhile Trueの処理文なので、number += 1と同じ位置から書かれています。次のbreakはifの処理文なので、ifよりさらにインデントを加えていますね。
イメージとしてはこんな感じですね。緑色の枠がソースコード全体です。そしてソースコードの中に赤枠のwhile Trueがあります。そしてさらに赤枠の中に青枠のifがあります。
このようにしてソースコードは組まれています。インデントはキーボードのTab(windows)です。macの方は「→」でインデントになります。
最後に
変数、条件分岐、繰り返し、これで基本中の基本はマスターできたかなと思います。あとは調べながらでも仕事はできます。実際に僕の友人はこれだけの超基本を学んだだけでPythonの仕事を受注していましたね。あいつは本当にすごい。
では最後までご覧頂きありがとうございました。
この記事が気に入ったらサポートをしてみませんか?