### ex3-1 ### >>> "Hello World!".upper() # 使用字串物件 "Hello World!" 的 upper() 方法,將字串轉成大寫 >>> "Hello World!".find('r') # find() 方法尋找 'b' 的位置 (從 0 開始) >>> "Hello World!".replace('r', 'u') # replace() 方法將所有的 'r' 取代成 'b' ### ex3-2 ### >>> 111 + 111 # 整數物件相加 >>> "111" + "111" # 字串物件串聯 ### ex3-3 ### >>> 111 + "111" # 不同型別的資料相加發生錯誤 ### ex3-4 ### >>> n1 = 123456789 # 將整數物件 123456789 指派給變數 n1 >>> n2 = 987654321 # 將整數物件 987654321 指派給變數 n2 >>> n1 + n2 # 實際上是 123456789 + 987654321 ### ex3-5 ### >>> print("abc") # 顯示字串物件 >>> print("abc".upper()) # 顯示字串物件.方法的執行結果 >>> print(111 + 111) # 顯示整數物件運算的結果 ### ex3-6 ### >>> import time # 匯入時間相關的 time 模組 >>> time.sleep(3) # 執行 time 模組的 sleep() 函式,暫停 3 秒 >>> from time import sleep # 從 time 模組裡匯入 sleep() 函式 >>> sleep(5) # 執行 sleep() 函式,暫停 5 秒 ### ex3-7 ### # 暫停 5 秒後,印出 Hello World! from time import sleep sleep(5) print("Hello World!") ### ex3-8 (Lab3-2-take_photo.py) #### import picamera import time camera = picamera.PiCamera() time.sleep(2) # 暫停 2 秒 camera.rotation = 180 camera.capture('Lab3-2-take_photo.jpg') ### ex3-9 #### # 安裝 leafpad $ sudo apt-get update $ sudo apt-get install leafpad # 背景執行 leafpad $ leafpad & ### ex3-10 (Lab3-3-low_light.py) #### # 參考文件:https://picamera.readthedocs.io/en/release-1.13/recipes1.html import picamera import time from fractions import Fraction # 匯入分數函數 Fraction() camera = picamera.PiCamera() camera.resolution = (640, 480) camera.framerate = Fraction(1, 6) camera.shutter_speed = 6000000 camera.iso = 800 time.sleep(3) camera.exposure_mode = 'off' camera.rotation = 180 camera.capture('Lab3-3-low_light.jpg') ### ex3-11 (Lab3-4-record_video.py) #### # 參考文件:https://picamera.readthedocs.io/en/release-1.13/recipes1.html import picamera camera = picamera.PiCamera() camera.rotation = 180 camera.start_recording('Lab2-4-record_video.h264') camera.wait_recording(3) camera.stop_recording() ### ex3-12 #### # 參考文件:https://picamera.readthedocs.io/en/release-1.13/recipes1.html import picamera import time import datetime as dt camera = picamera.PiCamera() time.sleep(2) # 暫停 2 秒 camera.rotation = 180 camera.annotate_background = picamera.Color('black') camera.annotate_text = dt.datetime.now().strftime('%Y-%m-%d %H:%M:%S') camera.capture('ex3-12-photo_adddate.jpg') ### ex3-13 #### imagga demo:https://imagga.com/auto-tagging-demo 圖檔網址:https://images.theconversation.com/files/227374/original/file-20180712-27021-7iamol.jpg?ixlib=rb-1.1.0&q=45&auto=format&w=1200&h=900.0&fit=crop ### ex3-14 #### # 註冊與認證 https://imagga.com/auth/signup # 取得 Authorization https://imagga.com/profile/dashboard ### ex3-15 (Lab3-5-imagga_tag_file_url.py) #### import requests url = "https://api.imagga.com/v2/tags" querystring = {"image_url":"https://images.theconversation.com/files/227374/original/file-20180712-27021-7iamol.jpg?ixlib=rb-1.1.0&q=45&auto=format&w=1200&h=900.0&fit=crop","version":"2"} headers = { 'accept': "application/json", 'authorization': "Basic YWNjXzA4NmFhNDhlNmU1ODY0YTpmZjk1MTYwYzA5MDA2MzI0MjEwNzcxMTBhZmI0MzkxNQ==" } response = requests.request("GET", url, headers=headers, params=querystring) print(response.text) ### ex3-16 #### >>> string = "52python" # 字串容器:由字元組成 >>> tuple = (1, '2', 3) # tuple 容器:由資料物件組成 >>> list = [1, '2', 3] # 串列容器:由資料物件組成 >>> set = {1, '2', 3} # 集合容器:由資料物件組成 >>> dick = {'A':1, 'B':'2', 'C':3} # 字典容器:由資料物件組成,以鍵:值表示 ### ex3-17 #### {"result":{"tags":[{"confidence":100,"tag":{"en":"banana"}},{"confidence":70.7407455444336,"tag":{"en":"edible fruit"}},{"confidence":68.0829010009766,"tag":{"en":"fruit"}},{"confidence":67.4682540893555,"tag":{"en":"plant"}},{"confidence":58.7835159301758,"tag":{"en":"produce"}},{"confidence":45.3667984008789,"tag":{"en":"food"}},{"confidence":28.9219436645508,"tag":{"en":"tropical"}},{"confidence":27.789644241333,"tag":{"en":"yellow"}},{"confidence":25.0503311157227,"tag":{"en":"summer"}},{"confidence":24.5122184753418,"tag":{"en":"close"}},{"confidence":24.0958213806152,"tag":{"en":"leaf"}},{"confidence":23.8083343505859,"tag":{"en":"flower"}},{"confidence":23.4466819763184,"tag":{"en":"garden"}},{"confidence":21.5454769134521,"tag":{"en":"fresh"}},{"confidence":20.102876663208,"tag":{"en":"leaves"}},{"confidence":19.2816123962402,"tag":{"en":"agriculture"}},{"confidence":19.0914440155029,"tag":{"en":"exotic"}},{"confidence":18.7150115966797,"tag":{"en":"natural"}},{"confidence":18.2442874908447,"tag":{"en":"healthy"}},{"confidence":17.0388431549072,"tag":{"en":"tree"}},{"confidence":16.477466583252,"tag":{"en":"blossom"}},{"confidence":15.8062028884888,"tag":{"en":"growth"}},{"confidence":15.2150297164917,"tag":{"en":"flora"}},{"confidence":14.9636716842651,"tag":{"en":"palm"}},{"confidence":14.894944190979,"tag":{"en":"botany"}},{"confidence":14.4908647537231,"tag":{"en":"ripe"}},{"confidence":14.2599868774414,"tag":{"en":"organic"}},{"confidence":13.8874826431274,"tag":{"en":"color"}},{"confidence":13.6671533584595,"tag":{"en":"branch"}},{"confidence":13.4594030380249,"tag":{"en":"closeup"}},{"confidence":13.4111337661743,"tag":{"en":"nutrition"}},{"confidence":13.2497234344482,"tag":{"en":"botanical"}},{"confidence":13.0924596786499,"tag":{"en":"bunch"}},{"confidence":12.4703330993652,"tag":{"en":"raw"}},{"confidence":12.103856086731,"tag":{"en":"sky"}},{"confidence":12.1036653518677,"tag":{"en":"diet"}},{"confidence":12.0697355270386,"tag":{"en":"stem"}},{"confidence":12.0184488296509,"tag":{"en":"petal"}},{"confidence":11.756932258606,"tag":{"en":"spring"}},{"confidence":11.7392158508301,"tag":{"en":"vegetable"}},{"confidence":11.629864692688,"tag":{"en":"freshness"}},{"confidence":11.6075057983398,"tag":{"en":"sunflower"}},{"confidence":11.5850172042847,"tag":{"en":"farm"}},{"confidence":11.4244832992554,"tag":{"en":"bright"}},{"confidence":11.289831161499,"tag":{"en":"flowers"}},{"confidence":11.1684703826904,"tag":{"en":"bloom"}},{"confidence":11.0539417266846,"tag":{"en":"sweet"}},{"confidence":10.7262706756592,"tag":{"en":"orange"}},{"confidence":10.5627307891846,"tag":{"en":"rural"}},{"confidence":10.1935625076294,"tag":{"en":"floral"}},{"confidence":10.188437461853,"tag":{"en":"plants"}},{"confidence":10.0201654434204,"tag":{"en":"colorful"}},{"confidence":9.79357528686523,"tag":{"en":"pineapple"}},{"confidence":9.69699859619141,"tag":{"en":"outdoors"}},{"confidence":9.64854145050049,"tag":{"en":"sun"}},{"confidence":9.34008979797363,"tag":{"en":"season"}},{"confidence":9.18884086608887,"tag":{"en":"field"}},{"confidence":9.14876174926758,"tag":{"en":"travel"}},{"confidence":9.14805793762207,"tag":{"en":"island"}},{"confidence":8.46874141693115,"tag":{"en":"juice"}},{"confidence":8.44973087310791,"tag":{"en":"crop"}},{"confidence":8.41209030151367,"tag":{"en":"seed"}},{"confidence":8.38391780853271,"tag":{"en":"plantain"}},{"confidence":8.32637596130371,"tag":{"en":"health"}},{"confidence":8.03243827819824,"tag":{"en":"vegetarian"}},{"confidence":7.86875581741333,"tag":{"en":"vibrant"}},{"confidence":7.83874034881592,"tag":{"en":"day"}},{"confidence":7.82537746429443,"tag":{"en":"forest"}},{"confidence":7.60729122161865,"tag":{"en":"petals"}},{"confidence":7.4281849861145,"tag":{"en":"landscape"}},{"confidence":7.31941938400269,"tag":{"en":"object"}},{"confidence":7.31344223022461,"tag":{"en":"vitamin"}},{"confidence":7.26892566680908,"tag":{"en":"juicy"}},{"confidence":7.24693441390991,"tag":{"en":"refreshment"}},{"confidence":7.23603534698486,"tag":{"en":"detail"}},{"confidence":7.1113805770874,"tag":{"en":"sunlight"}},{"confidence":7.10690259933472,"tag":{"en":"grass"}},{"confidence":7.04676055908203,"tag":{"en":"dessert"}},{"confidence":7.0278787612915,"tag":{"en":"life"}}]},"status":{"text":"","type":"success"}} ### ex3-18 #### # Online JSON Viewer http://jsonviewer.stack.hu/ ### ex3-19 (Lab3-6.py) #### import requests import json url = "https://api.imagga.com/v2/tags" querystring = {"image_url":"https://images.theconversation.com/files/227374/original/file-20180712-27021-7iamol.jpg?ixlib=rb-1.1.0&q=45&auto=format&w=1200&h=900.0&fit=crop","version":"2"} headers = { 'accept': "application/json", 'authorization': "Basic YWNjXzA4NmFhNDhlNmU1ODY0YTpmZjk1MTYwYzA5MDA2MzI0MjEwNzcxMTBhZmI0MzkxNQ==" } response = requests.request("GET", url, headers=headers, params=querystring) data = json.loads(response.text) print(data) ### ex3-20 (接續 Lab3-6.py,執行下的結果) #### # 索引 JSON >>> print(data["result"]) >>> print(data["result"]["tags"]) >>> print(data["result"]["tags"][0]) >>> print(data["result"]["tags"][0]["tag"]) >>> print(data["result"]["tags"][0]["tag"]["en"]) ### ex3-21 (Lab3-7-imagga_tag_file_url.py) #### import requests import json url = "https://api.imagga.com/v2/tags" querystring = {"image_url":"https://images.theconversation.com/files/227374/original/file-20180712-27021-7iamol.jpg?ixlib=rb-1.1.0&q=45&auto=format&w=1200&h=900.0&fit=crop","version":"2"} headers = { 'accept': "application/json", 'authorization': "Basic YWNjXzA4NmFhNDhlNmU1ODY0YTpmZjk1MTYwYzA5MDA2MzI0MjEwNzcxMTBhZmI0MzkxNQ==" } response = requests.request("GET", url, headers=headers, params=querystring) data = json.loads(response.text) tag = data["result"]["tags"][0]["tag"]["en"] print("Get tag... ") print("<< " + tag + " >>") ### ex3-22 (Lab3-8-imagga_tag_file_url.py) #### import requests import json api_key = 'acc_086aa48e6e5864a' api_secret = 'ff95160c0900632421077110afb43915' image_path = './exper3-2/Lab3-2-take_photo.jpg' response_post = requests.post( 'https://api.imagga.com/v2/uploads', auth = (api_key, api_secret), files = {'image': open(image_path, 'rb')}) data_post = response_post.json() querystring = data_post["result"]["upload_id"] print(querystring) response_get = requests.get( 'https://api.imagga.com/v2/tags?image_upload_id=' + querystring, auth=(api_key, api_secret)) data_get = json.loads(response_get.text) tag = data_get["result"]["tags"][0]["tag"]["en"] print("Get tag... ") print("<< " + tag + " >>")