4.25(第一天)
python应用领域广泛,例如:爬虫,数据分析,科学计算,自动化办公,自动化运维,网站开发,多媒体处理,机器学习,深度学习等。下图展示了学习python的知识框架。
在这里插入图片描述

下面,我为你设计了Python基础知识的学习路径。
在这里插入图片描述

import requests
from aip import AipOcr

image = requests.get('https://res.pandateacher.com/python_classic.png').content

APP_ID = '16149264'
API_KEY = 'yxYg9r4OuAs4fYvfcl8tqCYd'
SECRET_KEY = 'yWg3KMds2muFsWs7MBSSFcgMQl8Wng4s'
client = AipOcr(APP_ID, API_KEY, SECRET_KEY)
res = client.basicGeneral(image)
if 'words_result' in res.keys():
    for item in res['words_result']:
        print(item['words'])

else:
    APP_ID = '11756541'
    API_KEY = '2YhkLuyQGljPUYnmi1CFgxOP'
    SECRET_KEY = '4rrHe2BF828bI8bQy6bLlx1MelXqa8Z7'
    client = AipOcr(APP_ID, API_KEY, SECRET_KEY)
    res = client.basicGeneral(image)
    if 'words_result' in res.keys():
        for item in res['words_result']:
            print(item['words'])
    else:
        print(res)

你已经看到了,机器能精准地识别图片中的文字,这就是我们能通过Python帮计算机做到的:图像识别,让计算机拥有“眼睛”,看懂图片。

你知道,图像识别是人工智能领域的一个应用。下面,我们再来一个更厉害的:真正地运行一个人工智能小程序,和计算机进行“对话”。它其实就是Python码出来的Siri。``

import urllib.parse
import hashlib
import time
import random
import string
import requests
import sys
import readline

def curl_md5(src):
    m = hashlib.md5(src.encode('UTF-8'))
    # 将得到的MD5值所有字符转换成大写
    return m.hexdigest().upper()


"""
get_req_sign :根据 接口请求参数 和 应用密钥 计算 请求签名
参数说明
    -pa:接口请求参数
    -apk:应用密钥
返回数据
    -签名结果
"""


def get_req_sign(pa, apk):

    # 1.字典升序排序
    pa_list = list(pa.items())
    pa_list.sort()

    # 2.拼按URL键值对
    tem_str = ''
    for i in range(len(pa_list)):
        if pa_list[i][1]:
            tem_str += (pa_list[i][0] + '=' + urllib.parse.quote(pa_list[i][1]) + '&')

    # 3.拼接app_key
    tem_str += ('app_key=' + apk)

    # 4.MD5运算 + 转换大写,得到请求签名
    sign = curl_md5(tem_str)
    return sign


def get_params(plus_item):

    # 请求时间戳(秒级),用于防止请求重放(保证签名5分钟有效) 
    t = time.time()
    time_stamp = str(int(t))
    # 请求随机字符串,用于保证签名不可预测  
    nonce_str = ''.join(random.sample(string.ascii_letters + string.digits, 10))

    global se

    app_id = '2127007340'
    app_key = '9Fm2D9tkB4lEjZ89'
    params = {
        'app_id': app_id,
        'time_stamp': time_stamp,
        'nonce_str': nonce_str,
        'question': plus_item,
        'sign': '',
        'session': se
    }

    params['sign'] = get_req_sign(params, app_key)
    return params


def get_content(plus_item):
    # 聊天的API地址    
    url = "https://api.ai.qq.com/fcgi-bin/nlp/nlp_textchat"
    # 获取请求参数  
    plus_item = plus_item.encode('UTF-8')
    payload = get_params(plus_item)
    r = requests.post(url, data=payload)

    if r.json()["ret"] == 0:
        print('吴小枫:' + r.json()["data"]["answer"])
    else:
        print('今天我出了一点小问题~快联系助教帮忙解决一下~~')
        sys.exit()


feature_text = ['''
大家好!我是你的聊天机器人吴小枫。
我有问必答,有人会问我“今天深圳天气怎么样?”,也有人问我“你喜欢我吗?”
快来问我问题呀,欢迎来撩!
>''', '''
再来问我点啥吧!我把我知道的都告诉你,嘻嘻!
>''', '''
# 我有点饿了,再和你聊完最后一句,我就要下线啦!你还有什么要问我的?
# >''']

