• 第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('
    我走啦,下次见!')

    三、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('我愿意留在汤婆婆的澡堂里工作两年, 如果我违背工作内容的话, 将在这个世界变成一头猪。') 

    四、变量和赋值

    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)+'岁哦~(*/ω\*)')
  • 相关阅读:
    leetcode Power of Two
    Lowest Common Ancestor of a Binary Search Tree
    Lowest Common Ancestor of a Binary Tree
    leetcode Delete Node in a Linked List
    leetcode Search a 2D Matrix II
    leetcdoe Valid Anagram
    leetcode Add Digits
    leetcode Single Number III
    leetcode Ugly Number
    leetcode Ugly Number II
  • 原文地址:https://www.cnblogs.com/yiyezhiqiu1/p/13056062.html
Copyright © 2020-2023  润新知