Python入門　制御文（if文、for文、while文）

# if文
制御文の一つにif文があります。if文は、ある条件が満たされた場合に、プログラムが実行されるというものです。

## if文その1
if文の基本的な書き方は、もし何々ならば（if 条件）、あるプログラム１が実行され、そうでなければ（else）、あるプログラム２が実行されるというように書きます。

```python

x = 10

if x > 11:
    print(str(x) + "は11より大きいです。")

else:
    print(str(x) + "は10以下です。")
```
```:実行結果
10は10以下です。
```
## if文その2
if文はelifを追加することによって条件を増やすことができます。elifはifとelseの間にしか書くことができません。

```python

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
以下の例では、配列の要素を一つずつ取り出す処理をしています。

```python
animals = ["いぬ","たぬき","いのしし"]

for animal in animals:
    print(animal, len(animal))
```
```:実行結果
いぬ 2
たぬき 3
いのしし 4
```

for文にif文を入れて処理をすることもできます。以下の例では、３文字より大きい文字列があったらinsertを使って、配列の２番目にその文字列を挿入するという処理をしています。

```python
animals = ["いぬ","たぬき","いのしし"]

for animal in animals[:]:
    if len(animal) > 3:
        animals.insert(1,animal)

print(animals)
```
```:実行結果
['いぬ', 'いのしし', 'たぬき', 'いのしし']
```
## for文その2（range）
for文でrangeを使うことで数字を表示することができます。この例では、0から4までの５つの数字をrangeを使って表示しています。

```python
for int in range(5):
    print(int)
```
```:実行結果
0
1
2
3
4
```
以下のようにrangeを書くと、5から始まって、５つの数字、ここでは5から9までを繰り返して表示することができます。

```python
for int in range(5, 10):
    print(int)
```
```:実行結果
5
6
7
8
9
```
```python
for int in range(0, 10, 2):
    print(int)
```
次のように書くと、0から9までの10個の数字のうち2の倍数のみを表示することができます。

```:実行結果
0
2
4
6
8
```
配列データを扱う場合も、len関数を使って配列の要素を数えることで、rangeを使用することできます。

```python
animals = ["いぬ","たぬき","いのしし"]

for i in range(len(animals)):
     print(i, animals[i])
```
```:実行結果
0 いぬ
1 たぬき
2 いのしし
```
## for文その３（break）
breakはfor文やwhile文などの繰り返し処理から抜け出す時に使用します。次の例では、2番目のfor文の時、もし偶数だった場合、一旦for文を抜け出し、１番目のfor文からelse以降の処理をしてまた処理を繰り返します。

```python
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文その４（continue）
for文においてcontinueを使用すると、スキップ処理を行います。次の例をみると、rangeで2から9までの数字を表示する際に、もし偶数だった場合は、if文以降のプログラムが実行され、そうでなければif文以降のプログラムはスキップされ、if文に含まれないプログラムが実行されます。

```python
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文その１
次の例では、変数aに代入された0が9になるまで処理を繰り返します。

```python
a = 0
while a < 10:
    print(a)
    a += 1
```
```:実行結果
0
1
2
3
4
5
6
7
8
9
```
# print関数

## end引数
end引数を使用すると、改行なしで数字を表示することができます。

```python
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 に同じ|