【第2回】初心者のためのDiscordBot制作への道 ～Pythonプログラミングの基本～

# はじめに
本記事は『初心者のためのDiscordBot制作解説』第2回です！
[前回](https://qiita.com/NaruNeko/items/9465486b9c8ac5e1e375)はPythonの開発環境構築までを解説しました。
これで環境は整ったので、早速プログラミングをしていきましょう。

# 環境
今回使用した開発環境です。完全初心者の方は読み飛ばして頂いてOKです。
- Windows10
- python 3.10.11
- Visual Studio Code

# さっそくプログラミングしてみよう！

さて、プログラミングをするための環境が整ったところで実際にコードを打って実行してみましょう！

## 1 Pythonファイルの作成と保存

左上の『ファイル』をクリック
→『新しいファイル』をクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2842664/38012cdc-c4bd-9b39-3026-7b24cb7f81d2.png)

画面中央上部に表示されたメニューから『Pythonファイル』を選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2842664/9e0adabb-81fd-7079-7733-a6caab48c968.png)

下記の様な入力画面が表示されていればOKです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2842664/90bd8230-e72f-9c4c-08dc-41d81abfb928.png)

その後、一度ファイルを保存します。
左上の『ファイル』をクリック
→『名前を付けて保存』をクリック
→ 自分でどこか保存場所を選んで保存します

これで、保存した先にPythonファイル(拡張子は .py)が作成されました。

## 2. コードの入力と実行

これでPythonファイルが作成できました。

では、以下のコードを入力してみましょう。
```python:Untitled-1.py
print('Hello World!')
```
入力出来たら右上の実行ボタンを押します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2842664/f0c2c13e-85ec-898e-7868-1294f5427d67.png)



実行すると画面下部に **ターミナル(コマンドでPCを操作するための画面)** が表示され、そこに以下のような結果が出力されます。
```shell:実行結果
Hello World!
```
これでPythonのプログラムが実行出来ました！

:::note warn
もしも実行が出来ない場合は、VSCodeがPythonを認識出来ていません。
その場合、画面下部の下記画像に示す部分をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2842664/ecb06f18-c5aa-b741-454f-00bcd7416090.png)
先程インストールしたPython3.10.11を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2842664/b4005940-4f67-0b05-43ed-519b215a9fcd.png)
これでもう一度実行してみてください。

:::


# Pythonプログラムの基本
ここからは、コードを改変しながらプログラムの解説をしていきます。

# 1. print
まず、先程実行したコードを見てみます。

```python:Untitled-1.py
print('Hello World!')
```
printは括弧内で指定したものをターミナルに出力（表示）します。
ここでは括弧内が'Hello World!'となっているため、ターミナルにも同様の出力がされています。
試しにコードを以下のように改変して実行してみます。
```python:Untitled-1.py
print('Good Morning!')
```
```shell:実行結果
Good Morning!
```
うまく行っていれば、出力結果が変わっているはずです。

# 2. 変数
pythonを始めとするプログラミング言語には、『変数』と呼ばれるものが存在します。
変数は、プログラミングにおける『データの入れ物』のようなイメージです。
予め入れ物に名前を付けて分かりやすくしておいて、その中にデータを保管することで、データの中身を覚えていなくても入れ物の名前を参照すれば簡単に見つけることが出来ます。

実際に変数を使ってプログラムを書いてみます。
```python:Untitled-1.py
hensu1 = 102923 
print(hensu1)
```
```shell:実行結果
102923
```
実行すると102923という出力が得られるはずです。

今回はhensu1という名前の変数を作り、そこに102923という数値データを格納しました。

:::note info
この変数名は基本的に何でも大丈夫です。abcでもhensuuuuuでも動きます。ただし、一部記号は使えなかったり、『日本語の変数名は非推奨』などの暗黙のルールもあります。
:::

そして今回は、printの括弧内にhensu1と指定しています。
printは **括弧内で指定したものをターミナルに表示してくれる** ものだったので、今回はhensu1の中身である102923が表示されているわけです。

![hensu.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2842664/f743cba1-c351-1557-e1a5-039459d6ce94.jpeg)


:::note info
### 覚えておくともっとえらい！
変数名を指定して変数を作ることを **『宣言』** と言います。
その変数にデータを格納することを **『代入』** と言います。
逆に、格納されたデータを変数名を指定して利用することを **『参照』** と言います。
今回の場合は、宣言と代入を同時に行いました。このように、宣言した変数に初めて値を代入（設定）することを **『初期化』** と言います。
:::

# 3. データ型
プログラムで扱うデータには通常、 **『型(かた)』** と呼ばれるものが存在し、『データ型』とも呼びます。
型とは、データの種類を表すものです。
例えば 、 **数値** や **文字列** も型の一つです。
今回は、Pythonの主なデータ型の中でも、3つをピックアップして解説していきます。
## 3.1 数値型
数値型は文字通り、『数値』を表す型です。
数値と言っても、整数型(int型)と小数型(float型)が存在します。
整数型は100や15のような数値、逆に小数型は1.2や0.1111等の数値を扱えます。

