if文
制御文の一つにif文があります。if文は、ある条件が満たされた場合に、プログラムが実行されるというものです。
if文その1
if文の基本的な書き方は、もし何々ならば(if 条件)、あるプログラム1が実行され、そうでなければ(else)、あるプログラム2が実行されるというように書きます。
x = 10
if x > 11:
print(str(x) + "は11より大きいです。")
else:
print(str(x) + "は10以下です。")
10は10以下です。
if文その2
if文はelifを追加することによって条件を増やすことができます。elifはifとelseの間にしか書くことができません。
x = 12
if x > 12:
print(str(x) + "は12より大きいです。")
elif x == 12:
print(str(x) + "は12です。")
elif x == 11:
print(str(x) + "は11です。")
else:
print(str(x) + "は10以下です。")
12は12です。
for文
for文は繰り返し処理をします。例えば、配列の要素を取り出したり、1から10までの数字を順番に表示したりすることができます。
for文その1
以下の例では、配列の要素を一つずつ取り出す処理をしています。
animals = ["いぬ","たぬき","いのしし"]
for animal in animals:
print(animal, len(animal))
いぬ 2
たぬき 3
いのしし 4
for文にif文を入れて処理をすることもできます。以下の例では、3文字より大きい文字列があったらinsertを使って、配列の2番目にその文字列を挿入するという処理をしています。
animals = ["いぬ","たぬき","いのしし"]
for animal in animals[:]:
if len(animal) > 3:
animals.insert(1,animal)
print(animals)
['いぬ', 'いのしし', 'たぬき', 'いのしし']
for文その2(range)
for文でrangeを使うことで数字を表示することができます。この例では、0から4までの5つの数字をrangeを使って表示しています。
for int in range(5):
print(int)
0
1
2
3
4
以下のようにrangeを書くと、5から始まって、5つの数字、ここでは5から9までを繰り返して表示することができます。
for int in range(5, 10):
print(int)
5
6
7
8
9
for int in range(0, 10, 2):
print(int)
次のように書くと、0から9までの10個の数字のうち2の倍数のみを表示することができます。
0
2
4
6
8
配列データを扱う場合も、len関数を使って配列の要素を数えることで、rangeを使用することできます。
animals = ["いぬ","たぬき","いのしし"]
for i in range(len(animals)):
print(i, animals[i])
0 いぬ
1 たぬき
2 いのしし
for文その3(break)
breakはfor文やwhile文などの繰り返し処理から抜け出す時に使用します。次の例では、2番目のfor文の時、もし偶数だった場合、一旦for文を抜け出し、1番目のfor文からelse以降の処理をしてまた処理を繰り返します。
for n in range(2, 10):
for x in range(2, n):
if n % x == 0:
print(n, "は", x, "*", n//x, "と等しい関係です。")
break
else:
print(n, 'は素数です。')
2 は素数です。
3 は素数です。
4 は 2 * 2 と等しい関係です。
5 は素数です。
6 は 2 * 3 と等しい関係です。
7 は素数です。
8 は 2 * 4 と等しい関係です。
9 は 3 * 3 と等しい関係です。
for文その4(continue)
for文においてcontinueを使用すると、スキップ処理を行います。次の例をみると、rangeで2から9までの数字を表示する際に、もし偶数だった場合は、if文以降のプログラムが実行され、そうでなければif文以降のプログラムはスキップされ、if文に含まれないプログラムが実行されます。
for i in range(2, 10):
if i % 2 == 0:
print("偶数です。", i)
continue
print("奇数です。", i)
偶数です。 2
奇数です。 3
偶数です。 4
奇数です。 5
偶数です。 6
奇数です。 7
偶数です。 8
奇数です。 9
while文
while文もfor文同様に繰り返し処理を行います。while文は条件が満たされるまで処理を繰り返します。
while文その1
次の例では、変数aに代入された0が9になるまで処理を繰り返します。
a = 0
while a < 10:
print(a)
a += 1
0
1
2
3
4
5
6
7
8
9
print関数
end引数
end引数を使用すると、改行なしで数字を表示することができます。
a = 0
while a < 10:
print(a, end=",")
a += 1
0,1,2,3,4,5,6,7,8,9,
代入演算子
先ほどのwhile文の中で+=という代入演算子を使用しましたが、その他の代入演算子については以下のようになっています。
演算子 | 名前 | 説明 |
---|---|---|
a = b | 代入 | a に b を代入する |
a += b | 加算 | a = a + b に同じ |
a -= b | 減算 | a = a - b に同じ |
a *= b | 乗算 | a = a * b に同じ |
a /= b | 除算 | a = a / b に同じ |
a %= b | 余り | a = a % b に同じ |
a **= b | べき乗 | a = a ** b に同じ |