se = str(random.randint(1, 10000))

for i in range(len(feature_text)):
    comment = input(feature_text[i])
    get_content(comment)
    time.sleep(1)

print('\n我走啦,下次见!')

注意,【前方高能预警】,接下来,我要告诉你一个99%的初学者都踩过的代码bug。

在Python中,默认所有正确的语法,包括标点符号都是【英文】。不小心用了中文标点的话,计算机会无法识别,然后报错。

在终端里,你能看到的最常见的符号报错提示就是【syntaxError:invalid syntax】(语法错误:无效语法)。在这里插入图片描述
你能用print()函数给自己创造一个可爱的好朋友“人工智障小埋”,她会蹦跶着到你面前,调皮地让你猜她的年龄。

import random
import time

###提示语部分
print('你好,我是机器人小埋,我们来玩个猜年龄的小游戏吧~(◆◡◆)')
time.sleep(2)

print('''
=============================
   干物妹!うまるちゃんの年齢
=============================
''')
time.sleep(1)


print('小埋的真实年龄在1到10之间哦~')
time.sleep(1)


print('不过,你只有5次机会哦~')
time.sleep(1)


print('下面,请输入小埋的年龄吧:')


#从0至10产生一个随机整数,并赋值给变量age
age = random.randint(1,10)


#设置次数
for guess in range(1,6):
   
   #输入玩家猜测的年龄
    choice=int(input())
    
    #判读玩家输入的年龄是否等于正确的年龄
    if choice<age:
        print('小埋的提示:你猜小了(;´д`)ゞ。。。。')
                
    elif choice>age:
        print('小埋的提示:乃猜大了惹(>﹏<)~~')
            
    else: 
        print('猜了'+str(guess)+'次,你就猜对惹~hiu(^_^A;)~~~')
        break   
                
#判断猜测次数 
if choice  == age:
    print('搜噶~那么小埋下线了~拜拜~( ̄︶ ̄)↗')
    
else:
    print('哎呀~你还是木有猜对啊~但是你只有5次机会诶~怎么办啊~')
    print('那好吧~心软的小埋只好告诉你,我才'+str(age)+'岁哦~(*/ω\*)')

下面正式开始关卡练习:

第0关 print()函数与变量

第0关我们学习了print函数

print()函数由两部分构成:1. 指令:print;2. 指令的执行对象:在print后面的括号里的内容。
我们对电脑下指令——把括号里的内容打印给我瞧瞧
在这里插入图片描述
另外我们还学习了换行

*单引号,双引号、三引号
1)单引号‘ ‘和双引号“ “:直接输出
2)三引号‘‘’ ‘’‘:换行

*转义字符
“换行”的转义字符是\n

*变量命名规范:
2、变量的命名规范
1.只能用一个词
2.只能包含字母、下划线和数字
3.不能以数字开头
4.尽量描包含的内容

转义符号:
1、\n(换行)
例子:print(“把我的幻影和梦\n放在狭长的贝壳里\n柳枝编成的船篷\n还旋绕着夏蝉的长鸣\n拉紧桅绳\n风吹起晨雾的帆\n我开航了”)

以下是拓展:(只做了解,不用掌握使用方法)

在这里插入图片描述

知识点回顾
print()函数
print()函数为打印函数,如括号内数据带引号,print()函数会原样打印引号内的数据。

打印换行
当我们想要用print()函数实现换行,通常可以用转义字符\n和三引号print(’’’ ‘’’)来实现。

练习介绍:
除了文字和数字之外,我们还可以灵活运用print()函数,打印出带特殊格式的东西,例如:字符画。现在,请试着打印出一只属于自己的“皮卡丘”,成功打印后,请把你的皮卡丘分享到社群里吧。

