## 【wk15_1214】檔案與例外處理_line貼圖收集器
## 【inclass practice】
## 【ch09_檔案與例外處理】
9.1 檔案的操作
- 開啟檔案的語法
- 開啟檔案的模式
- 使用with...as 語法
- 檔案處理
9.2 檔案和目錄管理
- os.path 模組
- os 模組
9.3 例外處理
- try...except...else...finally 語法-
- try...except...else...finally 使用方法
- try...except 常用錯誤表
```python
# line貼圖收集器
import requests, json, os
from bs4 import BeautifulSoup
url = 'https://store.line.me/stickershop/product/8991459/zh-Hant' #人的日常
html = requests.get(url)
sp = BeautifulSoup(html.text, 'html.parser')
#datas = sp.find_all('li', {'class':'mdCMN09Li FnStickerPreviewItem'})
datas = sp.find_all('li', {'class':'mdCMN09Li FnStickerPreviewItem static-sticker'})
# 建立目錄儲存圖片
images_dir= "line_image/"
if not os.path.exists(images_dir):
os.mkdir(images_dir)
for data in datas:
imginfo = json.loads(data.get('data-preview'))
id = imginfo['id']
imgfile = requests.get(imginfo['staticUrl'])
full_path = images_dir + id + '.png'
with open(full_path, 'wb') as f:
f.write(imgfile.content)
print(full_path)
```
line_image/230054638.png
line_image/230054639.png
line_image/230054640.png
line_image/230054641.png
line_image/230054642.png
line_image/230054643.png
line_image/230054644.png
line_image/230054645.png
line_image/230054646.png
line_image/230054647.png
line_image/230054648.png
line_image/230054649.png
line_image/230054650.png
line_image/230054651.png
line_image/230054652.png
line_image/230054653.png
line_image/230054654.png
line_image/230054655.png
line_image/230054656.png
line_image/230054657.png
line_image/230054658.png
line_image/230054659.png
line_image/230054660.png
line_image/230054661.png
line_image/230054662.png
line_image/230054663.png
line_image/230054664.png
line_image/230054665.png
line_image/230054666.png
line_image/230054667.png
line_image/230054668.png
line_image/230054669.png
```python
#stickershop 完整
import requests, json, os
from bs4 import BeautifulSoup
#url = 'https://store.line.me/stickershop/product/8991459/zh-Hant' #人的日常
url = 'https://store.line.me/stickershop/product/24885624/zh-Hant' #喵咪跟兔嘰
html = requests.get(url)
sp = BeautifulSoup(html.text, 'html.parser')
datas = sp.find_all('li', {'class':'mdCMN09Li FnStickerPreviewItem static-sticker'})
imges_dir = "line_image/"
if not os.path.exists(imges_dir):
os.mkdir(imges_dir)
for data in datas:
imginfo = json.loads(data.get('data-preview'))
id = imginfo['id']
imgfile = requests.get(imginfo['staticUrl'])
full_path = imges_dir + id + '.png'
with open(full_path, 'wb') as f:
f.write(imgfile.content)
print(full_path)
```
line_image/632876774.png
line_image/632876775.png
line_image/632876776.png
line_image/632876777.png
line_image/632876778.png
line_image/632876779.png
line_image/632876780.png
line_image/632876781.png
line_image/632876782.png
line_image/632876783.png
line_image/632876784.png
line_image/632876785.png
line_image/632876786.png
line_image/632876787.png
line_image/632876788.png
line_image/632876789.png
line_image/632876790.png
line_image/632876791.png
line_image/632876792.png
line_image/632876793.png
line_image/632876794.png
line_image/632876795.png
line_image/632876796.png
line_image/632876797.png
line_image/632876798.png
line_image/632876799.png
line_image/632876800.png
line_image/632876801.png
line_image/632876802.png
line_image/632876803.png
line_image/632876804.png
line_image/632876805.png
line_image/632876806.png
line_image/632876807.png
line_image/632876808.png
line_image/632876809.png
line_image/632876810.png
line_image/632876811.png
line_image/632876812.png
line_image/632876813.png
```python
#表情貼-1
import requests, json, os
from bs4 import BeautifulSoup
#url = 'https://store.line.me/stickershop/product/8991459/zh-Hant' #人的日常
#url = 'https://store.line.me/stickershop/product/24885624/zh-Hant' #喵咪跟兔嘰
url = 'https://store.line.me/emojishop/product/646b23ff903b5543729ffa4d/zh-Hant' #超實用❤生活用語對話框
#url = 'https://store.line.me/emojishop/product/61b04cbaf864dd7f3763ab8b/zh-Hant' #超實用❤手勢/符號 動態表情貼
html = requests.get(url)
html
```
<Response [200]>
```python
#表情貼-2
sp = BeautifulSoup(html.text, 'html.parser')
#datas = sp.find_all('li', {'class':'mdCMN09Li FnStickerPreviewItem static-sticker'})
#datas = sp.find_all('li', {'class':'mdCMN09Li FnStickerPreviewItem'})
datas = sp.find_all('li', {'class':'mdCMN09Li FnStickerPreviewItem'})
print(datas)
```
[<li class="mdCMN09Li FnStickerPreviewItem" data-preview='{ "type" : "static", "id" : "001", "staticUrl" : "https://stickershop.line-scdn.net/sticonshop/v1/sticon/646b23ff903b5543729ffa4d/iPhone/001.png?v=1", "fallbackStaticUrl" : "https://stickershop.line-scdn.net/sticonshop/v1/sticon/646b23ff903b5543729ffa4d/iPhone/001.png?v=1", "animationUrl" : ""}'>
<div class="mdCMN09LiInner FnImage">
<span class="mdCMN09Image" style="background-image:url(https://stickershop.line-scdn.net/sticonshop/v1/sticon/646b23ff903b5543729ffa4d/iPhone/001.png?v=1);"></span>
</div>
<div class="mdCMN09ImgPreview FnPreviewImage MdNonDisp">
<span class="mdCMN09Image FnPreview" style="background-image:url(https://stickershop.line-scdn.net/sticonshop/v1/sticon/646b23ff903b5543729ffa4d/iPhone/001.png?v=1);"></span>
</div>
</li>, <li class="mdCMN09Li FnStickerPreviewItem" data-preview='{ "type" : "static", "id" : "002", "staticUrl" : "https://stickershop.line-scdn.net/sticonshop/v1/sticon/646b23ff903b5543729ffa4d/iPhone/002.png?v=1", "fallbackStaticUrl" : "https://stickershop.line-scdn.net/sticonshop/v1/sticon/646b23ff903b5543729ffa4d/iPhone/002.png?v=1", "animationUrl" : ""}'>
<div class="mdCMN09LiInner FnImage">
<span class="mdCMN09Image" style="background-image:url(https://stickershop.line-scdn.net/sticonshop/v1/sticon/646b23ff903b5543729ffa4d/iPhone/002.png?v=1);"></span>
</div>
<div class="mdCMN09ImgPreview FnPreviewImage MdNonDisp">
<span class="mdCMN09Image FnPreview" style="background-image:url(https://stickershop.line-scdn.net/sticonshop/v1/sticon/646b23ff903b5543729ffa4d/iPhone/002.png?v=1);"></span>
</div>
</li>, <li class="mdCMN09Li FnStickerPreviewItem" data-preview='{ "type" : "static", "id" : "003", "staticUrl" : "https://stickershop.line-scdn.net/sticonshop/v1/sticon/646b23ff903b5543729ffa4d/iPhone/003.png?v=1", "fallbackStaticUrl" : "https://stickershop.line-scdn.net/sticonshop/v1/sticon/646b23ff903b5543729ffa4d/iPhone/003.png?v=1", "animationUrl" : ""}'>
<div class="mdCMN09LiInner FnImage">
<span class="mdCMN09Image" style="background-image:url(https://stickershop.line-scdn.net/sticonshop/v1/sticon/646b23ff903b5543729ffa4d/iPhone/003.png?v=1);"></span>
</div>
<div class="mdCMN09ImgPreview FnPreviewImage MdNonDisp">
<span class="mdCMN09Image FnPreview" style="background-image:url(https://stickershop.line-scdn.net/sticonshop/v1/sticon/646b23ff903b5543729ffa4d/iPhone/003.png?v=1);"></span>
</div>
</li>, <li class="mdCMN09Li FnStickerPreviewItem" data-preview='{ "type" : "static", "id" : "004", "staticUrl" : "https://stickershop.line-scdn.net/sticonshop/v1/sticon/646b23ff903b5543729ffa4d/iPhone/004.png?v=1", "fallbackStaticUrl" : "https://stickershop.line-scdn.net/sticonshop/v1/sticon/646b23ff903b5543729ffa4d/iPhone/004.png?v=1", "animationUrl" : ""}'>
<div class="mdCMN09LiInner FnImage">
<span class="mdCMN09Image" style="background-image:url(https://stickershop.line-scdn.net/sticonshop/v1/sticon/646b23ff903b5543729ffa4d/iPhone/004.png?v=1);"></span>
</div>
<div class="mdCMN09ImgPreview FnPreviewImage MdNonDisp">
<span class="mdCMN09Image FnPreview" style="background-image:url(https://stickershop.line-scdn.net/sticonshop/v1/sticon/646b23ff903b5543729ffa4d/iPhone/004.png?v=1);"></span>
</div>
</li>, <li class="mdCMN09Li FnStickerPreviewItem" data-preview='{ "type" : "static", "id" : "005", "staticUrl" : "https://stickershop.line-scdn.net/sticonshop/v1/sticon/646b23ff903b5543729ffa4d/iPhone/005.png?v=1", "fallbackStaticUrl" : "https://stickershop.line-scdn.net/sticonshop/v1/sticon/646b23ff903b5543729ffa4d/iPhone/005.png?v=1", "animationUrl" : ""}'>
<div class="mdCMN09LiInner FnImage">
<span class="mdCMN09Image" style="background-image:url(https://stickershop.line-scdn.net/sticonshop/v1/sticon/646b23ff903b5543729ffa4d/iPhone/005.png?v=1);"></span>
</div>
<div class="mdCMN09ImgPreview FnPreviewImage MdNonDisp">
<span class="mdCMN09Image FnPreview" style="background-image:url(https://stickershop.line-scdn.net/sticonshop/v1/sticon/646b23ff903b5543729ffa4d/iPhone/005.png?v=1);"></span>
</div>
</li>, <li class="mdCMN09Li FnStickerPreviewItem" data-preview='{ "type" : "static", "id" : "006", "staticUrl" : "https://stickershop.line-scdn.net/sticonshop/v1/sticon/646b23ff903b5543729ffa4d/iPhone/006.png?v=1", "fallbackStaticUrl" : "https://stickershop.line-scdn.net/sticonshop/v1/sticon/646b23ff903b5543729ffa4d/iPhone/006.png?v=1", "animationUrl" : ""}'>
<div class="mdCMN09LiInner FnImage">
<span class="mdCMN09Image" style="background-image:url(https://stickershop.line-scdn.net/sticonshop/v1/sticon/646b23ff903b5543729ffa4d/iPhone/006.png?v=1);"></span>
</div>
<div class="mdCMN09ImgPreview FnPreviewImage MdNonDisp">
<span class="mdCMN09Image FnPreview" style="background-image:url(https://stickershop.line-scdn.net/sticonshop/v1/sticon/646b23ff903b5543729ffa4d/iPhone/006.png?v=1);"></span>
</div>
</li>, <li class="mdCMN09Li FnStickerPreviewItem" data-preview='{ "type" : "static", "id" : "007", "staticUrl" : "https://stickershop.line-scdn.net/sticonshop/v1/sticon/646b23ff903b5543729ffa4d/iPhone/007.png?v=1", "fallbackStaticUrl" : "https://stickershop.line-scdn.net/sticonshop/v1/sticon/646b23ff903b5543729ffa4d/iPhone/007.png?v=1", "animationUrl" : ""}'>
<div class="mdCMN09LiInner FnImage">
<span class="mdCMN09Image" style="background-image:url(https://stickershop.line-scdn.net/sticonshop/v1/sticon/646b23ff903b5543729ffa4d/iPhone/007.png?v=1);"></span>
</div>
<div class="mdCMN09ImgPreview FnPreviewImage MdNonDisp">
<span class="mdCMN09Image FnPreview" style="background-image:url(https://stickershop.line-scdn.net/sticonshop/v1/sticon/646b23ff903b5543729ffa4d/iPhone/007.png?v=1);"></span>
</div>
</li>, <li class="mdCMN09Li FnStickerPreviewItem" data-preview='{ "type" : "static", "id" : "008", "staticUrl" : "https://stickershop.line-scdn.net/sticonshop/v1/sticon/646b23ff903b5543729ffa4d/iPhone/008.png?v=1", "fallbackStaticUrl" : "https://stickershop.line-scdn.net/sticonshop/v1/sticon/646b23ff903b5543729ffa4d/iPhone/008.png?v=1", "animationUrl" : ""}'>
<div class="mdCMN09LiInner FnImage">
<span class="mdCMN09Image" style="background-image:url(https://stickershop.line-scdn.net/sticonshop/v1/sticon/646b23ff903b5543729ffa4d/iPhone/008.png?v=1);"></span>
</div>
<div class="mdCMN09ImgPreview FnPreviewImage MdNonDisp">
<span class="mdCMN09Image FnPreview" style="background-image:url(https://stickershop.line-scdn.net/sticonshop/v1/sticon/646b23ff903b5543729ffa4d/iPhone/008.png?v=1);"></span>
</div>
</li>, <li class="mdCMN09Li FnStickerPreviewItem" data-preview='{ "type" : "static", "id" : "009", "staticUrl" : "https://stickershop.line-scdn.net/sticonshop/v1/sticon/646b23ff903b5543729ffa4d/iPhone/009.png?v=1", "fallbackStaticUrl" : "https://stickershop.line-scdn.net/sticonshop/v1/sticon/646b23ff903b5543729ffa4d/iPhone/009.png?v=1", "animationUrl" : ""}'>
<div class="mdCMN09LiInner FnImage">
<span class="mdCMN09Image" style="background-image:url(https://stickershop.line-scdn.net/sticonshop/v1/sticon/646b23ff903b5543729ffa4d/iPhone/009.png?v=1);"></span>
</div>
<div class="mdCMN09ImgPreview FnPreviewImage MdNonDisp">
<span class="mdCMN09Image FnPreview" style="background-image:url(https://stickershop.line-scdn.net/sticonshop/v1/sticon/646b23ff903b5543729ffa4d/iPhone/009.png?v=1);"></span>
</div>
</li>, <li class="mdCMN09Li FnStickerPreviewItem" data-preview='{ "type" : "static", "id" : "010", "staticUrl" : "https://stickershop.line-scdn.net/sticonshop/v1/sticon/646b23ff903b5543729ffa4d/iPhone/010.png?v=1", "fallbackStaticUrl" : "https://stickershop.line-scdn.net/sticonshop/v1/sticon/646b23ff903b5543729ffa4d/iPhone/010.png?v=1", "animationUrl" : ""}'>
<div class="mdCMN09LiInner FnImage">
<span class="mdCMN09Image" style="background-image:url(https://stickershop.line-scdn.net/sticonshop/v1/sticon/646b23ff903b5543729ffa4d/iPhone/010.png?v=1);"></span>
</div>
<div class="mdCMN09ImgPreview FnPreviewImage MdNonDisp">
<span class="mdCMN09Image FnPreview" style="background-image:url(https://stickershop.line-scdn.net/sticonshop/v1/sticon/646b23ff903b5543729ffa4d/iPhone/010.png?v=1);"></span>
</div>
</li>, <li class="mdCMN09Li FnStickerPreviewItem" data-preview='{ "type" : "static", "id" : "011", "staticUrl" : "https://stickershop.line-scdn.net/sticonshop/v1/sticon/646b23ff903b5543729ffa4d/iPhone/011.png?v=1", "fallbackStaticUrl" : "https://stickershop.line-scdn.net/sticonshop/v1/sticon/646b23ff903b5543729ffa4d/iPhone/011.png?v=1", "animationUrl" : ""}'>
<div class="mdCMN09LiInner FnImage">
<span class="mdCMN09Image" style="background-image:url(https://stickershop.line-scdn.net/sticonshop/v1/sticon/646b23ff903b5543729ffa4d/iPhone/011.png?v=1);"></span>
</div>
<div class="mdCMN09ImgPreview FnPreviewImage MdNonDisp">
<span class="mdCMN09Image FnPreview" style="background-image:url(https://stickershop.line-scdn.net/sticonshop/v1/sticon/646b23ff903b5543729ffa4d/iPhone/011.png?v=1);"></span>
</div>
</li>, <li class="mdCMN09Li FnStickerPreviewItem" data-preview='{ "type" : "static", "id" : "012", "staticUrl" : "https://stickershop.line-scdn.net/sticonshop/v1/sticon/646b23ff903b5543729ffa4d/iPhone/012.png?v=1", "fallbackStaticUrl" : "https://stickershop.line-scdn.net/sticonshop/v1/sticon/646b23ff903b5543729ffa4d/iPhone/012.png?v=1", "animationUrl" : ""}'>
<div class="mdCMN09LiInner FnImage">
<span class="mdCMN09Image" style="background-image:url(https://stickershop.line-scdn.net/sticonshop/v1/sticon/646b23ff903b5543729ffa4d/iPhone/012.png?v=1);"></span>
</div>
<div class="mdCMN09ImgPreview FnPreviewImage MdNonDisp">
<span class="mdCMN09Image FnPreview" style="background-image:url(https://stickershop.line-scdn.net/sticonshop/v1/sticon/646b23ff903b5543729ffa4d/iPhone/012.png?v=1);"></span>
</div>
</li>, <li class="mdCMN09Li FnStickerPreviewItem" data-preview='{ "type" : "static", "id" : "013", "staticUrl" : "https://stickershop.line-scdn.net/sticonshop/v1/sticon/646b23ff903b5543729ffa4d/iPhone/013.png?v=1", "fallbackStaticUrl" : "https://stickershop.line-scdn.net/sticonshop/v1/sticon/646b23ff903b5543729ffa4d/iPhone/013.png?v=1", "animationUrl" : ""}'>
<div class="mdCMN09LiInner FnImage">
<span class="mdCMN09Image" style="background-image:url(https://stickershop.line-scdn.net/sticonshop/v1/sticon/646b23ff903b5543729ffa4d/iPhone/013.png?v=1);"></span>
</div>
<div class="mdCMN09ImgPreview FnPreviewImage MdNonDisp">
<span class="mdCMN09Image FnPreview" style="background-image:url(https://stickershop.line-scdn.net/sticonshop/v1/sticon/646b23ff903b5543729ffa4d/iPhone/013.png?v=1);"></span>
</div>
</li>, <li class="mdCMN09Li FnStickerPreviewItem" data-preview='{ "type" : "static", "id" : "014", "staticUrl" : "https://stickershop.line-scdn.net/sticonshop/v1/sticon/646b23ff903b5543729ffa4d/iPhone/014.png?v=1", "fallbackStaticUrl" : "https://stickershop.line-scdn.net/sticonshop/v1/sticon/646b23ff903b5543729ffa4d/iPhone/014.png?v=1", "animationUrl" : ""}'>
<div class="mdCMN09LiInner FnImage">
<span class="mdCMN09Image" style="background-image:url(https://stickershop.line-scdn.net/sticonshop/v1/sticon/646b23ff903b5543729ffa4d/iPhone/014.png?v=1);"></span>
</div>
<div class="mdCMN09ImgPreview FnPreviewImage MdNonDisp">
<span class="mdCMN09Image FnPreview" style="background-image:url(https://stickershop.line-scdn.net/sticonshop/v1/sticon/646b23ff903b5543729ffa4d/iPhone/014.png?v=1);"></span>
</div>
</li>, <li class="mdCMN09Li FnStickerPreviewItem" data-preview='{ "type" : "static", "id" : "015", "staticUrl" : "https://stickershop.line-scdn.net/sticonshop/v1/sticon/646b23ff903b5543729ffa4d/iPhone/015.png?v=1", "fallbackStaticUrl" : "https://stickershop.line-scdn.net/sticonshop/v1/sticon/646b23ff903b5543729ffa4d/iPhone/015.png?v=1", "animationUrl" : ""}'>
<div class="mdCMN09LiInner FnImage">
<span class="mdCMN09Image" style="background-image:url(https://stickershop.line-scdn.net/sticonshop/v1/sticon/646b23ff903b5543729ffa4d/iPhone/015.png?v=1);"></span>
</div>
<div class="mdCMN09ImgPreview FnPreviewImage MdNonDisp">
<span class="mdCMN09Image FnPreview" style="background-image:url(https://stickershop.line-scdn.net/sticonshop/v1/sticon/646b23ff903b5543729ffa4d/iPhone/015.png?v=1);"></span>
</div>
</li>, <li class="mdCMN09Li FnStickerPreviewItem" data-preview='{ "type" : "static", "id" : "016", "staticUrl" : "https://stickershop.line-scdn.net/sticonshop/v1/sticon/646b23ff903b5543729ffa4d/iPhone/016.png?v=1", "fallbackStaticUrl" : "https://stickershop.line-scdn.net/sticonshop/v1/sticon/646b23ff903b5543729ffa4d/iPhone/016.png?v=1", "animationUrl" : ""}'>
<div class="mdCMN09LiInner FnImage">
<span class="mdCMN09Image" style="background-image:url(https://stickershop.line-scdn.net/sticonshop/v1/sticon/646b23ff903b5543729ffa4d/iPhone/016.png?v=1);"></span>
</div>
<div class="mdCMN09ImgPreview FnPreviewImage MdNonDisp">
<span class="mdCMN09Image FnPreview" style="background-image:url(https://stickershop.line-scdn.net/sticonshop/v1/sticon/646b23ff903b5543729ffa4d/iPhone/016.png?v=1);"></span>
</div>
</li>, <li class="mdCMN09Li FnStickerPreviewItem" data-preview='{ "type" : "static", "id" : "017", "staticUrl" : "https://stickershop.line-scdn.net/sticonshop/v1/sticon/646b23ff903b5543729ffa4d/iPhone/017.png?v=1", "fallbackStaticUrl" : "https://stickershop.line-scdn.net/sticonshop/v1/sticon/646b23ff903b5543729ffa4d/iPhone/017.png?v=1", "animationUrl" : ""}'>
<div class="mdCMN09LiInner FnImage">
<span class="mdCMN09Image" style="background-image:url(https://stickershop.line-scdn.net/sticonshop/v1/sticon/646b23ff903b5543729ffa4d/iPhone/017.png?v=1);"></span>
</div>
<div class="mdCMN09ImgPreview FnPreviewImage MdNonDisp">
<span class="mdCMN09Image FnPreview" style="background-image:url(https://stickershop.line-scdn.net/sticonshop/v1/sticon/646b23ff903b5543729ffa4d/iPhone/017.png?v=1);"></span>
</div>
</li>, <li class="mdCMN09Li FnStickerPreviewItem" data-preview='{ "type" : "static", "id" : "018", "staticUrl" : "https://stickershop.line-scdn.net/sticonshop/v1/sticon/646b23ff903b5543729ffa4d/iPhone/018.png?v=1", "fallbackStaticUrl" : "https://stickershop.line-scdn.net/sticonshop/v1/sticon/646b23ff903b5543729ffa4d/iPhone/018.png?v=1", "animationUrl" : ""}'>
<div class="mdCMN09LiInner FnImage">
<span class="mdCMN09Image" style="background-image:url(https://stickershop.line-scdn.net/sticonshop/v1/sticon/646b23ff903b5543729ffa4d/iPhone/018.png?v=1);"></span>
</div>
<div class="mdCMN09ImgPreview FnPreviewImage MdNonDisp">
<span class="mdCMN09Image FnPreview" style="background-image:url(https://stickershop.line-scdn.net/sticonshop/v1/sticon/646b23ff903b5543729ffa4d/iPhone/018.png?v=1);"></span>
</div>
</li>, <li class="mdCMN09Li FnStickerPreviewItem" data-preview='{ "type" : "static", "id" : "019", "staticUrl" : "https://stickershop.line-scdn.net/sticonshop/v1/sticon/646b23ff903b5543729ffa4d/iPhone/019.png?v=1", "fallbackStaticUrl" : "https://stickershop.line-scdn.net/sticonshop/v1/sticon/646b23ff903b5543729ffa4d/iPhone/019.png?v=1", "animationUrl" : ""}'>
<div class="mdCMN09LiInner FnImage">
<span class="mdCMN09Image" style="background-image:url(https://stickershop.line-scdn.net/sticonshop/v1/sticon/646b23ff903b5543729ffa4d/iPhone/019.png?v=1);"></span>
</div>
<div class="mdCMN09ImgPreview FnPreviewImage MdNonDisp">
<span class="mdCMN09Image FnPreview" style="background-image:url(https://stickershop.line-scdn.net/sticonshop/v1/sticon/646b23ff903b5543729ffa4d/iPhone/019.png?v=1);"></span>
</div>
</li>, <li class="mdCMN09Li FnStickerPreviewItem" data-preview='{ "type" : "static", "id" : "020", "staticUrl" : "https://stickershop.line-scdn.net/sticonshop/v1/sticon/646b23ff903b5543729ffa4d/iPhone/020.png?v=1", "fallbackStaticUrl" : "https://stickershop.line-scdn.net/sticonshop/v1/sticon/646b23ff903b5543729ffa4d/iPhone/020.png?v=1", "animationUrl" : ""}'>
<div class="mdCMN09LiInner FnImage">
<span class="mdCMN09Image" style="background-image:url(https://stickershop.line-scdn.net/sticonshop/v1/sticon/646b23ff903b5543729ffa4d/iPhone/020.png?v=1);"></span>
</div>
<div class="mdCMN09ImgPreview FnPreviewImage MdNonDisp">
<span class="mdCMN09Image FnPreview" style="background-image:url(https://stickershop.line-scdn.net/sticonshop/v1/sticon/646b23ff903b5543729ffa4d/iPhone/020.png?v=1);"></span>
</div>
</li>, <li class="mdCMN09Li FnStickerPreviewItem" data-preview='{ "type" : "static", "id" : "021", "staticUrl" : "https://stickershop.line-scdn.net/sticonshop/v1/sticon/646b23ff903b5543729ffa4d/iPhone/021.png?v=1", "fallbackStaticUrl" : "https://stickershop.line-scdn.net/sticonshop/v1/sticon/646b23ff903b5543729ffa4d/iPhone/021.png?v=1", "animationUrl" : ""}'>
<div class="mdCMN09LiInner FnImage">
<span class="mdCMN09Image" style="background-image:url(https://stickershop.line-scdn.net/sticonshop/v1/sticon/646b23ff903b5543729ffa4d/iPhone/021.png?v=1);"></span>
</div>
<div class="mdCMN09ImgPreview FnPreviewImage MdNonDisp">
<span class="mdCMN09Image FnPreview" style="background-image:url(https://stickershop.line-scdn.net/sticonshop/v1/sticon/646b23ff903b5543729ffa4d/iPhone/021.png?v=1);"></span>
</div>
</li>, <li class="mdCMN09Li FnStickerPreviewItem" data-preview='{ "type" : "static", "id" : "022", "staticUrl" : "https://stickershop.line-scdn.net/sticonshop/v1/sticon/646b23ff903b5543729ffa4d/iPhone/022.png?v=1", "fallbackStaticUrl" : "https://stickershop.line-scdn.net/sticonshop/v1/sticon/646b23ff903b5543729ffa4d/iPhone/022.png?v=1", "animationUrl" : ""}'>
<div class="mdCMN09LiInner FnImage">
<span class="mdCMN09Image" style="background-image:url(https://stickershop.line-scdn.net/sticonshop/v1/sticon/646b23ff903b5543729ffa4d/iPhone/022.png?v=1);"></span>
</div>
<div class="mdCMN09ImgPreview FnPreviewImage MdNonDisp">
<span class="mdCMN09Image FnPreview" style="background-image:url(https://stickershop.line-scdn.net/sticonshop/v1/sticon/646b23ff903b5543729ffa4d/iPhone/022.png?v=1);"></span>
</div>
</li>, <li class="mdCMN09Li FnStickerPreviewItem" data-preview='{ "type" : "static", "id" : "023", "staticUrl" : "https://stickershop.line-scdn.net/sticonshop/v1/sticon/646b23ff903b5543729ffa4d/iPhone/023.png?v=1", "fallbackStaticUrl" : "https://stickershop.line-scdn.net/sticonshop/v1/sticon/646b23ff903b5543729ffa4d/iPhone/023.png?v=1", "animationUrl" : ""}'>
<div class="mdCMN09LiInner FnImage">
<span class="mdCMN09Image" style="background-image:url(https://stickershop.line-scdn.net/sticonshop/v1/sticon/646b23ff903b5543729ffa4d/iPhone/023.png?v=1);"></span>
</div>
<div class="mdCMN09ImgPreview FnPreviewImage MdNonDisp">
<span class="mdCMN09Image FnPreview" style="background-image:url(https://stickershop.line-scdn.net/sticonshop/v1/sticon/646b23ff903b5543729ffa4d/iPhone/023.png?v=1);"></span>
</div>
</li>, <li class="mdCMN09Li FnStickerPreviewItem" data-preview='{ "type" : "static", "id" : "024", "staticUrl" : "https://stickershop.line-scdn.net/sticonshop/v1/sticon/646b23ff903b5543729ffa4d/iPhone/024.png?v=1", "fallbackStaticUrl" : "https://stickershop.line-scdn.net/sticonshop/v1/sticon/646b23ff903b5543729ffa4d/iPhone/024.png?v=1", "animationUrl" : ""}'>
<div class="mdCMN09LiInner FnImage">
<span class="mdCMN09Image" style="background-image:url(https://stickershop.line-scdn.net/sticonshop/v1/sticon/646b23ff903b5543729ffa4d/iPhone/024.png?v=1);"></span>
</div>
<div class="mdCMN09ImgPreview FnPreviewImage MdNonDisp">
<span class="mdCMN09Image FnPreview" style="background-image:url(https://stickershop.line-scdn.net/sticonshop/v1/sticon/646b23ff903b5543729ffa4d/iPhone/024.png?v=1);"></span>
</div>
</li>, <li class="mdCMN09Li FnStickerPreviewItem" data-preview='{ "type" : "static", "id" : "025", "staticUrl" : "https://stickershop.line-scdn.net/sticonshop/v1/sticon/646b23ff903b5543729ffa4d/iPhone/025.png?v=1", "fallbackStaticUrl" : "https://stickershop.line-scdn.net/sticonshop/v1/sticon/646b23ff903b5543729ffa4d/iPhone/025.png?v=1", "animationUrl" : ""}'>
<div class="mdCMN09LiInner FnImage">
<span class="mdCMN09Image" style="background-image:url(https://stickershop.line-scdn.net/sticonshop/v1/sticon/646b23ff903b5543729ffa4d/iPhone/025.png?v=1);"></span>
</div>
<div class="mdCMN09ImgPreview FnPreviewImage MdNonDisp">
<span class="mdCMN09Image FnPreview" style="background-image:url(https://stickershop.line-scdn.net/sticonshop/v1/sticon/646b23ff903b5543729ffa4d/iPhone/025.png?v=1);"></span>
</div>
</li>, <li class="mdCMN09Li FnStickerPreviewItem" data-preview='{ "type" : "static", "id" : "026", "staticUrl" : "https://stickershop.line-scdn.net/sticonshop/v1/sticon/646b23ff903b5543729ffa4d/iPhone/026.png?v=1", "fallbackStaticUrl" : "https://stickershop.line-scdn.net/sticonshop/v1/sticon/646b23ff903b5543729ffa4d/iPhone/026.png?v=1", "animationUrl" : ""}'>
<div class="mdCMN09LiInner FnImage">
<span class="mdCMN09Image" style="background-image:url(https://stickershop.line-scdn.net/sticonshop/v1/sticon/646b23ff903b5543729ffa4d/iPhone/026.png?v=1);"></span>
</div>
<div class="mdCMN09ImgPreview FnPreviewImage MdNonDisp">
<span class="mdCMN09Image FnPreview" style="background-image:url(https://stickershop.line-scdn.net/sticonshop/v1/sticon/646b23ff903b5543729ffa4d/iPhone/026.png?v=1);"></span>
</div>
</li>, <li class="mdCMN09Li FnStickerPreviewItem" data-preview='{ "type" : "static", "id" : "027", "staticUrl" : "https://stickershop.line-scdn.net/sticonshop/v1/sticon/646b23ff903b5543729ffa4d/iPhone/027.png?v=1", "fallbackStaticUrl" : "https://stickershop.line-scdn.net/sticonshop/v1/sticon/646b23ff903b5543729ffa4d/iPhone/027.png?v=1", "animationUrl" : ""}'>
<div class="mdCMN09LiInner FnImage">
<span class="mdCMN09Image" style="background-image:url(https://stickershop.line-scdn.net/sticonshop/v1/sticon/646b23ff903b5543729ffa4d/iPhone/027.png?v=1);"></span>
</div>
<div class="mdCMN09ImgPreview FnPreviewImage MdNonDisp">
<span class="mdCMN09Image FnPreview" style="background-image:url(https://stickershop.line-scdn.net/sticonshop/v1/sticon/646b23ff903b5543729ffa4d/iPhone/027.png?v=1);"></span>
</div>
</li>, <li class="mdCMN09Li FnStickerPreviewItem" data-preview='{ "type" : "static", "id" : "028", "staticUrl" : "https://stickershop.line-scdn.net/sticonshop/v1/sticon/646b23ff903b5543729ffa4d/iPhone/028.png?v=1", "fallbackStaticUrl" : "https://stickershop.line-scdn.net/sticonshop/v1/sticon/646b23ff903b5543729ffa4d/iPhone/028.png?v=1", "animationUrl" : ""}'>
<div class="mdCMN09LiInner FnImage">
<span class="mdCMN09Image" style="background-image:url(https://stickershop.line-scdn.net/sticonshop/v1/sticon/646b23ff903b5543729ffa4d/iPhone/028.png?v=1);"></span>
</div>
<div class="mdCMN09ImgPreview FnPreviewImage MdNonDisp">
<span class="mdCMN09Image FnPreview" style="background-image:url(https://stickershop.line-scdn.net/sticonshop/v1/sticon/646b23ff903b5543729ffa4d/iPhone/028.png?v=1);"></span>
</div>
</li>, <li class="mdCMN09Li FnStickerPreviewItem" data-preview='{ "type" : "static", "id" : "029", "staticUrl" : "https://stickershop.line-scdn.net/sticonshop/v1/sticon/646b23ff903b5543729ffa4d/iPhone/029.png?v=1", "fallbackStaticUrl" : "https://stickershop.line-scdn.net/sticonshop/v1/sticon/646b23ff903b5543729ffa4d/iPhone/029.png?v=1", "animationUrl" : ""}'>
<div class="mdCMN09LiInner FnImage">
<span class="mdCMN09Image" style="background-image:url(https://stickershop.line-scdn.net/sticonshop/v1/sticon/646b23ff903b5543729ffa4d/iPhone/029.png?v=1);"></span>
</div>
<div class="mdCMN09ImgPreview FnPreviewImage MdNonDisp">
<span class="mdCMN09Image FnPreview" style="background-image:url(https://stickershop.line-scdn.net/sticonshop/v1/sticon/646b23ff903b5543729ffa4d/iPhone/029.png?v=1);"></span>
</div>
</li>, <li class="mdCMN09Li FnStickerPreviewItem" data-preview='{ "type" : "static", "id" : "030", "staticUrl" : "https://stickershop.line-scdn.net/sticonshop/v1/sticon/646b23ff903b5543729ffa4d/iPhone/030.png?v=1", "fallbackStaticUrl" : "https://stickershop.line-scdn.net/sticonshop/v1/sticon/646b23ff903b5543729ffa4d/iPhone/030.png?v=1", "animationUrl" : ""}'>
<div class="mdCMN09LiInner FnImage">
<span class="mdCMN09Image" style="background-image:url(https://stickershop.line-scdn.net/sticonshop/v1/sticon/646b23ff903b5543729ffa4d/iPhone/030.png?v=1);"></span>
</div>
<div class="mdCMN09ImgPreview FnPreviewImage MdNonDisp">
<span class="mdCMN09Image FnPreview" style="background-image:url(https://stickershop.line-scdn.net/sticonshop/v1/sticon/646b23ff903b5543729ffa4d/iPhone/030.png?v=1);"></span>
</div>
</li>, <li class="mdCMN09Li FnStickerPreviewItem" data-preview='{ "type" : "static", "id" : "031", "staticUrl" : "https://stickershop.line-scdn.net/sticonshop/v1/sticon/646b23ff903b5543729ffa4d/iPhone/031.png?v=1", "fallbackStaticUrl" : "https://stickershop.line-scdn.net/sticonshop/v1/sticon/646b23ff903b5543729ffa4d/iPhone/031.png?v=1", "animationUrl" : ""}'>
<div class="mdCMN09LiInner FnImage">
<span class="mdCMN09Image" style="background-image:url(https://stickershop.line-scdn.net/sticonshop/v1/sticon/646b23ff903b5543729ffa4d/iPhone/031.png?v=1);"></span>
</div>
<div class="mdCMN09ImgPreview FnPreviewImage MdNonDisp">
<span class="mdCMN09Image FnPreview" style="background-image:url(https://stickershop.line-scdn.net/sticonshop/v1/sticon/646b23ff903b5543729ffa4d/iPhone/031.png?v=1);"></span>
</div>
</li>, <li class="mdCMN09Li FnStickerPreviewItem" data-preview='{ "type" : "static", "id" : "032", "staticUrl" : "https://stickershop.line-scdn.net/sticonshop/v1/sticon/646b23ff903b5543729ffa4d/iPhone/032.png?v=1", "fallbackStaticUrl" : "https://stickershop.line-scdn.net/sticonshop/v1/sticon/646b23ff903b5543729ffa4d/iPhone/032.png?v=1", "animationUrl" : ""}'>
<div class="mdCMN09LiInner FnImage">
<span class="mdCMN09Image" style="background-image:url(https://stickershop.line-scdn.net/sticonshop/v1/sticon/646b23ff903b5543729ffa4d/iPhone/032.png?v=1);"></span>
</div>
<div class="mdCMN09ImgPreview FnPreviewImage MdNonDisp">
<span class="mdCMN09Image FnPreview" style="background-image:url(https://stickershop.line-scdn.net/sticonshop/v1/sticon/646b23ff903b5543729ffa4d/iPhone/032.png?v=1);"></span>
</div>
</li>, <li class="mdCMN09Li FnStickerPreviewItem" data-preview='{ "type" : "static", "id" : "033", "staticUrl" : "https://stickershop.line-scdn.net/sticonshop/v1/sticon/646b23ff903b5543729ffa4d/iPhone/033.png?v=1", "fallbackStaticUrl" : "https://stickershop.line-scdn.net/sticonshop/v1/sticon/646b23ff903b5543729ffa4d/iPhone/033.png?v=1", "animationUrl" : ""}'>
<div class="mdCMN09LiInner FnImage">
<span class="mdCMN09Image" style="background-image:url(https://stickershop.line-scdn.net/sticonshop/v1/sticon/646b23ff903b5543729ffa4d/iPhone/033.png?v=1);"></span>
</div>
<div class="mdCMN09ImgPreview FnPreviewImage MdNonDisp">
<span class="mdCMN09Image FnPreview" style="background-image:url(https://stickershop.line-scdn.net/sticonshop/v1/sticon/646b23ff903b5543729ffa4d/iPhone/033.png?v=1);"></span>
</div>
</li>, <li class="mdCMN09Li FnStickerPreviewItem" data-preview='{ "type" : "static", "id" : "034", "staticUrl" : "https://stickershop.line-scdn.net/sticonshop/v1/sticon/646b23ff903b5543729ffa4d/iPhone/034.png?v=1", "fallbackStaticUrl" : "https://stickershop.line-scdn.net/sticonshop/v1/sticon/646b23ff903b5543729ffa4d/iPhone/034.png?v=1", "animationUrl" : ""}'>
<div class="mdCMN09LiInner FnImage">
<span class="mdCMN09Image" style="background-image:url(https://stickershop.line-scdn.net/sticonshop/v1/sticon/646b23ff903b5543729ffa4d/iPhone/034.png?v=1);"></span>
</div>
<div class="mdCMN09ImgPreview FnPreviewImage MdNonDisp">
<span class="mdCMN09Image FnPreview" style="background-image:url(https://stickershop.line-scdn.net/sticonshop/v1/sticon/646b23ff903b5543729ffa4d/iPhone/034.png?v=1);"></span>
</div>
</li>, <li class="mdCMN09Li FnStickerPreviewItem" data-preview='{ "type" : "static", "id" : "035", "staticUrl" : "https://stickershop.line-scdn.net/sticonshop/v1/sticon/646b23ff903b5543729ffa4d/iPhone/035.png?v=1", "fallbackStaticUrl" : "https://stickershop.line-scdn.net/sticonshop/v1/sticon/646b23ff903b5543729ffa4d/iPhone/035.png?v=1", "animationUrl" : ""}'>
<div class="mdCMN09LiInner FnImage">
<span class="mdCMN09Image" style="background-image:url(https://stickershop.line-scdn.net/sticonshop/v1/sticon/646b23ff903b5543729ffa4d/iPhone/035.png?v=1);"></span>
</div>
<div class="mdCMN09ImgPreview FnPreviewImage MdNonDisp">
<span class="mdCMN09Image FnPreview" style="background-image:url(https://stickershop.line-scdn.net/sticonshop/v1/sticon/646b23ff903b5543729ffa4d/iPhone/035.png?v=1);"></span>
</div>
</li>, <li class="mdCMN09Li FnStickerPreviewItem" data-preview='{ "type" : "static", "id" : "036", "staticUrl" : "https://stickershop.line-scdn.net/sticonshop/v1/sticon/646b23ff903b5543729ffa4d/iPhone/036.png?v=1", "fallbackStaticUrl" : "https://stickershop.line-scdn.net/sticonshop/v1/sticon/646b23ff903b5543729ffa4d/iPhone/036.png?v=1", "animationUrl" : ""}'>
<div class="mdCMN09LiInner FnImage">
<span class="mdCMN09Image" style="background-image:url(https://stickershop.line-scdn.net/sticonshop/v1/sticon/646b23ff903b5543729ffa4d/iPhone/036.png?v=1);"></span>
</div>
<div class="mdCMN09ImgPreview FnPreviewImage MdNonDisp">
<span class="mdCMN09Image FnPreview" style="background-image:url(https://stickershop.line-scdn.net/sticonshop/v1/sticon/646b23ff903b5543729ffa4d/iPhone/036.png?v=1);"></span>
</div>
</li>, <li class="mdCMN09Li FnStickerPreviewItem" data-preview='{ "type" : "static", "id" : "037", "staticUrl" : "https://stickershop.line-scdn.net/sticonshop/v1/sticon/646b23ff903b5543729ffa4d/iPhone/037.png?v=1", "fallbackStaticUrl" : "https://stickershop.line-scdn.net/sticonshop/v1/sticon/646b23ff903b5543729ffa4d/iPhone/037.png?v=1", "animationUrl" : ""}'>
<div class="mdCMN09LiInner FnImage">
<span class="mdCMN09Image" style="background-image:url(https://stickershop.line-scdn.net/sticonshop/v1/sticon/646b23ff903b5543729ffa4d/iPhone/037.png?v=1);"></span>
</div>
<div class="mdCMN09ImgPreview FnPreviewImage MdNonDisp">
<span class="mdCMN09Image FnPreview" style="background-image:url(https://stickershop.line-scdn.net/sticonshop/v1/sticon/646b23ff903b5543729ffa4d/iPhone/037.png?v=1);"></span>
</div>
</li>, <li class="mdCMN09Li FnStickerPreviewItem" data-preview='{ "type" : "static", "id" : "038", "staticUrl" : "https://stickershop.line-scdn.net/sticonshop/v1/sticon/646b23ff903b5543729ffa4d/iPhone/038.png?v=1", "fallbackStaticUrl" : "https://stickershop.line-scdn.net/sticonshop/v1/sticon/646b23ff903b5543729ffa4d/iPhone/038.png?v=1", "animationUrl" : ""}'>
<div class="mdCMN09LiInner FnImage">
<span class="mdCMN09Image" style="background-image:url(https://stickershop.line-scdn.net/sticonshop/v1/sticon/646b23ff903b5543729ffa4d/iPhone/038.png?v=1);"></span>
</div>
<div class="mdCMN09ImgPreview FnPreviewImage MdNonDisp">
<span class="mdCMN09Image FnPreview" style="background-image:url(https://stickershop.line-scdn.net/sticonshop/v1/sticon/646b23ff903b5543729ffa4d/iPhone/038.png?v=1);"></span>
</div>
</li>, <li class="mdCMN09Li FnStickerPreviewItem" data-preview='{ "type" : "static", "id" : "039", "staticUrl" : "https://stickershop.line-scdn.net/sticonshop/v1/sticon/646b23ff903b5543729ffa4d/iPhone/039.png?v=1", "fallbackStaticUrl" : "https://stickershop.line-scdn.net/sticonshop/v1/sticon/646b23ff903b5543729ffa4d/iPhone/039.png?v=1", "animationUrl" : ""}'>
<div class="mdCMN09LiInner FnImage">
<span class="mdCMN09Image" style="background-image:url(https://stickershop.line-scdn.net/sticonshop/v1/sticon/646b23ff903b5543729ffa4d/iPhone/039.png?v=1);"></span>
</div>
<div class="mdCMN09ImgPreview FnPreviewImage MdNonDisp">
<span class="mdCMN09Image FnPreview" style="background-image:url(https://stickershop.line-scdn.net/sticonshop/v1/sticon/646b23ff903b5543729ffa4d/iPhone/039.png?v=1);"></span>
</div>
</li>, <li class="mdCMN09Li FnStickerPreviewItem" data-preview='{ "type" : "static", "id" : "040", "staticUrl" : "https://stickershop.line-scdn.net/sticonshop/v1/sticon/646b23ff903b5543729ffa4d/iPhone/040.png?v=1", "fallbackStaticUrl" : "https://stickershop.line-scdn.net/sticonshop/v1/sticon/646b23ff903b5543729ffa4d/iPhone/040.png?v=1", "animationUrl" : ""}'>
<div class="mdCMN09LiInner FnImage">
<span class="mdCMN09Image" style="background-image:url(https://stickershop.line-scdn.net/sticonshop/v1/sticon/646b23ff903b5543729ffa4d/iPhone/040.png?v=1);"></span>
</div>
<div class="mdCMN09ImgPreview FnPreviewImage MdNonDisp">
<span class="mdCMN09Image FnPreview" style="background-image:url(https://stickershop.line-scdn.net/sticonshop/v1/sticon/646b23ff903b5543729ffa4d/iPhone/040.png?v=1);"></span>
</div>
</li>]
```python
#表情貼-3
imges_dir = "line_image_emojishop/"
if not os.path.exists(imges_dir):
os.mkdir(imges_dir)
for data in datas:
imginfo = json.loads(data.get('data-preview'))
id = imginfo['id']
imgfile = requests.get(imginfo['staticUrl'])
full_path = imges_dir + id + '.png'
with open(full_path, 'wb') as f:
f.write(imgfile.content)
print(full_path)
```
line_image_emojishop/001.png
line_image_emojishop/002.png
line_image_emojishop/003.png
line_image_emojishop/004.png
line_image_emojishop/005.png
line_image_emojishop/006.png
line_image_emojishop/007.png
line_image_emojishop/008.png
line_image_emojishop/009.png
line_image_emojishop/010.png
line_image_emojishop/011.png
line_image_emojishop/012.png
line_image_emojishop/013.png
line_image_emojishop/014.png
line_image_emojishop/015.png
line_image_emojishop/016.png
line_image_emojishop/017.png
line_image_emojishop/018.png
line_image_emojishop/019.png
line_image_emojishop/020.png
line_image_emojishop/021.png
line_image_emojishop/022.png
line_image_emojishop/023.png
line_image_emojishop/024.png
line_image_emojishop/025.png
line_image_emojishop/026.png
line_image_emojishop/027.png
line_image_emojishop/028.png
line_image_emojishop/029.png
line_image_emojishop/030.png
line_image_emojishop/031.png
line_image_emojishop/032.png
line_image_emojishop/033.png
line_image_emojishop/034.png
line_image_emojishop/035.png
line_image_emojishop/036.png
line_image_emojishop/037.png
line_image_emojishop/038.png
line_image_emojishop/039.png
line_image_emojishop/040.png
```python
# 期末專題參考
# 凱薩密碼加密/解密
import string
import matplotlib.pyplot as plt
LETTERS = 'abcdefghijklmnopqrstuvwxyz,.() '
def encrypt(initial, shift):
initial = initial.lower()
output = ""
for char in initial:
if char in LETTERS:
output += LETTERS[(LETTERS.index(char) + shift) % len(LETTERS)]
return output
def decrypt(initial, shift):
initial = initial.lower()
output = ""
for char in initial:
if char in LETTERS:
output += LETTERS[(LETTERS.index(char) - shift) % len(LETTERS)]
return output
def plot_letter_frequency(text):
text = text.lower()
letter_count = {letter: 0 for letter in string.ascii_lowercase}
for char in text:
if char.isalpha():
letter_count[char] += 1
letters = list(letter_count.keys())
counts = list(letter_count.values())
plt.bar(letters, counts)
plt.xlabel('Letters')
plt.ylabel('Frequency')
plt.title('Letter Frequency in Text')
plt.savefig('./result.png')
## --------------- Main ------------------
message = input('請輸入要加密的訊息: ')
key = int(input('請輸入密鑰: '))
# 加密
cipher = encrypt(message, key)
print(f'\n加密結果: {cipher}')
# 解密
plain = decrypt(cipher, key)
print(f'\n解密結果: {plain}')
#字數統計
plot_letter_frequency(cipher)
```
請輸入要加密的訊息: Chanel
請輸入密鑰: 20029116
加密結果: sxq)u.
解密結果: chanel