## 3.2 文字列型
文字列型も、文字通り『文字列』を表す型です。
文字列型はダブルクォート『"』またはシングルクォート『'』で囲みます。
'hello' や 'A' や '123' のように書きます。
数字の場合も、ただ単に『123』とすると整数型になりますが、『'123'』とすることで文字列型として扱うことが出来ます。

## 3.3 リスト型
リスト型は上記2つと比べて少し特殊な型です。
- 複数のデータをまとめて格納するための入れ物
- 大括弧『[]』を使って表し。コンマ『,』でデータを区切る

リスト型を扱う場合はこのように書きます。

```python:Untitled-1.py
list_hensu1 = [1, 3, 5, 7]
list_hensu2 = ['1', '3', '5', '7']
list_hensu3 = [1, '3', 5, '7']

print(list_hensu1)
print(list_hensu2)
print(list_hensu3)
```
```:実行結果
[1, 3, 5, 7]
['1', '3', '5', '7']
[1, '3', 5, '7']
```
基本的に、リストの中身に型の制限はありません。数値でも文字列でも、もしくはそれらのごちゃ混ぜでも扱えます。

リストでは、下記のようにして特定の位置のデータだけを参照することもできます。

```python:Untitled-1.py
list_hensu1 = [1, 3, 5, 7]
list_hensu2 = ['1', '3', '5', '7']
list_hensu3 = [1, '3', 5, '7']

print(list_hensu1[0])
print(list_hensu2[1])
print(list_hensu3[2])
```
```:実行結果
1
3
5
```
ただし、リストの位置は **『0番目』** から始まる点に注意です。


# 4. 演算
次にPythonにおける **『演算』** について解説してきます。
演算とは、簡単に言えば計算のことです。ただし、プログラミングにおける演算は**数の計算だけではなく**、文字列と文字列の結合や、条件と合致しているかの確認なども含みます。
### どんなものなのかはやっているうちに段々と理解していけばOKです。

では実際に演算のいくつかを試してみましょう。

# 4.1 数値の演算
以下のようにコードを編集します。

```python:Untitled-1.py
hensu1 = 1
hensu2 = 3
hensu3 = hensu1 + hensu2
print(hensu1)
print(hensu2)
print(hensu3)
```
```:実行結果
1
3
4
```
ここでは、hensu1, hensu2にそれぞれ1, 3を代入し、それらを足し合わせた(加算した)結果をhensu3に代入しています。


# 4.2 演算子
演算を行う際に使う記号を **『演算子』** と呼びます。
Pythonには『+』以外にも様々な演算子があります。
数に限って言えば、
- 足し算(加算) → +
- 引き算(減算) → ‐
- かけ算(乗算) → *
- 割り算(除算) → /

等の意味を持ちます。
ではこれらを使って、他の計算もしてみます。
```python:Untitled-1.py
hensu1 = 9
hensu2 = 3
print(hensu1)
print(hensu2)
hensu3 = hensu1 - hensu2
print(hensu3)
hensu3 = hensu1 * hensu2
print(hensu3)
hensu3 = hensu1 / hensu2
print(hensu3)
```
```:実行結果
9
3
6
27
3.0
```
もちろん演算子はこの他にも沢山存在しますが、今回は省略します。

# 4.3 文字列の演算
次は以下のコードで試してみます。

```python:Untitled-1.py
hensu1 = 'Hello '
hensu2 = 'World!'
hensu3 = hensu1 + hensu2
print(hensu1)
print(hensu2)
print(hensu3)
```

```:実行結果
Hello 
World!
Hello World!
```

Helloのような文字列も数と同様に演算することが出来ます。
今回のように文字列をそのまま加算した場合は、単純に文字列の結合となります。

## 4.4 リストの演算
リストも同様にして演算を行うことが出来ます。

```python:Untitled-1.py
list_hensu1 = [1, 3, 5, 7]
list_hensu2 = ['1', '3', '5', '7']
list_hensu3 = list_hensu1 + list_hensu2
print(list_hensu1)
print(list_hensu2)
print(list_hensu3)
```
```:実行結果
[1, 3, 5, 7]
['1', '3', '5', '7']
[1, 3, 5, 7, '1', '3', '5', '7']
```
リストの加算は、このようにリストの結合になります。

### 他にも、興味が湧いたら自分で様々な演算を試してみると良いと思います！

# おわりに
今回はPythonプログラミングの基礎的な部分を解説しました！
もう既に難しいと思う方もいらっしゃるかもしれませんが、やっていく内に段々と慣れていくと思います。今回で覚えきれなくても、忘れたらまた確認すればいいだけの話です。
まずは何が出来るのかを知って、プログラミングへの興味を深めるほうが大切だと思っています！

次回は、もう少し踏み込んだプログラミングの基本Part2を解説します！