---
# System prepended metadata

title: 【50期】Python勉強会　第6回　課題
tags: [Python勉強会]

---

###### tags: `Python勉強会`

# Python勉強会　第6回　課題

:::info
**＜第6回Web会議日程＞**
2023年04月19日（水）　19:00から

:::

## ．．．課題の前に

------

課題ではAWS LambdaやLineを利用します。
これらをPythonで利用するための固有の知識についてまずは記載します。

### ・「lambda_handler」関数と「lambda_function.py」ファイル
「最初に処理をする関数」と「その関数が記載されたファイル名」です。
今回はデフォルトの名前で用意しています。
「fm_pys_XXX」フォルダ直下に「lambda_function.py」ファイルがあり、
その19行目に「lambda_handler」関数が確認できると思います。
lambda関数を呼び出すと、処理はそこから動き始めます。

### ・「evnet」変数
lambda_handler関数の第1引数で、関数を呼び出す際に様々な情報が格納されます。
Lineから送信したメッセージもこの中に格納されます。
json形式で格納されているため、送信メッセージを取り出すためには以下のように指定します。

json.loads(event['body'])['events'][0]['message']['text']


### ・Lineへの応答
Lineへの応答は特定のURLへ情報を送信することで実現しています。
12～17行目でURLやメソッド、ヘッダを定義。
23～26行目で応答メッセージをテキスト形式で定義。
29行目で「params['messages'][0]['text']」に応答メッセージを格納。
32～38行目で設定した情報を送信。

応答メッセージを変更したい場合は、29行目を変更することで対応できます。

## 課題

#### if文を利用して受信メッセージを判定し、応答メッセージを変更する

------

### ・if文について　<span style="color:red">※おさらいの内容</span>

:::warning

**<if文の基本構成>**
```javascript
if 条件式1:
    条件1がTrueの場合に実行するコード
elif 条件式2:
    条件2がTrueの場合に実行するコード
else:
    どの条件もTrueではない場合に実行するコード
```

上記例では、最初に条件式1が評価されます。
　条件式1がTrueの場合、条件1がTrueの場合に実行するコードが実行されます。
　条件式1がFalseの場合、次に条件式2が評価されます。
　条件式2がTrueの場合、条件2がTrueの場合に実行するコードが実行されます。
　条件式2がFalseの場合、elseブロックのコードが実行されます。

:::

### 注意事項
・Lineで送信したメッセージは講師には見えてしまうため、私的な内容の送信は控えてください。
・Lambda関数がサポートしているPythonは3.9のため、match文は利用できません。
　[match文について](https://docs.python.org/ja/3/tutorial/controlflow.html#match-statements)

