Pythonの基礎を学ぼう【#1】

# はじめに
今回からPythonについて触れていきます。（コード中心の内容にしました！）
環境はGoogle Colaboratoryを使います。

# Pythonとは？
Pythonは1990年代初頭, オランダ出身のグイド・ヴァンロッサム氏が開発したプログラミング言語。

特徴として
**・シンプルで読みやすい文法**
**・作成したプログラムの実行結果をすぐに確認できる**
**・記述したコードを1行ずつ翻訳し実行可能（インタプリタ型言語ともいう）**

などが挙げられます。

# さっそく使ってみよう
まずはGoogle Chromeからドライブを開いてGoogleColabを開きます。
もしGoogle Colaboratoryがインストールされていなかったら事前にインストールしておく

![スクリーンショット 2025-05-20 111236.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3903628/24a4c2a2-e55c-48ca-825e-44aa160ac353.png)

# Pythonで計算する
ここでは簡単な計算を行います。
行の先頭に「#」記号をつけることでコメントを残すことが出来ます。
※プログラムの実行には影響しないので、コードの説明などを残したいときなどに使える

```diff_python
100 + 100 #足し算
```
```diff_python
150 - 100 #引き算
```

```diff_python
100 * 20 #掛け算
```

```diff_python
100 / 20 #割り算
```

```diff_python
100 % 20 #割り算の余り
```

```diff_python
2**3 #べき乗（今回だと2の3乗）
```

# ここで問題！
計算結果が「150」になるよう式を作りなさい。ただし、足し算、引き算、掛け算、割り算を一回は使うこと。

<!-- open属性なし -->
<details><summary>解答はこちら（解いてから見る）</summary>

この問題、たくさんの答えがあります。
下のコードは一例です。

```diff_python
200 / 2 * 1 + 100 - 50
```
</details>

# データを上手く扱おう
普段の生活でもデータの値や文字を全部暗記するのは結構大変です。そこで「変数」をうまく使うことで数字や値を一定期間保存することが出来ます。箱のようなイメージです。

次のコードでは2万円のギターと5万円のピアノの合計(7万円)を表示します。

```diff_python
#数値の場合
guitar = 20000
piano = 50000
total = guitar + piano
print(total) 
```

ここで、もしギターの値段が値上がりして3万円になったとします
```guitar```という変数に3万円を入れると…

```diff_python
#数値の場合
guitar = 20000
guitar = 30000
piano = 50000
total = guitar + piano
print(total) 
```

このように変数の値が上書きされて合計が8万円になります。

また数値だけではなく文字列も変数に入れることが出来ます。

```diff_python
#文字列の場合
year = "2025年"
month = "5月"
day = "20日"
today = year + month + day
print(today)
```

このコードを実行すると文字が連結されて表示されます。

# ここで問題！
数値の「12345」を表示しなさい。ただし、変数「a」,「b」,「c」,「total」を使用すること。

<!-- open属性なし -->
<details><summary>解答はこちら（解いてから見る）</summary>

この問題、たくさんの答えがあります。
下のコードは一例です。

```diff_python
a = 0
b = 0
c = 12345
total = a + b + c
print(total)
```

</details>



# 変数のルールについて
変数は自由に名前を決められますが、例外もあります。
一文字目に数字が入っていたり予約語は使えません。

```diff_python
1guitar = 20000
```

```diff_python
#予約語
and = 100
```

予約語についてはコードで確認ができます。
```diff_python
import keyword
keyword.kwlist
```

ちなみに、関数名なども基本的には変数名にしないほうがいいです。
ほかの人が一目でわかりやすいような変数名を付けるのが大事！

# リスト型のデータ
リストを使うことでデータをひとまとまりにすることが出来ます。データ分析を行う際にもよく出てきます。
リストに格納されているそれぞれの値を**要素**, 先頭から**添え字**または**インデックス**といった管理番号が振られます。

```diff_python
game_category = ["Action", "RPG", "racing"]
print(game_category)


print(game_category[0]) #1つ目
print(game_category[1]) #2つ目
print(game_category[2]) #3つ目
```

# ここで問題！
Aさんは国語で85点、数学で60点、英語で70点でした。これらを合計した値を表示してください。ただしリストを使うこと。（リスト名・変数名自由）

<!-- open属性なし -->
<details><summary>解答はこちら（解いてから見る）</summary>

scoresというリストを作ったら各要素を足していく形になります。
ちなみにf文字列を使うことで変数を埋め込んで表示させることが出来ます。

```diff_python
scores = [85, 60, 70]
total = scores[0] + scores[1] + scores[2]
print(f'合計は{total}点です')
```

またsum関数を使うことでより簡単に記述することが出来ます。

```diff_python
scores = [85, 60, 70]
total = sum(scores)
print(f'合計は{total}点です')
```

</details>

# リスト操作を行う
リストに要素を追加したり削除、変更することがよくあります。ここでは操作について説明します。