题目要求:
请你使用print()函数和’’'将下面的皮卡丘打印出来。皮卡丘字符画会在【书写代码】步骤里直接提供。

    へ     /|
  /7    ∠_/
  / │   / /
 │ Z _,< /   /`ヽ
 │     ヽ   /  〉
  Y     `  /  /
 イ● 、 ●  ⊂⊃〈  /
 ()  へ    | \〈
  >ー 、_  ィ  │ //
  / へ   / ノ<| \\
  ヽ_ノ  (_/  │//
  7       |/
  >―r ̄ ̄`ー―_
print('''  へ     /|
  /\7    ∠_/
  / │   / /
 │ Z _,< /   /`ヽ
 │     ヽ   /  〉
  Y     `  /  /
 イ● 、 ●  ⊂⊃〈  /
 ()  へ    | \〈
  >ー 、_  ィ  │ //
  / へ   / ノ<| \\
  ヽ_ノ  (_/  │//
  7       |/
  >―r ̄ ̄`ー―_''')

知识点回顾
print()函数
print()函数为打印函数,如括号内数据带引号,print()函数会原样打印引号内的数据。

转义字符
\n 代表换行;’ 代表单引号。

三引号
三引号可以把内容里的单引号打印出来且可以换行

练习介绍:
在千寻进入魔法世界的期间,有一位“无脸男”一直跟在她的身边。一开始,千寻对无脸男的跟踪感到害怕,直到她第一次听见了无脸男对她说的话后,才理解了他,并和他成为了朋友。  

题目要求:
下面是无脸男对千寻说的话,请你把这段话,运用转义字符按照如下格式打印出来。其中,具体文字会在【书写代码】步骤中直接提供。
千寻你好,人们叫我'无脸男'
这个世界的人都选择无视我
只有你看到了我并和我打招呼
我感到很孤单,很孤单
你愿意和我成为朋友吗?

**

第1关 数据类型与转换

**
——第1关——
#第1关:主要内容是数据类型和数据拼接
数据类型分为;int,str,float

数据拼接需要数据类型一致(str)

需要注意的是:input默认输出为字符串,在后面与int做条件判断的时候,需要先转换数据类型为int(input());同时数字做数据拼接时,需要使用str(number)

字符串的识别方式非常简单——有层名为【引号】的皮,只要是被【单/双/三引号】这层皮括起来的内容,不论那个内容是中文、英文、数字甚至火星文。只要是被括起来的,就表示是字符串类型。

Chinese = '镜像世界'
English = "mirror world"
number = "666"
symbol = '''科A!@'''
mixture = '镜像世界mirror world666科A!@'

print(Chinese)
print(English)
print(number)
print(symbol)
print(mixture)
现在,我们再趁热打铁一下,请问以下三个数据【'hello mirror world'】、【108】、【''108''】的数据类型分别为:

在这里插入图片描述
在这里插入图片描述

你学得怎么样,来测试下?

单选题
请问以下三个数据【42】、【'42'】、【42.0】的数据类型分别为:

在这里插入图片描述

print(499*561+10620-365)
print((5025-525)/100+18*17)

单选题
那么,按照这样的计算顺序,请问以下算数式的计算顺序是什么? print((60-4)*2-55/5)
hero = '我'
organization = '风变编程'
identity = '学员'
action = '是'
ID = '007'

print(hero+action+organization+identity+ID)
print(organization+identity+ID+action+hero)

学会了字符串拼接,就能让我们的数据整合更为灵活,组合出任意我们想要的内容。
在这里插入图片描述
在这里插入图片描述
只要你把内容写在括号里,type()函数就会立即将它的类型查询出来。

who = '我的'
action = '是'
destination = '镜像世界'
number = 153
code = '通行密码'

type(who)
type(action)
type(destination)
type(number)
type(code)

单选题
结合我们在课程最开始介绍的三种数据类型的知识点,下面请你回答下方代码,分别代表什么类型呢? <class 'str'> <class 'int'>
可是为什么不同类型的数据不能拼接在一起呢?一句话:圈子不同不相融。

我打个比方,这就类似我饭阿森纳,你饭热刺。虽说咱俩都是足球粉丝,但喜欢的球队却是死对头,所以根本没办法交朋友,没法把咱俩放在一起。

但是,在某些时候,咱俩总得有低头不见抬头见,在一个球场看球的时候。那么这时候要怎么办呢?要如何把两个不同类型的数据拼在一起呢?

这就涉及到了我们这关最后一个知识点:数据转换。

在这里插入图片描述
str()函数能将数据转换成其字符串类型,不管这个数据是int类型还是float类型,只要放到括号里。这个数据就能摇身一变,成为字符串类型。

who = '我的'
action = '是'
destination = '镜像世界'
number = 153
code = '通行密码'

print(who+destination+code+action+str(number))
magic = '水仙花数'
action = '是'
unit = '个'
expression = '=1x1x1+5x5x5+3x3x3'
number = 153

print(str(number)+expression+action+unit+magic)
print('153'+expression+action+unit+magic)

将数据转换为整数类型的方法也很简单,就是int()函数。其使用方法同str()一样,将你需要转换的内容放在括号里就行,像这样:int(转换的内容)。

下面我们来试验一下,请补全代码,计算出number1和number2这两个变量的和。【要点提示:1. int()函数转换数据类型;2. 运算符+计算;3. print()函数】

number1 = '6'
number2 = '1'

print(int(number1)+int(number2))

首先float()函数的使用,也是将需要转换的数据放在括号里,像这样:float(数据)。

其次,float()函数也可以将整数和字符串转换为浮点类型。但同时,如果括号里面的数据是字符串类型,那这个数据一定得是数字形式。

那么,经过之前str()和int()操练,float()函数是不是好懂了一些?

height = 188.0
weight = 180.0
age = '89'

print(height)
print(weight)
print(float(age))

在这里插入图片描述
在这里插入图片描述

但以上这些,也仅仅是开始,以后你将学习更为复杂的代码及命令,掌握更多的与计算机沟通的技巧。

**

下一关预告

镜像世界是一个伪现实,在某些特定场景下会幻灭,比如:灭霸的宝石能将奇异博士制造的镜像世界打碎,并变成一个黑洞。宝石的力量如此强大,灭霸还要继续寻找无限宝石。

恭喜闯过第1关的你,将跟着我在第2关通过《复仇者联盟:无限宝石》的故事,一起学习与计算机沟通的逻辑从而操纵计算机,同复仇者联盟并肩作战阻止灭霸筹集钻石、毁灭一半宇宙。

比如:如果灭霸拥有五颗宝石时,我们需要给计算机下达一个命令『红女巫毁掉幻视头上的心灵宝石』, 那么这个指令如何用Python准确下达呢?

当然是『if…』语句条件判断啦,恩~,除此之外还有更强的语句呢?我就先不剧透了,等着你来探索哦!


知识点回顾


数据拼接
只能字符串类型数据间拼接,并使用拼接符号+

数据转换
str()函数能将数据转换成其字符串类型,不管这个数据是中文、数字、标点还是火星文,只要放到括号里。这个数据就能摇身一变,成为字符串类型。

练习介绍:
在Python的魔法世界,最常用的数据类型有三种:字符串(str)、整数(int)和浮点数(float)。  

在数据拼接中,为了将不同的信息进行整合,可以使用拼接符号。但是,如果数据非字符串类型,则无法进行拼接。  

此时,我们可以使用数据转换函数str(),将数据转换为字符串类型后,再进行拼接。  

题目要求:
请运用所给变量,使用str()函数打印两句话。
第一句话:1人我编程累碎掉的节操满地堆
第二句话:2眼是bug相随我只求今日能早归  

其中,变量会在【书写代码】提供,请直接【复制粘贴】:
number1  = 1
number2 = 2
unit1 = '人'
unit2 = '眼'
line1 = '我编程累'
line2 = '是bug相随'
sentence1 = '碎掉的节操满地堆'
sentence2 = '我只求今日能早归'

知识点回顾
数据拼接
只能字符串类型数据间拼接,并使用拼接符号+

数据转换
由于小数形式的字符串,无法用int()函数转换。所以我们可以先使用float()函数,将此数据转换为浮点型。计算出结果后再取整,并转换为字符串类型。最后再与其他变量拼接,得出结果。

练习介绍
在数据拼接中,为了将不同的信息进行整合,可以使用拼接符号。
但是,如果数据非字符串类型,则无法进行拼接。此时,我们可以使用数据转换函数str(),将数据转换为字符串类型后,再进行拼接。
并且针对不同类型的数据,我们需要经历多次转换,最后才能转为字符串类型。  

题目要求
请运用所给变量,使用数据转换str()int()float()及数据拼接符号+,打印一句话: 脸黑怪我咯7张蓝票一个SSR都没有  

其中,变量会在【书写代码】提供,请直接【复制粘贴】:
slogan = '脸黑怪我咯'
number = '7.8'
unit = '张'
sentence = '蓝票一个SSR都没有'
Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