Pythonの基礎(ループ処理、条件分岐)
あらゆるプログラミングで重要なループ処理と条件分岐を勉強します。
for文
Pythonでのループ処理はfor
を使用する。
1から100までの和を求めるプログラムを作ってみよう。
import numpy as np sum=0 for i in range (1,101): sum = sum + i print(sum)
5050
ループ内に入れたいものをスペース4つで下げます。下がっている文はループ内で処理される。
注意してほしいのはPythonは最初が0からスタートしているので、100まで足すときには範囲を1から101にしなければなりません。
またfor文末のコロンを忘れないようにしましょう。
while文
ある条件の間に限りループを実行したいときはwhile
を使用する。
例えば200から7ずつ引いていって、100を切るまでの各値を計算してみよう。
import numpy as np rest = 200 array_r = np.array(rest) #表示を横に並べたいので配列化する while rest > 100: rest = rest - 7 array_r = np.append(array_r,rest) #計算した結果を配列に追加する print(array_r)
[200 193 186 179 172 165 158 151 144 137 130 123 116 109 102 95]
if文
数値が偶数か奇数かを判定するプログラムをつくってみます。
すこし欲張りしてコンソールから数字を読み取って偶数か奇数かを判定するソフトにしましょう。
import numpy as np num = input('enter a value :') #数字の読み取り num = int(num) #整数型への変換 sur = np.mod(num,2) if sur == 0: print('Even') else: print('Odd')
input
はコンソールの入力を受け取る関数です。input
ではまず文字列型としてデータを受け取るので一度整数型に直すためにint
関数を使用しています。
if文のところは他のプログラムと大きく変わりません。コロンをつけるのとインデントに注意してください。3つ以上に分岐するときはif
elif
else
と使います。
ちょっと応用
for文やwhile文とif文が混ざったプログラムを書いてみましょう。
50番目までのフィボナッチ数列で偶数だけを抜き出すプログラムを書いてみます。
import numpy as np fib = [0,1] fib2 = [0] for i in range(1,51): num = fib[i] + fib[i-1] #i番目とi-1番目を足す fib = fib + [num] #fib配列に追加(np.appendと同じ) if num % 2 == 0: #%はnp.modと同じ fib2 = fib2 + [num] #偶数だけをfib2配列に追加 print(fib2)
[0, 2, 8, 34, 144, 610, 2584, 10946, 46368, 196418, 832040, 3524578, 14930352, 63245986, 267914296, 1134903170, 4807526976, 20365011074]
数が多いのでフィボナッチ数列が10000を超えたらループを停止するようにしてみます。
import numpy as np fib = [0,1] fib2 = [0] for i in range(1,51): num = fib[i] + fib[i-1] fib = fib + [num] if num % 2 == 0: fib2 = fib2 + [num] if num > 10000: break print(fib2)
[0, 2, 8, 34, 144, 610, 2584, 10946]
break
によりif文の中の条件を満たした場合、forループの外に抜けることができます。
今日はここまで。