第0关-千寻的名字

第0关-千寻的名字

一、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)+'岁哦~(*/ω\*)')

 

posted @ 2020-06-06 19:26  依叶之秋  阅读(813)  评论(0编辑  收藏  举报