## 【afterclass practice】
1. 綜合演練 選擇題1-10 (需抄題在markdown cell ; 有程式碼的題目要有code cell )
2. 教學影音 lesson 10
3. 請填寫小組報告主題 --- 【期末小組】管理
4. 請填寫筆記網站網址 --- 【OMP】問卷
### 綜合演練 選擇題1-10
#### 1. 以open(filename[,mode][,encode]) 開啟檔案,下列何者是 mode 參數預設的模式?
( A ) 讀取模式
( B ) 寫入模式
( C ) 附加模式
( D ) 以上皆是
答: ( A ) 讀取模式
#### 2. Python 提供何種內建函式,可以開啟指定的檔案,以便進行檔案內容的讀取、寫入或修改?
( A ) file()
( B ) input()
( C ) open()
( D ) output()
答: ( C ) open()
#### 3. 下列何函式可以讀取一列字元?
( A ) readable()
( B ) read()
( C ) readlines()
( D ) get(ch)
答: ( B ) read()
#### 4. 下列程式建立的檔案物件,可以執行何種動作?
f=open('file1.txt','w')
f.write("Hello Python!")
f.close()
( A ) 讀取
( B ) 寫入
( C ) 可讀取也可寫入
( D ) 以上皆非
答: ( B ) 寫入
#### 5. 執行下列程式,下列顯示結果何者正確?
try:
print(x)
except:
print("y")
finally:
print("z")
( A ) x
( B ) y
( C ) xz
( D ) yz
```python
try:
print(x)
except:
print("y")
finally:
print("z")
```
y
z
#### 6. open(filename,mode,encode) 函式的參數中,其中只有那一個參數是必填?
( A ) filename
( B ) mode
( C ) encode
( D ) 以上皆是
答: ( A ) filename
#### 7. 如果作業系統是繁體中文 Windows 系統,預設的編碼為何?
( A ) UTF-8
( B ) cp950
( C ) unicode
( D ) GB2312
答: ( B ) cp950
#### 8. 下列有關 readlines() 的敘述,何者正確?
( A ) 會讀取全部文件內容
( B ) 以串列方式傳回
( C ) 包括「\n」跳列字元,甚至是隱含的字元
( D ) 以上皆是
答: ( D ) 以上皆是
#### 9. 執行下列程式,下列顯示結果何者正確?
n=1
try:
print(n)
except:
print("變數不存在!")
( A ) 1
( B ) n
( C ) 變數不存在
( D ) 以上皆是
```python
n=1
try:
print(n)
except:
print("變數不存在!")
```
1
#### 10. 班上的除錯高手大匹,在他的程式中加入了錯誤的補捉在 try…except…finally 敘述中,無論例外有沒有發生都會執行下列那些程式區塊?
( A ) try
( B ) except
( C ) finally
( D ) 以上皆是
答: ( C ) finally
### 教學影音 lesson 10
```python
a = 11
b = 2
try :
print(a / b)
except ZeroDivisionError :
print("ZeroDivisionError")
except :
print("except")
else:
print("else except")
finally:
print("after exception...")
```
5.5
else except
after exception...
```python
a = 11
b = 0
try :
print(a / b)
except :
print("except")
else:
print("else except")
finally:
print("after exception...")
```
except
after exception...
```python
a = 11
b = 0
try :
print(a / b)
except ZeroDivisionError :
print("ZeroDivisionError")
except :
print("except")
else:
print("else except")
finally:
print("after exception...")
```
ZeroDivisionError
after exception...
## 【self practice】
try:
- 嘗試執行的程式碼
- 如果發生例外,則控制權轉移到相應的 except 區塊
except ExceptionType1 as e1:
- 處理 ExceptionType1 類型的例外
except ExceptionType2 as e2:
- 處理 ExceptionType2 類型的例外
else:
- 如果在 try 區塊中沒有發生例外,則執行這裡的程式碼
finally:
- 無論是否發生例外,都會執行這裡的程式碼
```python
try:
x = 10 / 0
except ZeroDivisionError as e:
print(f"Error: {e}")
else:
print("No exception occurred.")
finally:
print("Finally block is executed.")
```
Error: division by zero
Finally block is executed.
1. ZeroDivisionError:除以零錯誤
2. ValueError:值錯誤,例如轉換數據類型時的錯誤
3. TypeError:類型錯誤,例如將不支持的操作應用於特定類型的對象
4. FileNotFoundError:文件未找到錯誤,當試圖打開不存在的文件時引發