0
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Python入門 制御文(if文、for文、while文)

Last updated at Posted at 2019-05-18

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 に同じ
0
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?