## 要素の追加
ここではリストに新しい要素```Fukuoka```を追加しています。
```diff_python
city = ["Tokyo", "Osaka"]
city.append("Fukuoka")
print(city)
```

## 要素の削除
ここではリストにある```Fukuoka```の要素を削除しています。
```diff_python
city = ["Tokyo", "Osaka", "Fukuoka"]
city.remove("Fukuoka")
print(city)
```

## 要素の変更
ここではリスト０番目の要素を```Fukuoka```に変更しています。
```diff_python
city = ["Tokyo", "Osaka", "Fukuoka"]
city[0]=("Okinawa")
print(city)
```

## スライス指定
ここではリスト内の選択した範囲を表示しています。
```diff_python
city = ["Tokyo", "Osaka", "Nagoya", "Sapporo", "Fukuoka"]
print(city[1:4])
print(city[1:])
print(city[:4])
```

# 辞書型のデータ
辞書型のデータは見出しと内容がセットになっています。今回は「春夏秋冬」とそれに対応する「イベント」を辞書にします。

```diff_python
season = {'春':'お花見', '夏':'花火大会', '秋':'ハロウィン', '冬':'クリスマス'}
print(season['春'])
print(season['夏'])
print(season['秋'])
print(season['冬'])
```

このようにキー（今回は春夏秋冬）に設定したデータが表示されます。

また辞書型のデータを全て確認することもできます
```diff_python
#keyの確認
season.keys()
```

```diff_python
#valueの確認
season.values()
```

# タプル型のデータ
タプルは複数の要素からなる一組を表します。例えば「taroさんが5月20日」に健康診断を受けたとします。
そして「身長」をデータに残したい場合、

```diff_python
health_check = {}
key = ('taro','5/20')
health_check[key] = 170
print(health_check)
```

これを実行することで```{('taro', '5/20'): 170}```という複数の要素の組をキーに設定できました。

# ここで問題！
「jiroさんが4月20日」に健康診断を受けていた。身長は165cmとのこと。このデータを先ほどのデータに追加しなさい。変数名などは自由に変えてもよい。

<!-- open属性なし -->
<details><summary>解答はこちら（解いてから見る）</summary>

```diff_python
health_check = {}
key_taro = ('taro','5/20')
key_jiro = ('jiro', '4/20')
health_check[key_taro] = 170
health_check[key_jiro] = 165
print(health_check)
```

これでjiroさんの情報も入りました。
</details>

# ★最終問題★
これまで習ったリスト型、辞書型、タプル型のいずれかを使って好きなデータを作成し表示させなさい。
ただし、各データについては何かしらの関係性があるものとする（例えば春夏秋冬・都道府県など）。


# 参考文献
この記事は以下の情報を参考にして執筆しました。


[確かな力が身につくPython「超」入門 (確かな力が身につく「超」入門シリーズ)](https://www.amazon.co.jp/%E7%A2%BA%E3%81%8B%E3%81%AA%E5%8A%9B%E3%81%8C%E8%BA%AB%E3%81%AB%E3%81%A4%E3%81%8FPython%E3%80%8C%E8%B6%85%E3%80%8D%E5%85%A5%E9%96%80-%E7%A2%BA%E3%81%8B%E3%81%AA%E5%8A%9B%E3%81%8C%E8%BA%AB%E3%81%AB%E3%81%A4%E3%81%8F%E3%80%8C%E8%B6%85%E3%80%8D%E5%85%A5%E9%96%80%E3%82%B7%E3%83%AA%E3%83%BC%E3%82%BA-%E9%8E%8C%E7%94%B0-%E6%AD%A3%E6%B5%A9/dp/4797384409)

[スッキリわかるPython入門 第2版 (スッキリわかる入門シリーズ)](https://www.amazon.co.jp/%E3%82%B9%E3%83%83%E3%82%AD%E3%83%AA%E3%82%8F%E3%81%8B%E3%82%8BPython%E5%85%A5%E9%96%80-%E7%AC%AC2%E7%89%88-%E3%82%B9%E3%83%83%E3%82%AD%E3%83%AA%E3%82%8F%E3%81%8B%E3%82%8B%E5%85%A5%E9%96%80%E3%82%B7%E3%83%AA%E3%83%BC%E3%82%BA-%E5%9B%BD%E6%9C%AC-%E5%A4%A7%E6%82%9F/dp/4295016365/ref=pd_lpo_d_sccl_1/357-4097415-1030165?pd_rd_w=Bff0K&content-id=amzn1.sym.855d8f70-df76-4181-80b0-56e48ae3bb9b&pf_rd_p=855d8f70-df76-4181-80b0-56e48ae3bb9b&pf_rd_r=6P5B2BTEV9JTKQAXEDRV&pd_rd_wg=pGnzd&pd_rd_r=f0b33b55-8669-49f5-8027-49649fe1966c&pd_rd_i=4295016365&psc=1)