Python3 基本構文

# Python3 基本構文

Pythonを書く機会があったのでよく使う構文をまとめます。

## 0. インデント

Pythonではインデントを落とした部分が処理ブロックになるので、`if 条件:`や`for ~ in ~:`などの後はインデントを落としましょう。

## 1. 変数定義

Pythonは動的型付け言語なので、変数宣言時に型宣言は必要ありませんが、**定義した変数が何型(整数, 浮動小数, 文字列, 真偽値, ...)なのか常に意識して書く**と、コーディング時にキャスト(型変換)が必要かどうかの判断が容易になったり、他言語でも型で苦労することは無くなると思います。

```python
  # ==================================
  # ------------- 変数定義 ------------
  # ==================================

  # Integer(整数)型
  num1 = 10
  num2 = -3

  # Float(浮動小数)型
  num3 = 1.5
  num4 = -2.5

  # String(文字列)型
  text = 'こんばんは、山下です。'

  # Bool(真偽値)型
  condition1 = True # TrueのTは大文字で!!
  condition2 = False # FalseのFは大文字で!!
```

## 2. 標準出力

コンソールに出力する際に使用する`print()`関数です。

```python
  # ==================================
  # ------------- 標準出力 ------------
  # ==================================

  # 1. print関数の引数に直接String型の文字列を渡して出力

  print('こんにちは、山本です。')

  #
  # === 結果: こんにちは、山本です。
  #

  # 2. 一度変数textにString型の文字列を代入し、print関数に変数textを渡して出力

  text = 'こんにちは、山本です。'
  print(text)

  #
  # === 結果: こんにちは、山本です。
  #

  # 3. 文字列を連結する際は「+」を使う

  jp_fruit = 'りんご'
  en_fruit = 'apple'
  print('「' + jp_fruit + '」は、英語で「' + en_fruit + '」です。')

  #
  # === 結果: 「りんご」は、英語で「apple」です。
  #
```

## 3. if文(条件分岐)

プログラムの基本の条件分岐です。`if 条件`の条件を満たす時に`True`が返されます。

```python
  if 条件1:
    # 条件1が真(True)の時の処理
  elif 条件2:
    # 条件1が偽(False)で条件2が真(True)の時の処理
  else:
    # 条件1と条件2のどちらとも偽(False)の時の処理
```

コード例は以下の通りです。

```python
  # ==================================
  # ---------- 条件分岐 その1 ----------
  # ==================================

  num1 = 10

  if num1 == 5:
    # 実行されない...
    print('num1と5は等しい')
  elif num1 == 10:
    # 実行される!!!
    print('num1と10は等しい')
  else:
    # 実行されない...
    print('num1は5と10の両方とも等しくない')

  #
  # === 結果: num1と10は等しい
  #
```
```python
  # ==================================
  # ---------- 条件分岐 その2 ----------
  # ==================================

  jp_fruit = 'りんご'
  en_fruit = 'apple'

  if jp_fruit != en_fruit:
    # 実行される!!
    print('文字列として' + jp_fruit + 'と' + en_fruit + 'は等しくない')

  #
  # === 結果: 文字列としてりんごとappleは等しくない
  #
```

## 4. for文(繰り返し処理)

同じ又は似通った処理を行う際に使うのが繰り返し処理である**for文**です。

```python
  for 変数 in オブジェクト:
    # 繰り返し処理
```
変数は1週ごとにオブジェクトから次々取り出す要素が代入されます。forに記述するオブジェクトは、以下のようなものがあります。

```python
  1. range(繰り返しする回数)

  # list(range(5))でリストに変換すると...

  #
  # === [0, 1, 2, 3, 4]
  #

  2. 配列

  # fruits = ['りんご', 'メロン', 'ぶどう']

  #
  # === ['りんご', 'メロン', 'ぶどう']
  #
```

rangeでは`for 変数 in`の`変数`に、繰り返し1回目は0、繰り返し2回目は1というように、0〜4までの値が渡され、繰り返し処理が0〜4の要素数の合計である**5回**行われます。
と言っても最初はrangeの中身は気にしなくてもfor文が使えれば良いので、単純な繰り返し処理なら要は`range()`の()には**繰り返す回数を数値で代入**しておけば良いと覚えてください。

```python
  # ==================================
  # --------- 繰り返し処理 for 1 --------
  # ==================================

  for i in range(5):
    print(str(i) + '回目')

  # rangeは引数を増やしてこの様な書き方もできます(0以上5未満で繰り返し)
  for i in range(0, 5):
    print(str(i) + '回目')

  # === 結果:
      # 0回目
      # 1回目
      # 2回目
      # 3回目
      # 4回目

```
```python
  # ==================================
  # --------- 繰り返し処理 for 2 --------
  # ==================================

  fruits = ['りんご', 'メロン', 'ぶどう']

  for fruit in fruits:
    print('果物: ' + fruit)

  # === 結果:
      # 果物: りんご
      # 果物: メロン
      # 果物: ぶどう
```

## 5. while文(ループ処理)

for文と同様に繰り返し処理を行いますが、while文は若干異なり、for文では**あらかじめ繰り返し回数を指定**していますが、while文では**条件を満たす限り処理をし続ける**というのが特徴です。

```python
  while 条件式:
    # 条件が真(条件を満たす)の時に実行する処理
```

条件式の書き方はif文と同じで、その条件が真(True)となる間処理をし続けます。

以下のループではprintの前にcountを増やしているので、countの初期値が0でも「1回目」からコンソールに表示されます

```python
  # ==================================
  # --------- ループ処理 while 1 -------
  # ==================================

  count = 0

  while count < 5:
    count += 1
    print(str(count) + '回目')

  # === 結果:
      # 1回目
      # 2回目
      # 3回目
      # 4回目
      # 5回目
```

以下のループは中断をしないと「無限ループ」と呼ばれるもので、条件が永遠に真(True)のままなので処理が終了しません。終了させるためには必ず処理部にbreakを記述しましょう。以下の例ではループ処理1と同様に処理が終了するように記述しています。

```python
  # ==================================
  # --------- ループ処理 while 2 -------
  # ==================================

  count = 0

  while True:
    count += 1
    print(str(count) + '回目')

    # countが4を超えた場合にループ処理を終了する
    if 4 < count:
      break

  # === 結果:
      # 1回目
      # 2回目
      # 3回目
      # 4回目
      # 5回目
```