一、python的應用領域 二、人工智慧範例 1.範例1 將寫在紙上的文字,精準地識別出來 1 import requests 2 from aip import AipOcr 3 4 image = requests.get('https://res.pandateacher.com/python ...
一、python的應用領域
二、人工智慧範例
1.範例1
將寫在紙上的文字,精準地識別出來
1 import requests 2 from aip import AipOcr 3 4 image = requests.get('https://res.pandateacher.com/python_classic.png').content 5 6 APP_ID = '16149264' 7 API_KEY = 'yxYg9r4OuAs4fYvfcl8tqCYd' 8 SECRET_KEY = 'yWg3KMds2muFsWs7MBSSFcgMQl8Wng4s' 9 client = AipOcr(APP_ID, API_KEY, SECRET_KEY) 10 res = client.basicGeneral(image) 11 if 'words_result' in res.keys(): 12 for item in res['words_result']: 13 print(item['words']) 14 15 else: 16 APP_ID = '11756541' 17 API_KEY = '2YhkLuyQGljPUYnmi1CFgxOP' 18 SECRET_KEY = '4rrHe2BF828bI8bQy6bLlx1MelXqa8Z7' 19 client = AipOcr(APP_ID, API_KEY, SECRET_KEY) 20 res = client.basicGeneral(image) 21 if 'words_result' in res.keys(): 22 for item in res['words_result']: 23 print(item['words']) 24 else: 25 print(res)
2.範例2
真正地運行一個人工智慧小程式,和電腦進行“對話”。它其實就是Python碼出來的Siri。
1 import urllib.parse 2 import hashlib 3 import time 4 import random 5 import string 6 import requests 7 import sys 8 import readline 9 10 def curl_md5(src): 11 m = hashlib.md5(src.encode('UTF-8')) 12 # 將得到的MD5值所有字元轉換成大寫 13 return m.hexdigest().upper() 14 15 16 """ 17 get_req_sign :根據 介面請求參數 和 應用密鑰 計算 請求簽名 18 參數說明 19 -pa:介面請求參數 20 -apk:應用密鑰 21 返回數據 22 -簽名結果 23 """ 24 25 26 def get_req_sign(pa, apk): 27 28 # 1.字典升序排序 29 pa_list = list(pa.items()) 30 pa_list.sort() 31 32 # 2.拼按URL鍵值對 33 tem_str = '' 34 for i in range(len(pa_list)): 35 if pa_list[i][1]: 36 tem_str += (pa_list[i][0] + '=' + urllib.parse.quote(pa_list[i][1]) + '&') 37 38 # 3.拼接app_key 39 tem_str += ('app_key=' + apk) 40 41 # 4.MD5運算 + 轉換大寫,得到請求簽名 42 sign = curl_md5(tem_str) 43 return sign 44 45 46 def get_params(plus_item): 47 48 # 請求時間戳(秒級),用於防止請求重放(保證簽名5分鐘有效) 49 t = time.time() 50 time_stamp = str(int(t)) 51 # 請求隨機字元串,用於保證簽名不可預測 52 nonce_str = ''.join(random.sample(string.ascii_letters + string.digits, 10)) 53 54 global se 55 56 app_id = '2127007340' 57 app_key = '9Fm2D9tkB4lEjZ89' 58 params = { 59 'app_id': app_id, 60 'time_stamp': time_stamp, 61 'nonce_str': nonce_str, 62 'question': plus_item, 63 'sign': '', 64 'session': se 65 } 66 67 params['sign'] = get_req_sign(params, app_key) 68 return params 69 70 71 def get_content(plus_item): 72 # 聊天的API地址 73 url = "https://api.ai.qq.com/fcgi-bin/nlp/nlp_textchat" 74 # 獲取請求參數 75 plus_item = plus_item.encode('UTF-8') 76 payload = get_params(plus_item) 77 r = requests.post(url, data=payload) 78 79 if r.json()["ret"] == 0: 80 print('吳小楓:' + r.json()["data"]["answer"]) 81 else: 82 print('今天我出了一點小問題~快聯繫助教幫忙解決一下~~') 83 sys.exit() 84 85 86 feature_text = [''' 87 大家好!我是你的聊天機器人吳小楓。 88 我有問必答,有人會問我“今天深圳天氣怎麼樣?”,也有人問我“你喜歡我嗎?” 89 快來問我問題呀,歡迎來撩! 90 >''', ''' 91 再來問我點啥吧!我把我知道的都告訴你,嘻嘻! 92 >''', ''' 93 # 我有點餓了,再和你聊完最後一句,我就要下線啦!你還有什麼要問我的? 94 # >'''] 95 96 se = str(random.randint(1, 10000)) 97 98 for i in range(len(feature_text)): 99 comment = input(feature_text[i]) 100 get_content(comment) 101 time.sleep(1) 102 103 print('\n我走啦,下次見!')
三、print()函數
1.知識點總結
2.範例
1)單引號和雙引號
1 # 括弧內是單引號的情況。 2 print('一起玩吧') 3 4 # 括弧內是雙引號的情況。 5 print("一起玩吧") 6 7 # 括弧內單雙引號同時存在的情況。 8 print("Let's play") 9 #雙引號是print結構
2)三引號
1 print('''我願意留在湯婆婆的澡堂里工作兩年, 2 第一年在鍋爐房和鍋爐爺爺一起燒鍋爐水, 3 將在這個世界變成一頭豬。 4 ''')
3)轉義字元
1 print('我願意留在湯婆婆的澡堂里工作兩年,\n如果我違背工作內容的話,\n將在這個世界變成一頭豬。')
四、變數和賦值
1.知識點總結
1)變數
變數就像是一個帶標簽的盒子,需要你把數據放進去。(變數名在賦值時,指向這個數據的儲存地址)
2)變數名
當多次賦值之後,變數名會指向新的空間(新的空間儲存的是別的數據,所以該變數名代表的數據發生變化)
3)變數的命名規範
4)等於與賦值的區別
2.範例
1)範例1
1 name='千尋' 2 name='小千' 3 print(name)
五、本章知識點
1.知識點
2.範例
1 import random 2 import time 3 4 ###提示語部分 5 print('你好,我是機器人小埋,我們來玩個猜年齡的小游戲吧~(◆◡◆)') 6 time.sleep(2) 7 8 print(''' 9 ============================= 10 乾物妹!うまるちゃんの年齢 11 ============================= 12 ''') 13 time.sleep(1) 14 15 16 print('小埋的真實年齡在1到10之間哦~') 17 time.sleep(1) 18 19 20 print('不過,你只有5次機會哦~') 21 time.sleep(1) 22 23 24 print('下麵,請輸入小埋的年齡吧:') 25 26 27 #從0至10產生一個隨機整數,並賦值給變數age 28 age = random.randint(1,10) 29 30 31 #設置次數 32 for guess in range(1,6): 33 34 #輸入玩家猜測的年齡 35 choice=int(input()) 36 37 #判讀玩家輸入的年齡是否等於正確的年齡 38 if choice<age: 39 print('小埋的提示:你猜小了(;´д`)ゞ。。。。') 40 41 elif choice>age: 42 print('小埋的提示:乃猜大了惹(>﹏<)~~') 43 44 else: 45 print('猜了'+str(guess)+'次,你就猜對惹~hiu(^_^A;)~~~') 46 break 47 48 #判斷猜測次數 49 if choice == age: 50 print('搜噶~那麼小埋下線了~拜拜~( ̄︶ ̄)↗') 51 52 else: 53 print('哎呀~你還是木有猜對啊~但是你只有5次機會誒~怎麼辦啊~') 54 print('那好吧~心軟的小埋只好告訴你,我才'+str(age)+'歲哦~(*/ω\*)')