夜雨聆风学习资料网 资料列表 开通 VIP 用登录 / 注册 ⌄
PDF

粤教版信息技术九年级全一册

查看资料信息、公开预览和下载状态。

共 127 页PDF · 5.4MB
下载

文档在线预览

公开展示前 10 页
100%
1
《粤教版信息技术九年级全一册》第1页预览
2
《粤教版信息技术九年级全一册》第2页预览
3
《粤教版信息技术九年级全一册》第3页预览
4
《粤教版信息技术九年级全一册》第4页预览
5
《粤教版信息技术九年级全一册》第5页预览
6
《粤教版信息技术九年级全一册》第6页预览
7
《粤教版信息技术九年级全一册》第7页预览
8
《粤教版信息技术九年级全一册》第8页预览
9
《粤教版信息技术九年级全一册》第9页预览
10
《粤教版信息技术九年级全一册》第10页预览

本文档共 127 页 剩余 117 页未展示,请下载后查阅

文档文本内容

九
年
级
九年级 全一册
信
息
技
术
全
一
册
广
东
教
育
出
版
社
课
程
教
材
研 广东教育出版社课程教材研发中心 编著
发
中
心
教材审定编号:2016—053 广 省 中
小学教材审定委
员 会
东 东 2
省 广 审定通过 0 1 广东省义务教育教学用书
义 经 年 6
务
教
育
教
学
用
书
编
著
批准文号:粤发改价格[2017]434号 举报电话:12358 定价:14.64元
2019初中信息9.indd 1 2019/8/23 下午5:50广东省义务教育教学用书
九年级 全一册
广东教育出版社课程教材研发中心 编著
穆 肃 黄国洪 主编
广东教育出版社
广州
2019初中信息9扉.indd 1 2019/7/23 上午11:00致同学们
亲爱的同学们,很高兴和你们相会在信息世界里!
信息世界里除了有很多好玩的技术和实用的工具软件
之外,还充满具有挑战性的问题和解决问题的思维方法。
你想成为信息技术的能手、信息世界的使者吗?通过努力
学习和探索,你的梦想一定能够实现!
在本教材里,同学们将了解Python程序设计语言的基础
知识,学会使用程序设计语言实现简单算法,掌握运用程
序设计语言解决现实问题的基本方法,并通过分析学习数
据,认识信息社会数据的重要性。此外,同学们还将通过
感受人工智能,初步了解人工智能的概念,了解人工智能
技术的特点与应用,了解智能信息处理的巨大进步和应用
潜力,认识人工智能在信息社会中的重要作用。
爱因斯坦曾说过:“兴趣是最好的老师。”本教材以
完成“学习任务”的方式或“问题解决”的方式引导同学
们开展学习,并设置了“学习任务”“合作探究”“自主
探究”“小组讨论”“反思评价”等栏目,以及丰富多样
的主题式综合活动,以激发同学们学习和应用信息技术的
兴趣,在参与多种多样的活动中提高信息素养。
同学们,让我们一起走进轻松、愉快的信息技术课
堂,携手度过一段美好的时光!
编 者
4Z1366目录.indd 3 2019/8/24 9:33:21目 录
第一单元 Python程序设计/1
第一课 Python入门 / 2
第二课 用程序求解问题 / 9
第三课 用函数进行计算 / 17
第四课 用分支结构控制计算 / 25
第五课 用循环结构执行重复计算 / 34
第六课 用模块处理数据 / 49
第七课 用模块作图 / 54
第八课 综合活动:我的学习数据分析 / 62
单元扼要回顾 / 72
单元学习评价 / 73
1
4Z1366目录.indd 1 2019/8/24 9:33:22第二单元 人工智能ABC/75
第九课 感受人工智能 / 76
第十课 文字识别 / 83
第十一课 图像识别 / 88
第十二课 语音识别与翻译 / 93
第十三课 生物特征分析 / 98
第十四课 图像风格迁移 / 103
第十五课 认识机器学习 / 109
第十六课 人工智能揭秘 / 113
单元扼要回顾 / 119
单元学习评价 / 120
公众号:电子课本大全
2
(PDF课本免费下)
4Z1366目录.indd 2 2019/8/24 9:33:23第一单元 Python程序设计
知识导图
Python程序设计 在信息时代,如何利用计算机程序更快速、更
高效地解决现实社会中的问题是人类一直追求的
目标。而Python不仅是我们学习程序设计基础的工
具,更是解决各类现实问题的好帮手。Python以其
Python入门
解释性的语法、简洁的语句、强大的功能和开放的
用程序求解问题
第三方扩展库等优点,受到许多人的推崇,并广泛
用函数进行计算 应用于各个领域。
在本单元中,我们将了解Python程序设计语言
用分支结构控制计算
的基础知识,学会使用程序设计语言实现简单算
用循环结构执行重复计算
法,掌握运用程序设计语言解决现实问题的基本方
用模块处理数据 法,并通过分析学习数据,认识信息社会数据的重
要性。
用模块作图
综合活动:我的学习数据
分析
公众号:电子课本大全
(PDF课本免费下)
4Z1366.indd 1 2019/8/24 11:07:06Python入门
第一课
学习目标 知识导图
了解Python语言开发环境的
Python入门
搭建步骤。
知道Python语言的集成环境 安装Python程序
使用Python集成环境工具IDLE
工具。
Python语言的Anaconda版
掌握Python语言程序的调试
和运行方法。
Python语法表达优美易读,代码编写效率高,且具有强大而丰富实用
的标准库与第三方库,这使编程变得方便简洁。Python支持不同功能的应
用程序开发,如简单的文字处理程序开发、Web应用程序开发和游戏设计
开发等都可以实现。在构建人工智能系统方面,Python可通过标准库和相
应工具的使用进行数据分析和处理,提取数据特征,并用一定的结构形式
表现出来。本课,我们将学习Python编程环境的搭建方法。
一、安装Python程序
学习任务
本书将采用Windows 64位操作系统进行讲解,首先从Python的官方网
站或者在本书的学习平台上下载并运行Python程序的安装文件,进入安装
流程,如图1-1所示。注意勾选“Add Python 3.7 to PATH”项,然后点击
“Install Now”,稍等片刻即可完成安装。Python程序文件会安装到安装时
设置的目录下。安装完成后显示的画面如图1-2所示。
公众号:电子课本大全
2
(PDF课本免费下)
4Z1366.indd 2 2019/8/24 11:07:07图1-1 Python程序安装设置
图1-2 Python程序安装完成
点击屏幕左下角,展开“开始”菜单。在“开始”菜单中找到
“Python 3.7”文件夹,点击“Python 3.7(64-bit)”项,运行Python程
序,如图1-3所示。当我们看到如图1-4所示画面,就说明Python程序安
装成功了!否则,建议把安装文件重新运行一遍,务必记得勾选“Add
Python 3.7 to PATH”项。
公众号:电子课本大全
3
(PDF课本免费下)
4Z1366.indd 3 2019/8/24 11:07:07图1-3 在“开始”菜单中找到“Python 3.7”文件夹
图1-4 Python程序安装成功
看到提示符“>>>”就表示我们已经成功搭建Python交互式语言环境。
可以通过输入Python程序代码,并获得程序代码的输出结果,例如输入
“300+500”,敲击键盘上的回车键后会立刻得到输出结果“800”,如图
1-5所示。关闭命令行窗口,即可退出Python交互式语言环境。
图1-5 运用Python代码计算“300+500”
公众号:电子课本大全
4
(PDF课本免费下)
4Z1366.indd 4 2019/8/24 11:07:07二、使用Python集成环境工具IDLE
体验过Python交互式语言环境的简单操作后,还需要配置程序编写的
专属工具——集成环境工具IDLE。
学习任务
在“开始”菜单中找到“Python 3.7”文件夹,点击“IDLE(Python 3.7
64-bit)”项,打开Python集成环境工具IDLE,如图1-6所示。
图1-6 在“开始”菜单中点击“IDLE(Python 3.7 64-bit)”项
此时,我们就可以在如图1-7所示的窗口中使用Python语言进行编
程了。
在该界面中,我们只能逐行输入代码。假如要输入多行代码再运行,
则需通过Python代码编辑器进行编程。
图1-7 Python IDLE界面
公众号:电子课本大全
5
(PDF课本免费下)
4Z1366.indd 5 2019/8/24 11:07:07学习任务
点击菜单栏“File”—“New File”,如图1-8所示,打开Python代码
编辑器界面。
图1-8 点击菜单栏“File”—“New File”
输入print(″Hello″) 。
接着点击菜单栏的“Run”—“Run Module”,如图1-9所示。
图1-9 点击菜单栏“Run”—“Run Module”
这时根据提示选择代码文件保存路径,然后运行程序,输出结果为
“Hello”。
公众号:电子课本大全
6
(PDF课本免费下)
4Z1366.indd 6 2019/8/24 11:07:08三、Python语言的Anaconda版
Anaconda是Python语言的一个发行版本,是包含Conda管理工具、虚
拟环境、多个科学包及其依赖项的管理系统。在完成Anaconda的安装后,
在“开始”菜单中找到“Anaconda3(64-bit)”文件夹,点击“Jupyter
Notebook”,如图1-10所示,计算机将会在默认浏览器中打开Jupyter
Notebook主界面,如图1-11所示。
图1-10 在“开始”菜单中找到“Jupyter Notebook”文件
图1-11 Jupyter Notebook主界面
在Jupyter Notebook主界面右上方单击“New”—“Python3”,进入
Python语言编辑界面,如图1-12所示。
公众号:电子课本大全
7
(PDF课本免费下)
4Z1366.indd 7 2019/8/24 11:07:08图1-12 Python语言编辑界面
接下来,让我们开启Python语言的探索之旅吧!
小组讨论
结合Python语言环境的搭建过程,填写表1-1。
表1-1 学习讨论表
序号 讨论内容 讨论结果
Python语言的集成环境工具有
1
哪些
Python语言程序的调试和运行
2
步骤有哪些
反思评价
对自己在本课中的学习进行评价,对照表1-2,在相应的○里画
“√”,在“其他收获”栏里留言。
表1-2 学习评价表
序号 学习内容 能否掌握
1 了解Python语言开发环境的搭建步骤 能○ 不能○
2 知道Python语言的集成环境工具 能○ 不能○
3 掌握Python语言程序的调试和运行方法 能○ 不能○
其他收获:
公众号:电子课本大全
8
(PDF课本免费下)
4Z1366.indd 8 2019/8/24 11:07:09用程序求解问题
第二课
学习目标 知识导图
掌握Python语言程序的数据输入方法。
用程序求解问题
掌握Python语言程序的数据计算方法。
掌握Python语言程序的数据输出方法。 数据的输入
赋值运算符与赋值表达式
掌握Python语言程序的绘图功能。
数据的输出
海龟绘图模块
在程序设计中,数据的输入、输出是最基本的操作之一,在Python语
言程序中,数据的输入、输出可通过函数来实现。
一、数据的输入
在Python语言中,数据输入通过函数input()来实现,调用函数input()的
一般格式为:
<变量>=input(″<提示信息>″)
它的含义是在屏幕上显示<提示信息>,然后把输入的字符信息赋予
<变量>。
学习任务
在屏幕上输入字符串“Hello”,并把该字符串赋予变量“a”,然后
通过变量“a”输出字符串“Hello”。
代码(“>>>”后跟着的内容)与输出结果如图2-1所示。
公众号:电子课本大全
9
(PDF课本免费下)
4Z1366.indd 9 2019/8/24 11:07:09图2-1 数据的输入与输出示例
注意:在Python语言中,函数input()将返回输入的数据,我们可以输
入数字、字符串和其他任意类型的数据。但是无论用户输入什么类型的数
据,函数input( )返回的结果都是字符串。因此,在处理输入的数据之前,
需要将其转换为所需的数据类型。
二、赋值运算符与赋值表达式
在Python语言中,对变量的赋值通过赋值运算符“=”来完成。赋值表
达式的一般格式为:
<变量>=<表达式>
赋值运算符的作用与数学上的等号不同,它具有方向性,即把右边
<表达式>的计算结果赋予左边的<变量>,且赋值运算符的左边只能是变
量,而不能是常量或表达式。
学习任务
判断下面的赋值运算是否正确。
x+y=z
3.1415926=pi
由于赋值运算符左边不能是常量或表达式,因此上述赋值运算都是错
误的。
赋值运算的过程是先计算右边的表达式,再将计算结果赋值给左边的
变量,如图2-2所示。
公众号:电子课本大全
10
(PDF课本免费下)
4Z1366.indd 10 2019/8/24 11:07:09图2-2 变量的赋值示例
Python语言的赋值运算符有不同的形式与作用,如表2-1所示。
表2-1 Python语言赋值运算符
运算符 描 述 示 例 运算符 描 述 示 例
= 直接赋值 x=y /= 除法赋值 x/=y相当于x=x/y
+= 加法赋值 x+=y相当于x=x+y %= 求余赋值 x%=y相当于x=x%y
-= 减法赋值 x-=y相当于x=x-y **= 指数幂赋值 x**=y相当于x=x**y
*= 乘法赋值 x*=y相当于x=x*y //= 整除赋值 x//=y相当于x=x//y
三、数据的输出
在Python语言中,数据输出通过函数print( )来实现,调用函数print( )的
一般格式为:
print([object,...],[sep=′′],[end=′\n′])
学习任务
下面,对函数print( )的一般格式开展探究学习。
(1)方括号中的项是选填的,允许省略,如果省略则取系统的默认值。
(2)“object”是要输出的对象,可以是常量、变量或表达式等。
(3)“sep=”后面的空格(可以指定为其他字符)表示每个输出对象
之间的分隔符,如果省略,默认值是一个单个的空格。如:
print(4,5,6,sep=′***′)
输出结果为:
4***5***6
公众号:电子课本大全
11
(PDF课本免费下)
4Z1366.indd 11 2019/8/24 11:07:09(4)“end=”后面的字符串表示在文本末尾输出一个字符串,如果省
略,默认值是一个“\n”换行符;如设为其他字符(如“end=′′”),则
输出当前行的所有内容后,在末尾加设置的字符(如空格),接着不换行输
出下一个输出数据。函数print()输出示例程序如下:
print(″hello″,end=′′)
print(″world″)
输出结果为:
he world
(5)函数print()支持参数格式化,其带格式参数输出示例程序如下:
x=12.3456
y=98
print(″%s %-.3f″%(″x=″,x))
print(″%s %05d″%(″y=″,y))
print(″%s:%-.3f,%05d″%(″result″,x,y))
输出结果为:
x= 12.346
y= 00098
result:12.346,00098
四、海龟绘图模块
LOGO语言是一种编程学习工具,具有模块化、可扩展性、交互性和
灵活性等特点,适合儿童学习。它的特色就是用户可以通过编程指挥一只
小海龟(turtle)在屏幕上前进、转向。随着海龟的移动会在屏幕上留下轨
迹,从而绘制出图形。
海龟绘图(Turtle Graphics)后来被移植到各种高级语言中。Python也
内置了turtle模块,且基本上还原了原版海龟绘图的所有功能。在Python语
言中,要使用海龟绘图,需要使用 from <模块名> import 语句导入turtle模块
的所有内容,示例如下:
公众号:电子课本大全
12
(PDF课本免费下)
4Z1366.indd 12 2019/8/24 11:07:09from turtle import *
Turtle().write("hello world")
goto(63,0)
运行上述代码,系统将会自动弹出一个绘有文字“hello world”及一条
带箭头的下划线的绘图窗口,如图2-3所示。
图2-3 海龟绘图示例程序输出结果
图2-3中的箭头代表小海龟,函数goto(X,Y)表示移动小海龟到目标坐标
位置,从而画出一条直线。
学习任务
下面,对海龟绘图开展探究学习,绘制如图2-4所示的“笑脸”图案。
图2-4 “笑脸”示例程序输出结果
公众号:电子课本大全
13
(PDF课本免费下)
4Z1366.indd 13 2019/8/24 11:07:09(1)问题分析。
“笑脸”由一个圆、两只眼睛和弧形的嘴巴组成,眼睛由两个大小不
相等的圆组成,其中小圆填充黑色,嘴巴由左右对称的两条弧线组成。画
各部分前需要使用goto语句定位,然后再开始画。
使用goto语句移动笔(海龟)时,会绘制出线条,所以需要使用
penup()提起笔,移动到目标位置后,使用pendown()放下笔,继续画后面的
内容。
(2)语句解释。
表2-2 语句解释
语句 解释
from turtle import * #导入海龟绘图功能模块
pensize(width) #设置笔尖大小
hideturtle() #使海龟隐形(隐藏海龟)
colormode(cmode) #设置颜色模式,cmode值为1或255
color(r, g, b) #设置画笔颜色
penup() #抬起笔
goto(X,Y) #把笔定位到坐标(X,Y)
pendown() #放下笔
begin_fill() #开始填充颜色
end_fill() #颜色填充结束
#画出圆弧
circle(radius, extent=None, #参数分别为半径、弧度和画圆弧线段的数量
steps=None) #弧度默认为360度,是一个圆
#弧度为负数,则反方向画弧
(3)程序。
from turtle import*
pensize(4) #设置笔尖大小
hideturtle() #隐藏海龟
colormode(255) #设置颜色模式
color(160,100,50) #设置画笔颜色
公众号:电子课本大全
14
(PDF课本免费下)
4Z1366.indd 14 2019/8/24 11:07:09#颜色RGB值,必须在0至255之间
#画脸和嘴
circle(80) #画脸
penup() #抬起笔
goto(0,30) #把笔定位到嘴的中间
pendown() #放下笔
circle(60,-30) #画左半边嘴
circle(60,60) #画右半边嘴
color(0,0,0) #设置画笔颜色
#画右眼睛
penup() #抬起笔
goto(40,90) #把笔定位到右眼位置
pendown() #放下笔
circle(15) #画眼眶
begin_fill() #开始填充颜色
circle(5) #画眼珠
end_fill() #颜色填充结束
#画左眼睛
penup() #抬起笔
goto(-20,90) #把笔定位到左眼位置
pendown() #放下笔
circle(15) #画眼眶
begin_fill() #开始填充颜色
circle(5) #画眼珠
end_fill() #颜色填充结束
公众号:电子课本大全
15
(PDF课本免费下)
4Z1366.indd 15 2019/8/24 11:07:09小组讨论
结合数据的输入、赋值、输出和海龟绘图模块的运用,填写表2-3。
表2-3 学习讨论表
序号 讨论内容 讨论结果
Python语言程序怎样
1
输入数据
Python语言程序怎样
2
计算数据
Python语言程序怎样
3
输出数据
Python语言程序怎样
4
绘图
反思评价
对自己在本课中的学习进行评价,对照表2-4,在相应的○里画
“√”,在“其他收获”栏里留言。
表2-4 学习评价表
序号 学习内容 能否掌握
1 掌握Python语言程序的数据输入方法 能○ 不能○
2 掌握Python语言程序的数据计算方法 能○ 不能○
3 掌握Python语言程序的数据输出方法 能○ 不能○
4 掌握Python语言程序的绘图功能 能○ 不能○
其他收获:
公众号:电子课本大全
16
(PDF课本免费下)
4Z1366.indd 16 2019/8/24 11:07:10用函数进行计算
第三课
学习目标 知识导图
掌握Python语言程序算术运算符的运用
用函数进行计算
方法。
掌握Python语言程序数学函数的运用 算术运算符
数学函数
方法。
math模块
掌握Python语言程序的数据输出方法。
掌握Python语言程序绘制sin函数图像
的方法。
一、算术运算符
Python提供了丰富的算术运算符,用于进行四则运算及各种算术运
算。表3-1以优先级为顺序列出了Python的各种算术运算符。表中假设n为
整型变量,取值为8,得出结果。
表3-1 算术运算符
运算符 含 义 说 明 优先级 实 例 结 果
+ 一元+ 操作数的值 1 +n 8
- 一元- 操作数的反数 1 -n -8
* 乘法 操作数的积 2 n*n*2 128
/ 除法 第二个操作数除第一个操作数 2 10/n 1.25
// 整数除法 两个整数相除,结果为整数 2 10//n 1
第二个操作数除第一个操作数
% 模数 2 10%n 2
后的余数
+ 加法 两个操作数之和 3 10+n 18
从第一个操作数中减去第二
- 减法 3 n-10 -2
个操作数
公众号:电子课本大全
17
(PDF课本免费下)
4Z1366.indd 17 2019/8/24 11:07:10学习任务
输入以下代码,体验算术运算符的运用。
a=21
b=10
c=0
c=a+b
print("c的值为",c)
c=a-b
print("c的值为",c)
c=a*b
print("c的值为",c)
c=a/b
print("c的值为",c)
输出结果为:
c的值为 31
c的值为 11
c的值为 210
c的值为 2.1
二、数学函数
Python包含若干用于数学运算的内置函数,如表3-2所示。
表3-2 用于数学运算的内置函数
函 数 含 义 实 例 结 果
返回数值x的绝对值。
abs(-1.2) 1.2
abs(x) 如果x为复数,则返回x
abs(3-4j) 5.0
的模
divmod(a,b) 返回a除以b的商和余数 divmod(5,3) (1, 2)
公众号:电子课本大全
18
(PDF课本免费下)
4Z1366.indd 18 2019/8/24 11:07:10(续表)
函 数 含 义 实 例 结 果
返回x的y次幂(x**y)。
pow(2,10) 1024
pow(x,y[,z]) 如 果 指 定 z , 则 返 回
pow(2,10,10) 4
pow(x,y)%z
四舍五入取整。如果
round(number round(3.14159) 3
指 定ndigits,则 保 留
[,ndigits]) round(3.14159,4) 3.1416
ndigits位小数
sum(iterable sum((1,2,3)) 6
求和
[,start]) sum((1,2,3),44) 50
学习任务
1. 对数据进行四舍五入
代码如下:
print("round(80.23456,2):",round(80.23456,2))
print("round(100.000056,3):",round(100.000056,3))
print("round(-100.000056,3):",round(-100.000056,3))
以上实例运行后,输出结果为:
round(80.23456,2): 80.23
round(100.000056,3): 100.0
round(-100.000056,3): -100.0
2. 求一组数据的和
代码如下:
c=sum([2,4,6,8,9,7,5])
print("2+4+6+8+9+7+5=",c)
以上实例运行后,输出结果为:
2+4+6+8+9+7+5= 41
公众号:电子课本大全
19
(PDF课本免费下)
4Z1366.indd 19 2019/8/24 11:07:103. 求一组数据的最大值
代码如下:
print("max(80,100,1000):",max(80,100,1000))
print("max(-20,100,400):",max(-20,100,400))
print("max(-80,-20,-10):",max(-80,-20,-10))
print("max(0,100,-400):",max(0,100,-40))
以上实例运行后,输出结果为:
max(80,100,1000): 1000
max(-20,100,400): 400
max(-80,-20,-10): -10
max(0,100,-400): 100
4. 求一组数据的最小值
代码如下:
print("min(80,100,1000):",min(80,100,1000))
print("min(-20,100,400):",min(-20,100,400))
print("min(-80,-20,-10):",min(-80,-20,-10))
print("min(0,100,-400):",min(0,100,-400))
以上实例运行后,输出结果为:
min(80,100,1000): 80
min(-20,100,400): -20
min(-80,-20,-10): -80
min(0,100,-400): -400
三、math模块
在数学中,除了加减乘除四则运算,还有其他运算,比如乘方、开
方、对数运算等。要实现这些运算,需要用到 Python 中的一个模块——
math模块。
公众号:电子课本大全
20
(PDF课本免费下)
4Z1366.indd 20 2019/8/24 11:07:10math 模块已包含在Python标准库中,无须安装,就可以直接使用。
其调用代码如下:
import math
下面,我们就可以使用math模块提供的工具了。比如,通过math模块
获得圆周率,如图3-1所示。
图3-1 通过math模块获得圆周率
学习任务
下面,使用海龟绘图模块的sin函数,绘制如图3-2所示的图像。
图3-2 使用sin函数绘制的图象
(1)问题分析。
使用goto()语句移动笔前,需要使用penup()提起笔,到达目标位置后,
使用pendown()放下笔继续画线。
因为要画y=sin(x)函数,x的取值范围是(-2π,2π)。由于2π的值太
小,直接用来画图,得到的图像太小。为了便于查看,可以对图像进行放
大,即用一个数值(如40)对坐标(x,y)进行放大。
所以 goto (x,y) 的坐标对应为 goto(X ,Y),其中:
X = round(40 * x)
Y = round(40 * math.sin( x ))
公众号:电子课本大全
21
(PDF课本免费下)
4Z1366.indd 21 2019/8/24 11:07:10(2)程序。
设 x 取值-2*pi , -1.5*pi , -1*pi , -0.5*pi , 0 , 0.5*pi , 1*pi , 1.5*pi , 2*pi
共9个点。
调用海龟绘图模块和math模块,并进行笔尖大小、颜色设置等操作。
import math
from turtle import*
pensize(4) #设置笔尖大小
hideturtle() #隐藏海龟
colormode(255) #设置颜色模式
color(160,100,50) #设置画笔颜色
画出坐标轴
#画横坐标
penup()
goto(-300,0)
pendown()
goto(300,0)
goto(290,10)
penup()
goto(290,-10)
pendown()
goto(300,0)
#画纵坐标
penup()
goto(0,-100)
pendown()
goto(0,100)
goto(-10,90)
penup()
goto(10,90)
pendown()
goto(0,100)
公众号:电子课本大全
22
(PDF课本免费下)
4Z1366.indd 22 2019/8/24 11:07:10使用sin函数画出图像。
penup()
goto(0,0)
pendown()
n=40 #放大系数
pi=math.pi #把圆周率赋值给变量pi
x=-2*pi
goto(round(x*n),round(n*math.sin(x)))
x=-1.5*pi
goto(round(x*n),round(n*math.sin(x)))
x=-1*pi
goto(round(x*n),round(n*math.sin(x)))
x=-0.5*pi
goto(round(x*n),round(n*math.sin(x)))
x=0*pi
goto(round(x*n),round(n*math.sin(x)))
x=0.5*pi
goto(round(x*n),round(n*math.sin(x)))
x=1*pi
goto(round(x*n),round(n*math.sin(x)))
x=1.5*pi
goto(round(x*n),round(n*math.sin(x)))
x=2*pi
goto(round(x*n),round(n*math.sin(x)))
小组讨论
结合算术运算符、数学函数和math模块的运用,填写表3-3。
公众号:电子课本大全
23
(PDF课本免费下)
4Z1366.indd 23 2019/8/24 11:07:10表3-3 学习讨论表
序号 讨论内容 讨论结果
Python语言程序的算术
1
运算符如何运用
Python语言程序的数学
2
函数如何运用
Python语言程序的数据
3
怎样输出
4 使用sin函数绘制图像
反思评价
对自己在本课中的学习进行评价,对照表3-4,在相应的○里画
“√”,在“其他收获”栏里留言。
表3-4 学习评价表
序号 学习内容 能否掌握
1 掌握Python语言程序算术运算符的运用方法 能○ 不能○
2 掌握Python语言程序数学函数的运用方法 能○ 不能○
3 掌握Python语言程序的数据输出方法 能○ 不能○
4 掌握Python语言程序绘制sin函数图像的方法 能○ 不能○
其他收获:
公众号:电子课本大全
24
(PDF课本免费下)
4Z1366.indd 24 2019/8/24 11:07:10用分支结构控制计算
第四课
学习目标 知识导图
知道程序的分支结构。 用分支结构
理解Python语言程序中分支结构的 控制计算
单分支if语句
功能。
双分支if语句
会运用分支结构解决简单的问题。
datetime模块
会运用日期函数显示日期、星期等
内容。
在解决问题的过程中,我们常常需要对事物进行判断和选择,这时需
要引入分支结构。分支结构往往适用于带有逻辑判断或数值比较的语句。
其关键在于设置合适的判断条件与合理的执行支路。
在程序设计中,主要使用条件语句“if”来实现判断和选择。if语句在
使用中主要包括单分支if语句和双分支if语句。
一、单分支if语句
Python语言中单分支if语句的格式如下:
if <条件表达式>:
<语句A>
如果<条件表达式>为真,则执行<语句A>,然后继续往下执行;如果
<条件表达式>为假,则不执行<语句A>,继续往下执行,其执行过程如图
4-1所示。
注意,单分支if语句的执行命令<语句A>以缩进为标志。通常在编写程
序时,按键盘上的“Tab”键实现语句的缩进。
公众号:电子课本大全
25
(PDF课本免费下)
4Z1366.indd 25 2019/8/24 11:07:10图4-1 单分支if语句的执行过程流程图
学习任务
1. 问题
张明和社团部的同学在某网络购物平台上看到某种笔记本搞优惠活
动,活动规定:一次性购买5本或以下不打折;一次性购买6本或以上、10
本或以下打九折;一次性购买11本或以上打八折。试编写程序,根据笔记
本的售价和张明购买笔记本的数量,计算购买笔记本需付的总金额。
上述“计算网购笔记本总金额”问题给出了什么条件?需要解决什么
问题?解决问题的方法和步骤是怎样的?
2. 分析
解决上述问题的方法有多种,其中一种方法如下:
设张明购买笔记本的数量为S本,笔记本的售价为每本P元,折扣系数
为J,总金额为T,关键的问题是如何根据购买的数量确定折扣系数。根
据题意,得:
如果S≤5,则J=1.0。
如果6≤S≤10,则J=0.9。
如果S≥11,则J=0.8。
T=S*P*J,T的值即为所求的总金额。
3. 算法
根据上面的分析,解决问题的算法描述如下:
公众号:电子课本大全
26
(PDF课本免费下)
4Z1366.indd 26 2019/8/24 11:07:11①开始。
②输入S和P的值。
③如果S≤5,则J=1.0。
④如果6≤S≤10,则J=0.9。
⑤如果S≥11,则J=0.8。
⑥T=S*P*J。
⑦输出T的值。
⑧结束。
4. 流程图
算法流程图如图4-2所示。
图4-2 计算网购笔记本总金额流程图
公众号:电子课本大全
27
(PDF课本免费下)
4Z1366.indd 27 2019/8/24 11:07:135. 程序
根据前面设计的算法流程图,程序如下:
# encoding: utf-8
S=input(″请输入购买笔记本的数量(本):″)
S=int(S)
P=float(input(″请输入笔记本的单价(元/本):″))
if S<=5:
J=1.0
if S>=6 and S<=10:
J=0.9
if S>=11:
J=0.8
T=S*P*J
print(″总金额为″,T,″元″)
6. 调试
运行程序,根据提示输入购买笔记本的数量与笔记本的单价,输出结
果为:
请输入购买笔记本的数量(本):10
请输入笔记本的单价(元/本):5
总金额为45.0元
二、双分支if语句
Python语言中双分支if语句的格式如下:
if <条件表达式>:
<语句A>
else:
<语句B>
如果<条件表达式>为真,则执行<语句A>,然后继续往下执行;如果
<条件表达式>为假,则执行<语句B>,然后继续往下执行,其执行过程如
公众号:电子课本大全
28
(PDF课本免费下)
4Z1366.indd 28 2019/8/24 11:07:13图4-3所示。双分支if语句的执行命令<语句A>和<语句B>以缩进为标志。
图4-3 双分支if语句的执行过程流程图
学习任务
1. 问题
张明在某网络购物平台上看到三种不同的笔记本,优惠金额各不相
同,笔记本A每本优惠a元,笔记本B每本优惠b元,笔记本C每本优惠c元。
试编写程序,根据每种笔记本的优惠金额,计算笔记本优惠金额的最
大值。
求“网购笔记本总金额”和求“网购笔记本优惠金额最大值”有何区
别?求“网购笔记本优惠金额最大值”需要解决什么问题?解决问题的方
法和步骤是怎样的?
2. 分析
解决上述问题的方法有多种,其中一种方法步骤如下:
对于输入的三个数a,b,c,设其中的最大值为m。可先找出a和b中较
大的值,把较大值赋予m;然后再将m与c比较,把较大值赋予m,从而使m
的值为a,b,c三个数中的最大值。
3. 算法
根据上面的分析,解决问题的算法描述如下:
①开始。
②输入三个数a,b,c。
公众号:电子课本大全
29
(PDF课本免费下)
4Z1366.indd 29 2019/8/24 11:07:13③如果a>b,则m=a,否则m=b。
④如果c>m,则m=c。
⑤输出m的值。
⑥结束。
4. 程序
根据前面设计的算法,程序如下:
# encoding: utf-8
a=input("请输入笔记本A的优惠金额(元):")
a=float(a)
b=input("请输入笔记本B的优惠金额(元):")
b=float(b)
c=input("请输入笔记本C的优惠金额(元):")
c=float(c)
if a>b:
m=a
else:
m=b
if c>m:
m=c
print("最大优惠金额为",m,"元")
5. 调试
运行程序,根据提示输入三种笔记本的优惠金额a,b,c的值,输出结
果为:
请输入笔记本A的优惠金额(元):8
请输入笔记本B的优惠金额(元):4
请输入笔记本C的优惠金额(元):6
最大优惠金额为 8.0 元
公众号:电子课本大全
30
(PDF课本免费下)
4Z1366.indd 30 2019/8/24 11:07:13三、datetime模块
datetime模块是Python标准库中用于处理日期和时间的模块。
使用前需要先调用datetime模块,方法如下:
from datetime import *
获取当前日期和时间的代码如下:
datetime.now()
输出结果如图4-4所示。
图4-4 当前时间输出结果
我们可以通过方法weekday()获取当前是星期几,结果为 0~6共7个数
字,其中:
0 —— 星期一
1 —— 星期二
2 —— 星期三
3 —— 星期四
4 —— 星期五
5 —— 星期六
6 —— 星期日
学习任务
使用datetime模块正确显示今天是星期几,并打招呼。输出结果为:
您好,今天是星期二
(1)问题分析。
使用方法weekday()获得的是一个与星期几对应的数字,通过判断数
字,转化为星期几,并连接上打招呼的文字,输出结果。
公众号:电子课本大全
31
(PDF课本免费下)
4Z1366.indd 31 2019/8/24 11:07:13(2)核心代码。
获取星期几对应的数字。
d=datetime.today().weekday()
判断数字对应的星期几,并打招呼。
if d == 0 :
print ("您好,今天是星期一")
(3)程序。
from datetime import*
d=datetime.today().weekday()
if d==0:
print("您好,今天是星期一")
if d==1:
print("您好,今天是星期二")
if d==2:
print("您好,今天是星期三")
if d==3:
print("您好,今天是星期四")
if d==4:
print("您好,今天是星期五")
if d==5:
print("您好,今天是星期六")
if d==6:
print("您好,今天是星期日")
小组讨论
结合程序分支结构的应用,填写表4-1。
公众号:电子课本大全
32
(PDF课本免费下)
4Z1366.indd 32 2019/8/24 11:07:14表4-1 学习讨论表
序号 讨论内容 讨论结果
1 什么是程序的分支结构
如何在Python语言程序
2
中实现分支结构的功能
如何运用分支结构解决
3
简单的问题
如何使用日期函数显示
4
日期、星期等内容
反思评价
对自己在本课中的学习进行评价,对照表4-2,在相应的○里画
“√”,在“其他收获”栏里留言。
表4-2 学习评价表
序号 学习内容 能否掌握
1 知道程序的分支结构 能○ 不能○
2 理解Python语言程序中分支结构的功能 能○ 不能○
3 会运用分支结构解决简单的问题 能○ 不能○
4 会运用日期函数显示日期、星期等内容 能○ 不能○
其他收获:
公众号:电子课本大全
33
(PDF课本免费下)
4Z1366.indd 33 2019/8/24 11:07:14用循环结构执行重复计算
第五课
学习目标 知识导图
知道程序的循环结构。 用循环结构
执行重复计算
理解Python语言程序中循环结构
的功能。 for循环
while循环
会运用循环结构解决简单的问题。
循环嵌套
掌握运用循环结构绘制sin函数
循环控制
图象的方法。
绘制连续的sin函数图象
循环结构是程序设计中常用的基本结构之一。循环结构往往适用于
需要计算机自动完成重复工作的情况。Python程序循环结构主要包括for循
环、while循环、循环嵌套、循环控制等内容。
一、for循环
for循环语句的一般格式如下:
for <循环变量> in <列表>:
<循环体>
1. 语句探究
for循环是依次把列表中的每个元素逐个迭代。for语句末尾的“:”表示
下一行是循环体的第一行。在for循环中,<循环体>可以是语句或语句组,
在编写时需要缩进,从for语句末尾的冒号开始至其下面没有缩进的代码之
间都是循环体(需要重复执行的部分)。因此,for循环所包含的语句是以
缩进为标志的。
公众号:电子课本大全
34
(PDF课本免费下)
4Z1366.indd 34 2019/8/24 11:07:14(1)示例程序一代码如下:
for value in [1,2,3,4,5]:
print(value)
print('good')
此时,“value”与“'good'”的输出语句均为循环体。输出结果为:
1
good
2
good
3
good
4
good
5
good
(2)示例程序二代码如下:
for value in [1,2,3,4,5]:
print(value)
print('good')
此时,只有“value”的输出语句为循环体。输出结果为:
1
2
3
4
5
good
2. 列表方式
需要注意的是,列表可以有以下几种表达方式:
(1)直接罗列方式。
如上述代码“for value in [1,2,3,4,5]:”即使用直接罗列的方式。
公众号:电子课本大全
35
(PDF课本免费下)
4Z1366.indd 35 2019/8/24 11:07:14(2)先定义后使用方式。
程序代码如下:
values=[1,2,3,4,5]
for value in values:
print(value)
print('good')
输出结果为
1
2
3
4
5
good
(3)使用函数range()。
函数range()让Python语言程序从指定的第一个值开始数,并在到达所指
定的第二个值后停止,因此不包含第二个值。如“range(1,6)”其实是生成
1~6之间的一系列整数(不包含6)。
函数range()的示例程序代码如下:
for value in range(1,6):
print(value)
print('good')
输出结果为:
1
2
3
4
5
good
使用函数range()时,还可以指定步长。如需要打印1~10以内的偶数,
公众号:电子课本大全
36
(PDF课本免费下)
4Z1366.indd 36 2019/8/24 11:07:14示例程序代码如下:
for value in range(2,11,2):
print(value)
输出结果为:
2
4
6
8
10
当然,使用函数range( )时,数值列表也可以是降序的,如“range(10,1,-2)”
命令能生成10~-2之间的偶数(倒序)。示例程序代码如下:
for value in range(10,1,-2):
print(value)
输出结果为:
10
8
6
4
2
学习任务
1. 问题
张明和社团部的同学讨论后,决定先网购单价为5元至15元共十一种
笔记本各一本。各笔记本单价均为整数,且没有重复,且每一种都只买一
本,那么他们一共要花多少元?
上述“求网购笔记本总金额”问题给出了什么条件?需要解决什么问
题?解决问题的方法和步骤是怎样的?
公众号:电子课本大全
37
(PDF课本免费下)
4Z1366.indd 37 2019/8/24 11:07:142. 分析
解决上述问题的方法有很多,下面给出其中一种解法:
这个问题相当于要计算从5~15的累加值。5~15的累加就是计算
5+6+…+15,可以用for循环结构来解决这个问题。
3. 算法
根据上述分析,可设计如下算法:
①开始。
②设置循环变量“i”从5累加到16。
③设置临时循环变量“sum”,不断和变量“i”进行加法运算,并记
录运算结果。
④变量“i”每增加1,就和变量“sum”进行一次加法运算,直到i=16
时退出循环,变量“sum”记录的就是累加的结果。
⑤结束。
4. 流程图
算法流程图如图5-1所示。
图5-1 累加算法流程图
公众号:电子课本大全
38
(PDF课本免费下)
4Z1366.indd 38 2019/8/24 11:07:155. 程序
根据前面设计的算法,程序代码如下:
sum=0
for i in range(5,16):
sum=sum+i
print("The result:",sum)
6. 调试
运行程序,输出结果为:
The result:110
二、while循环
while循环是当型循环,当条件满足时则不断循环,当条件不满足时则
退出循环。while循环语句的一般格式如下:
while <表达式>:
<循环体>
<表达式>一般是一个关系表达式或一个逻辑表达式,<表达式>的值应
该是逻辑真或假(True或False)。当表达式的值为真时,执行<循环体>语
句;当表达式的值为假时,退出循环,执行<循环体>外的下一条语句。
在while循环中,<循环体>可以是语句或语句组,循环所包含的语句同
样以缩进为标志。
每次循环都是执行完<循环体>语句后,回到<表达式>处重新计算表达
式的值,然后进行判断。一旦表达式的值为假就退出循环,为真时就继续
执行<循环体>语句。因此,<循环体>中必须有改变<表达式>的值的语句,
否则while循环将成为死循环。
while循环的执行流程图如图5-2所示。
公众号:电子课本大全
39
(PDF课本免费下)
4Z1366.indd 39 2019/8/24 11:07:15图5-2 while循环执行流程图
学习任务
1. 问题
张明到幼儿园做志愿者,买了200颗糖果准备在活动时派给小朋友。
计划给遇到的第一个小朋友派2颗糖果,给第二个小朋友派4颗……依此类
推,后一个小朋友比前一个小朋友多得2颗糖果。那么,派到第几个小朋
友时,糖果被派完?
上述“什么时候把糖果派完”的问题给出了什么条件?需要解决什么
问题?解决问题的方法和步骤是怎样的?
2. 分析
用while循环语句编程时要注意<表达式>的构成,下面给出一种参考
解法:
设得到糖果的小朋友数量为num,每次派发的糖果数为sugar,已派发
的糖果总数为sum,则sum可以用如下的式子表示:
sum=2+4+6+…+2*num(其中num=1,2,3,…)
于是这个问题就可以转化为:当sum≥200时,求num的值。
公众号:电子课本大全
40
(PDF课本免费下)
4Z1366.indd 40 2019/8/24 11:07:153. 算法
根据上述的分析,设计算法如下:
①开始。
②令num=0。
③令sugar=0。
④令sum=0。
⑤num=num+1。
⑥sugar=sugar+2。
⑦sum=sum+sugar。
⑧如果sum<200,则返回第④步。
⑨如果sum≥200,输出num的值。
⑩结束。
4. 程序
根据前面设计的算法,程序如下:
num=0
sugar=0
sum=0
while sum<200:
num=num+1
sugar=sugar+2
sum=sum+sugar
print("获得糖果的小朋友共有",num,"个")
5. 调试
运行程序,输出结果为:
获得糖果的小朋友共有14人
合作探究
以小组为单位,讨论、交流下列问题。
问题一:如何根据上述解法,用通俗的语言描述程序思路,并画出其
算法流程图?
公众号:电子课本大全
41
(PDF课本免费下)
4Z1366.indd 41 2019/8/24 11:07:15问题二:对于上述问题的解法,如果改变几个变量的初始值,假设令
num=1,sugar=2,sum=0,那么,while循环中的<循环体>语句应该如何编
写?它们之间的语序能改变吗?为什么?
三、循环嵌套
单独使用for循环语句或while循环语句,往往无法解决复杂的问题。如
需要解决类似“要做很多遍工作,而每一遍工作都需要重复做一些事情”
的问题时,就需要用到多重循环,即“循环嵌套”。如果某一种循环语句
中包含着自身或其他循环语句,就称之为循环的“嵌套”。另外,for循环
与while循环之间也可以相互嵌套。
学习任务
1. 问题
张明与社团部的同学经过讨论,决定购买单价为1.8元的笔记本、单价
为1.9元的笔以及单价为2.1元的小饰品作为活动的奖品和纪念品,计划每
一种物品至少购买100件并且尽可能用完1000元经费。
怎样设计最优采购方案,才能使购买物品的数量最多?如果在数量相
同的情况下,经费余额最小的方案为最优,最优方案中每一种物品的数量
分别是多少?经费余额是多少?
上述“最优采购方案设计”问题的解决,需要用到循环嵌套的知识。
那么需要解决什么问题?解决问题的方法和步骤是怎样的?
2. 分析
设单价为1.8元、1.9元、2.1元的物品数量分别为x,y,z,经费余额为
r元,所买物品总数量为s,根据题意,有关系式1.8x+1.9y+2.1z≤1000(x,
y,z∈N,N表示自然数)。
分别将x,y,z从100~555,100~526,100~476中逐个枚举。
若x,y,z的值满足1.8x+1.9y+2.1z≤1000(x,y,z∈N),则s=x+y+z,
r=1000-(1.8x+1.9y+2.1z),并记录此时x,y,z的值。
继续运行程序,若x+y+z>s且1000-(1.8x+1.9y+2.1z)<r,则r=1000-
(1.8x+1.9y+2.1z),并记录此时x,y,z的值。
公众号:电子课本大全
42
(PDF课本免费下)
4Z1366.indd 42 2019/8/24 11:07:153. 算法
根据上述的分析,设计算法如下:
①令x1=100,y1=100,z1=100,s=300,r=1000-(100×1.8+100×1.9+
100×2.1)。
②x从100~555枚举。
③y从100~526枚举。
④z从100~476枚举。
⑤如果1.8x+1.9y+2.1z≤1000,继续运行;否则退出循环,程序结束。
(备注:如果1.8x+1.9y+2.1z>1000,则可以退出循环,不需再让循环空转
而做无用功)
⑥如果x+y+z>s,则s=x+y+z,r=1000-(1.8x+1.9y+2.1z),x1=x,y1=y,
z1=z。
⑦如果x+y+z==s且1000-(1.8x+1.9y+2.1z)<r,则r=1000-(1.8x+1.9y+2.1z),
x1=x,y1=y,z1=z。
⑧跳转第④步。
⑨跳转第③步。
⑩跳转第②步。
k输出x1,y1,z1,s和r的值。
4. 程序
根据前面设计的算法,程序如下:
x1=100
y1=100
z1=100
s=300
r=1000-(100*1.8+100*1.9+100*2.1)
for x in range(100,555):
for y in range(100,526):
for z in range(100,476):
if 1.8*x+1.9*y+2.1*z<=1000:
if x+y+z>s:
s=x+y+z
公众号:电子课本大全
43
(PDF课本免费下)
4Z1366.indd 43 2019/8/24 11:07:15r=1000-(1.8*x+1.9*y+2.1*z)
x1=x
y1=y
z1=z
if x+y+z==s and r>=1000-(1.8*x+1.9*y+2.1*z):
s=x+y+z
x1=x
y1=y
z1=z
else:
break
#当1.8*x+1.9*y+2.1*z>1000时,退出循环,避免循环空转而浪费时间
print("符合条件的最优方案是:")
print("购买笔记本(1.8元/本):",x1,"本")
print("购买笔 (1.9元/支):",y1,"支")
print("购买小饰品(2.1元/件):",z1,"件")
print("买到的物品总数量为:",s)
print("经费余额为:",r,"元")
5. 调试
运行程序,输出结果为:
符号条件的最优方案是:
购买笔记本(1.8元/本):327本
购买笔 (1.9元/支):106支
购买小饰品(2.1元/件):100件
买到的物品总数量为:533
经费余额为:0.0元
四、循环控制
循环控制包括控制循环变量的变化和控制循环的跳转。无论是for循
公众号:电子课本大全
44
(PDF课本免费下)
4Z1366.indd 44 2019/8/24 11:07:15环还是while循环,都需要一个循环变量来控制循环的执行和结束。但
是,有些循环仅靠循环变量自身的变化难以达到想要的控制效果,因此
需要用到循环控制的跳转语句。控制循环的跳转,需要用到“break”
和“continue”两个关键字。其中,“break”的作用是中断循环,
“continue”的作用是跳出本次循环体的执行。
1.break语句
在循环结构中,可以用break语句跳出当前循环体,从而中断当前循
环。在实际运用中,往往在循环体中使用某一判断条件来判断是否中断循
环(即跳出当前循环),以继续执行当前循环外的下一条命令。即当某个
判断条件成立时,循环体中余下的代码不再运行,也不管循环控制变量的
值是否满足循环结束判定条件,循环立即中断。使用break语句,能让程序
按照程序员的要求执行想要执行的代码。
2.continue语句
continue语句是对break语句的补充。continue语句执行时,不是立即跳
出循环体,而是当条件符合,进行跳转时,跳过该次循环结束前的语句,
回到循环开头的条件判定部分,开始执行新一轮循环。同理,在实际运用
中,往往在循环体中使用某一个条件来选择是否执行跳转循环。
五、绘制连续的sin函数图像
学习任务
使用循环语句,绘制如图5-3所示的sin函数图像。
图5-3 用循环语句绘制sin函数图像输出结果
公众号:电子课本大全
45
(PDF课本免费下)
4Z1366.indd 45 2019/8/24 11:07:16(1)问题分析。
在第三课中,我们使用sin函数9个点的坐标绘制成了一幅折线图图
像,由于取的点数太少,点与点之间的间隔太大,画出的图像不光滑。在
π
本节中,利用循环语句,取x轴的间隔为 ,重新绘制图像。
10
(2)主要代码。
n=40 #放大系数
x=-2*math.pi
while x<=2*math.pi:
goto(round(x*n),round(n*math.sin(x)))
x=x+math.pi/10
(3)程序。
import math
from turtle import*
pensize(4) #设置笔尖大小
hideturtle() #隐藏海龟
colormode(255) #设置颜色模式
color(160,100,50) #设置画笔颜色
#画横坐标
penup()
goto(-300,0)
pendown()
goto(300,0)
goto(290,10)
penup()
goto(290,-10)
pendown()
goto(300,0)
#画纵坐标
penup()
公众号:电子课本大全
46
(PDF课本免费下)
4Z1366.indd 46 2019/8/24 11:07:16goto(0,-100)
pendown()
goto(0,100)
goto(-10,90)
penup()
goto(10,90)
pendown()
goto(0,100)
penup()
goto(0,0)
pendown()
n=40 #放大系数
#用循环语句画sin函数图像
x=-2*math.pi
while x<=2*math.pi:
goto(round(x*n),round(n*math.sin(x)))
x=x+math.pi/10
小组讨论
结合程序循环结构的应用,填写表5-1。
表5-1 学习讨论表
序号 讨论内容 讨论结果
1 什么是程序的循环结构
如何在Python语言程序
2
中实现循环结构的功能
如何运用循环结构解决
3
简单的问题
如何运用循环结构绘制
4
sin函数图像
公众号:电子课本大全
47
(PDF课本免费下)
4Z1366.indd 47 2019/8/24 11:07:16反思评价
对自己在本课中的学习进行评价,对照表5-2,在相应的○里画
“√”,在“其他收获”栏里留言。
表5-2 学习评价表
序号 学习内容 能否掌握
1 知道程序的循环结构 能○ 不能○
2 理解Python语言程序中循环结构的功能 能○ 不能○
3 会运用循环结构解决简单的问题 能○ 不能○
4 掌握运用循环结构绘制sin函数图像的方法 能○ 不能○
其他收获:
公众号:电子课本大全
48
(PDF课本免费下)
4Z1366.indd 48 2019/8/24 11:07:16用模块处理数据
第六课
学习目标 知识导图
掌握Python模块的调用方法。
用模块处理数据
知道Python的模块扩展库。
会运用模块解决简单的问题。 模块
内置模块
掌握第三方扩展库的安装方法。
扩展库
安装模块
Python中,包含Python代码的源文件(通常包含用户自定义的变量、函
数和类)称为模块,其扩展名为.py。模块是一种组织形式,是某类功能代
码的集合。它将彼此有关系的Python代码组织到一个个文件中。模块中可
能包含可执行代码、函数和类,或者以上这些语句的组合。
一、模块
Python标准库和第三方库中含有大量的模块,通过import语句,可以导
入模块,并使用其定义的功能。导入和使用模块功能的基本形式如下:
import <模块名> #导入模块
<模块名>.<函数名> #使用模块的全限定名称,调用模块中的函数
<模块名>.<变量名> #使用模块的全限定名称,访问模块中的变量
学习任务
求解一元二次方程x2+5x+6=0。
程序代码如下:
公众号:电子课本大全
49
(PDF课本免费下)
4Z1366.indd 49 2019/8/24 11:07:16import math
a=1;b=5;c=6
x1=(-b+math.sqrt(b*b-4*a*c))/(2*a)
x2=(-b-math.sqrt(b*b-4*a*c))/(2*a)
print("方程x*x+5*x+6=0的解为",x1,x2)
运行结果为
方程x*x+5*x+6=0的解为 -2.0 -3.0
二、内置模块
Python自身带有的模块叫作Python内置模块,内置模块也被称为“标
准库”。
表6-1 Python标准库中的常用函数
函数名称 使用说明
abs(x) 返回x的绝对值
len(x) 计算变量x的长度,但x必须是可以计算长度的数据类型
min(x) 返回变量x的最小值
max(x) 返回变量x的最大值
int(x) 把变量x转换成整型
float(x) 将变量x转换成浮点型
sum(x) 计算变量x中元素的总和
bin(x) 把数值x转换为二进制数值
bool(x) 若x是False、None或是空值就返回False,否则返回True
chr(x) 返回整数x对应的ASCII字符
divmod(a,b) 返回a/b的商和余数,以元组的方式返回
all(x) x中的所有元素都是True才会返回True
any(x) x中的所有元素中只要有一个是True就会返回True
input(x) 显示信息x,并要求输入数据
print() 输出函数
公众号:电子课本大全
50
(PDF课本免费下)
4Z1366.indd 50 2019/8/24 11:07:16三、扩展库
在众多大数据采集工具中,Python以其简洁、开源和包容的特点在大
数据分析领域独树一帜。Python本身的数据分析功能不强,但可以安装第
三方扩展库中的模块来扩展功能。Python的第三方扩展库有许多,一般会
使用到的扩展库包括NumPy、SciPy、Pandas、Matplotlib、Scikit-Learn、
Keras和Gensim等。
1. NumPy
NumPy(Numerical Python)是构建科学计算环境最基础的扩展库,为
Python中的n维数组和矩阵的操作提供了大量有用的功能。该库还提供了数
组与向量化计算功能,可以提升程序运算性能,加快执行速度。
2. SciPy
SciPy是工程和科学软件库,包含线性代数、优化、集成和统计等功能
模块。SciPy库的主要功能建立在 NumPy 的基础之上,因此它的数组运算
大量使用了NumPy库中的功能。它通过特定的子模块提供高效的数值例程
操作,如数值积分等。SciPy所有子模块中的函数都有详细的介绍文档。
3. Pandas
Pandas是一个Python包,通过标记(labeled)和关系(relational)数据
工作,简单直观。Pandas是数据处理和分析的有效工具,可用于进行快速
简单的数据操作、聚合和可视化。库中有两个主要的数据结构,一维数组
(Series)和二维数组(DataFrame)结构。
4. Matplotlib
Matplotlib是Python的一个2D绘图库,它以各种硬拷贝格式和跨平台的
交互式环境生成出版质量级别的图形。在NumPy、SciPy和Pandas的帮助
下,开发者仅需通过 Matplotlib输入几行代码,便可以生成折线图、直方
图、条形图、散点图等图象。
公众号:电子课本大全
51
(PDF课本免费下)
4Z1366.indd 51 2019/8/24 11:07:16四、安装模块
Python的第三方模块扩展库需要安装后才能使用,在Windows系统下可
以在cmd命令行窗口进行安装。
模块安装命令如下:
Python -m pip install <模块名>
查看已经安装模块命令如下:
Python -m pip list
学习任务
为Python安装第三方模块扩展库Matplotlib。
(1)安装过程。
打开cmd命令行窗口,执行“python -m pip install matplotlib”语句进行
自动安装,系统会自动下载安装包,如图6-1所示。
图6-1 matplotlib安装过程
图6-2 Python已安装模块列表
公众号:电子课本大全
52
(PDF课本免费下)
4Z1366.indd 52 2019/8/24 11:07:16安装完成后,在cmd窗口下,用python -m pip list查看本机安装的所有
模块,如图6-2所示,确保matplotlib已经安装成功。
小组讨论
结合模块调用、安装和使用的知识,填写表6-2。
表6-2 学习讨论表
序号 讨论内容 讨论结果
1 什么是Python模块
如何在Python语言程序中调用
2
模块
3 如何调用模块解决简单的问题
4 如何为Python安装第三方扩展库
反思评价
对自己在本课中的学习进行评价,对照表6-3,在相应的○里画
“√”,在“其他收获”栏里留言。
表6-3 学习评价表
序号 学习内容 能否掌握
1 掌握Python模块的调用方法 能○ 不能○
2 知道Python的扩展库 能○ 不能○
3 会运用模块解决简单的问题 能○ 不能○
4 掌握第三方扩展库的安装方法 能○ 不能○
其他收获:
公众号:电子课本大全
53
(PDF课本免费下)
4Z1366.indd 53 2019/8/24 11:07:16用模块作图
第七课
学习目标 知识导图
了 解 Python的 作 图 模 块 扩 展 库
用模块作图
Matplotlib。
掌握Python作图扩展库Matplotlib Matplotlib扩展库
Matplotlib扩展库的应用
的调用方法。
会运用作图扩展库Matplotlib解决
简单的问题。
会运用作图Matplotlib读取csv文
件,生成曲线图表。
社会科学与自然科学的研究往往需要收集大量的数据,而分析数据、
表现数据内在联系的一个常用方法就是绘制图表。
一、Matplotlib扩展库
Matplotlib是一个非常强大
的 Python 画图工具,它能帮助我
们画出曲线图、散点图、等高线
图、条形图、柱状图等常用统计
图表,甚至连三维图形、动画等
也可以绘制出来,如图7-1至图
7-3所示。
图7-1 柱状图
公众号:电子课本大全
54
(PDF课本免费下)
4Z1366.indd 54 2019/8/24 11:07:17图7-2 等高线图
图7-3 三维图形
公众号:电子课本大全
55
(PDF课本免费下)
4Z1366.indd 55 2019/8/24 11:07:19二、Matplotlib扩展库的应用
1. 绘画曲线
学习任务
在直角坐标系中画出y= 2x + 1的曲线。
导入模块matplotlib.pyplot,并简写成“plt”;导入模块Numpy,并简
写成“np”,代码如下:
import matplotlib.pyplot as plt
import numpy as np
使用np.linspace定义x,范围在(-1,1),个数是50。用仿真二维数据组
(x ,y)表示曲线代码如下:
x = np.linspace(-1, 1, 50)
y = 2*x + 1
使用plt.figure定义一个图像窗口,使用plt.plot画出(x ,y)曲线,使用
plt.show显示图像。
plt.figure()
plt.plot(x, y)
plt.show()
完整代码如下所示。
import matplotlib.pyplot as plt
import numpy as np
x=np.linspace(-1,1,50)
y=2*x+1
plt.figure()
plt.plot(x, y)
plt.show()
公众号:电子课本大全
56
(PDF课本免费下)
4Z1366.indd 56 2019/8/24 11:07:19输出结果如图7-4所示。
图7-4 y=2x+1绘图代码输出结果
2. 制作柱状图
学习任务
绘画柱状图,代码如下:
import matplotlib.pyplot as plt
import numpy as np
n = 12
X = np.arange(n)
Y1 = (1 - X / float(n)) * np.random.uniform(0.5, 1.0, n)
Y2 = (1 - X / float(n)) * np.random.uniform(0.5, 1.0, n)
plt.bar(X, +Y1)
plt.bar(X, -Y2)
plt.xlim(-.5, n)
plt.xticks(())
plt.ylim(-1.25, 1.25)
plt.yticks(())
plt.show()
公众号:电子课本大全
57
(PDF课本免费下)
4Z1366.indd 57 2019/8/24 11:07:19输出结果如图7-5所示。
图7-5 柱状图绘制输出结果
3. 读取csv文件生成曲线图像
学习任务
某同学过去三年语文、数学、英语考试成绩如图7-6和7-7所示。我们
把成绩数据保存在D:\py-code\ chengji.csv。
图7-6 文本形式成绩数据
图7-7 表格形式成绩数据
下面,我们利用Matplotlib扩展库,通过导入csv文件,生成如图7-8所
示的曲线。
公众号:电子课本大全
58
(PDF课本免费下)
4Z1366.indd 58 2019/8/24 11:07:19图7-8 某同学考试成绩折线图
(1)问题分析。
使用 with open("d:\py-code\chengji.csv",'r') as csvfile: 导入csv文件。
以“,”为分隔符逐行读取文件内容到plots变量。
plots = csv.reader(csvfile, delimiter=',')
使用文件的第一行作为x轴坐标,其他行的内容作为y轴坐标数据。可
以用变量j区分是否为第一行,j=0 表示第一行,否则不是第一行。
对于每一行来说,第一列不是数据,可以作为曲线的名称,数据的内
容从第二列开始获取。可以使用 i=0 ,表示第一列。
每读取一行数据后,使用 plt.plot(x,y,label=x0) 合成一条曲线,其中
label作为图例的名称;使用 plt.scatter(x,y,3,"red") 绘制散点图。
若要显示中文,可以加如下代码:
mpl.rcParams['font.sans-serif'] = [u'SimHei']
mpl.rcParams['axes.unicode_minus'] = False
若要显示图例,可以加如下代码:
plt.legend()
(2)程序。
完整程序如下:
import matplotlib as mpl
import matplotlib.pyplot as plt
import csv
公众号:电子课本大全
59
(PDF课本免费下)
4Z1366.indd 59 2019/8/24 11:07:20j=0
x=[]
with open("d:\pycode\chengji.csv",'r') as csvfile:
plots = csv.reader(csvfile,delimiter=',')
for row in plots:
y=[]
for i in range(len(row)):
if i>0 :
if j>0: #不是第一行
y.append(int(row[i])) #记录y轴数据
else: #是第一行
x.append (row[i]) #记录x轴数据
else:
x0=row[i] #第一列数据,作为图例的名称
i=i+1
if j>0: #不是第一行
plt.plot (x,y,label=x0) #添加一条曲线
plt.scatter (x,y,3,"red") #绘制散点图
j=j+1
#显示中文
mpl.rcParams['font.sans-serif'] = [u'SimHei']
mpl.rcParams['axes.unicode_minus'] = False
plt.legend() #显示图例
plt.show()
小组讨论
结合Matplotlib扩展库的应用,填写表7-1。
公众号:电子课本大全
60
(PDF课本免费下)
4Z1366.indd 60 2019/8/24 11:07:20表7-1 学习讨论表
序号 讨论内容 讨论结果
1 Matplotlib有什么作用
如何在Python语言程序中调
2
用Matplotlib
如何运用Matplotlib解决简单
3
的问题
如何读取csv文件,生成曲线
4
图表
反思评价
对自己在本课中的学习进行评价,对照表7-2,在相应的○里画
“√”,在“其他收获”栏里留言。
表7-2 学习评价表
序号 学习内容 能否掌握
1 了解Python的Matplotlib 能○ 不能○
2 掌握Python语言程序Matplotlib的调用方法 能○ 不能○
3 会运用Matplotlib解决简单的问题 能○ 不能○
4 会运用Matplotlib读取csv文件,生成曲线图表 能○ 不能○
其他收获:
公众号:电子课本大全
61
(PDF课本免费下)
4Z1366.indd 61 2019/8/24 11:07:20综合活动:我的学习数据分析
第八课
一、活动主题
学习行为分析就是通过收集和分析众多学习者在网络学习活动中交互
的大量细节数据,掌握学习者的学习特征,以建构更好的教学方法,定位
学习困难群体,评估影响学习者学习的因素,以便及早发现学习者在学
习中存在的困难,为学习者提供重要且深入的建议,让学习者主动参与
学习。老师和学校也可以通过学习行为分析更加精准地了解学生的学习需
求,进而适当调整教学,迅速解决存在的问题。
二、活动过程
活动一
使用海龟绘图模块,绘制如图8-1所示的小猪佩奇头像。
图8-1 利用海龟绘图模块绘制的小猪佩奇头像
公众号:电子课本大全
62
(PDF课本免费下)
4Z1366.indd 62 2019/8/24 11:07:20(1)问题分析。
绘制小猪佩奇需要把小猪分成鼻子、头部、耳朵、眼睛、嘴五个部分
来绘制,在绘制前,需要先在纸上打草稿,对各个部分定好位置,然后逐
步完成。
(2)程序。
from turtle import*
pensize(4) #设置笔尖大小
hideturtle() #隐藏海龟
colormode(255) #设置颜色模式
color((255,155,192),"pink") #设置画笔颜色为粉红色
setup(400,460)
speed(50)
#鼻子
penup()
goto(-100,100)
pendown()
setheading(-30) #设置海龟方向
#(0—东、90—北、180—西、270—南)
begin_fill() #开始填充颜色
a=0.4
for i in range(120):
if 0<=i<30 or 60<=i<90:
a=a+0.08
left(3) #向左转3度
forward(a) #向前走步长a
else:
a=a-0.08
left(3)
forward(a)
end_fill() #颜色填充完成
公众号:电子课本大全
63
(PDF课本免费下)
4Z1366.indd 63 2019/8/24 11:07:20penup()
setheading(90)
forward(25)
setheading(0)
forward(10)
pendown()
pencolor(255,155,192) #设置画笔颜色
setheading(10)
begin_fill()
circle(5)
color(160,82,45) #返回或设置pencolor和fillcolor
end_fill()
penup()
setheading(0)
forward(20)
pendown()
pencolor(255,155,192)
setheading(10)
begin_fill()
circle(5)
color(160,82,45)
end_fill()
#头
color((255,155,192),"pink")
penup()
goto(-69,167)
setheading(0)
pendown()
begin_fill()
公众号:电子课本大全
64
(PDF课本免费下)
4Z1366.indd 64 2019/8/24 11:07:20setheading(180)
circle(300,-30)
circle(100,-60)
circle(80,-100)
circle(150,-20)
circle(60,-95)
setheading(161)
circle(-300,15)
penup()
goto(-100,100)
pendown()
setheading(-30)
a=0.4
for i in range(60):
if 0<=i<30 or 60<=i<90:
a=a+0.08
lt(3) #向左转3度
fd(a) #向前走步长a
else:
a=a-0.08
lt(3)
fd(a)
end_fill()
#耳朵
color((255,155,192),"pink")
penup()
goto(0,160)
pendown()
begin_fill()
setheading(100)
circle(-50,50)
公众号:电子课本大全
65
(PDF课本免费下)
4Z1366.indd 65 2019/8/24 11:07:20circle(-10,120)
circle(-50,54)
end_fill()
penup()
setheading(90)
forward(-12)
setheading(0)
forward(30)
pendown()
begin_fill()
setheading(100)
circle(-50,50)
circle(-10,120)
circle(-50,56)
end_fill()
#眼睛
color((255,155,192),"white")
penup()
setheading(90)
forward(-20)
setheading(0)
forward(-95)
pendown()
begin_fill()
circle(15)
end_fill()
color("black")
penup()
setheading(90)
forward(12)
setheading(0)
公众号:电子课本大全
66
(PDF课本免费下)
4Z1366.indd 66 2019/8/24 11:07:20forward(-3)
pendown()
begin_fill()
circle(3)
end_fill()
color((255,155,192),"white")
penup()
seth(90)
forward(-25)
seth(0)
forward(40)
pendown()
begin_fill()
circle(15)
end_fill()
color("black")
penup()
setheading(90)
forward(12)
setheading(0)
forward(-3)
pendown()
begin_fill()
circle(3)
end_fill()
#嘴
color(239,69,19)
penup()
goto(-20,30)
pendown()
公众号:电子课本大全
67
(PDF课本免费下)
4Z1366.indd 67 2019/8/24 11:07:20setheading(-80)
circle(30,40)
circle(40, 80)
活动二
导入上节课某同学的考试成绩,为该同学统计每次考试的平均分,并
绘制如图8-2所示的平均分折线图。
图8-2 某同学考试成绩及平均分折线图
(1)问题分析。
修改第七课的程序,在适当的位置增加语句,累加每一科成绩,从而
得到总分,然后用总分除以考试科目数,就可以得到每次考试的平均分,
方法如下。
在读第一行数据时,初始化总分为s,然后读取每一列中的成绩数据
时,把该成绩加到对应的总分中。
for i in range(len(row)):
if i>0 :
if j>0:
y.append(int(row[i]))
s[i-1]=int (s[i-1])+int(row[i])
else:
公众号:电子课本大全
68
(PDF课本免费下)
4Z1366.indd 68 2019/8/24 11:07:20x.append(row[i])
s.append(0) #初始化为0
为了方便数组进行四则运算,可以使用 ss=np.array(s) ,把数列转换成
Numpy的数组,这样可以直接进行数组运算,这个也是Python语言的优势
之一。
设置曲线的宽度为4,在图上画出平均分曲线。
plt.plot(x,ss,label='平均分' ,linewidth =4 )
(2)程序。
完整程序如下所示。
import matplotlib as mpl
import matplotlib.pyplot as plt
import numpy as np
import csv
j=0
x=[]
s=[]
with open("d:\pycode\chengji.csv",'r') as csvfile:
plots = csv.reader(csvfile,delimiter=',')
for row in plots:
y=[]
for i in range(len(row)):
if i>0 :
if j>0: #不是第一行
y.append(int(row[i])) #记录y轴数据
s[i-1]=int (s[i-1])+int(row[i])
else: #是第一行
x.append (row[i]) #记录x轴数据
s.append(0) #初始化为0
else:
公众号:电子课本大全
69
(PDF课本免费下)
4Z1366.indd 69 2019/8/24 11:07:20xO=row[i] #第一列数据,作为图例的名称
i=i+1
if j>0: #不是第一行
plt.plot (x,y,label=x0) #添加一条曲线
plt.scatter (x,y,3,"red") #绘制散点图
j=j+1
ss=np.array(s)
ss = ss/(j-1)
plt.plot(x,ss,label="平均分",linewidth =4)
#显示中文
mpl.rcParams['font.sans-serif'] = [u'SimHei']
mpl.rcParams['axes.unicode_minus'] = False
plt.legend() #显示图例
plt.show()
三、展示交流
结合本课综合活动的开展情况,填写表8-1。
表8-1 评价参考指标
序号 项目 评价
全部完成○
1 总体完成度 基本完成○
只完成很少部分○
全部符合○
2 符合要求的程度 基本符合○
不符合○
3 合理设计算法,效果明显 好○ 一般○ 不好○
4 运用所需的模块和命令达到预期效果 能○ 一般○ 不能○
5 参数设置合理,效果明显 好○ 一般○ 不好○
公众号:电子课本大全
70
(PDF课本免费下)
4Z1366.indd 70 2019/8/24 11:07:20四、活动评估
对自己在本课中的学习进行评价,对照表8-2,在相应的○里画
“√”,在“其他收获”栏里留言。
表8-2 学习评价表
序号 学习内容 能否掌握
1 正确分析问题 能○ 不能○
2 合理设计算法 能○ 不能○
3 调用模块解决问题 能○ 不能○
其他收获:
公众号:电子课本大全
71
(PDF课本免费下)
4Z1366.indd 71 2019/8/24 11:07:20单 元 扼 要 回 顾
公众号:电子课本大全
72
(PDF课本免费下)
4Z1366.indd 72 2019/8/24 11:07:22单 元 学 习 评 价
一、学习评价
请根据本单元各环节的学习情况,填写单元学习评价表,从知识与技
能、过程与方法,以及情感态度与价值观等方面,综合评价自己是否达到
了本单元的学习目标。
单元学习评价表
是否达到目标
学习目标
是 否
掌握Python语言程序的调试运行方法
掌握Python语言程序的数据输入、计算和输出方法
掌握Python语言程序算术运算符和数学函数的运用方法
理解程序的分支结构,会运用分支结构解决简单的
知识与
问题
技能
理解程序的循环结构,会运用循环结构解决简单的
问题
掌握Python语言模块的调用方法,会运用模块解决
简单的问题
在学习过程中,能根据本单元的观察、实践、练习
过程与 等环节自主学习,动手操作,开动脑筋积极思考
方法 能与同学交流,勇于尝试不同的操作方法,总结归纳
不同操作方法的特点,从而构建自己的知识体系
在本单元的探究、讨论环节能积极主动地参与小组
情感态
合作学习,勇于表达自己的想法
度与价
当其他同学碰到学习困难时,能主动帮助他们,在
值观
分组探究的过程中,形成小组合作意识
公众号:电子课本大全
73
(PDF课本免费下)
4Z1366.indd 73 2019/8/24 11:07:22二、学习体会
请从以下几方面谈谈自己在本单元学习过程中的成长体会。
本单元对我启发最大的是:
我不太理解的学习内容有:
我还学会了:
我还想学习:
公众号:电子课本大全
74
(PDF课本免费下)
4Z1366.indd 74 2019/8/24 11:07:23第二单元 人工智能ABC
知识导图
人工智能ABC 自计算机诞生以来,人类就一直致力于制造一
台真正像人一样会思考的机器。随着科学技术的高
速发展,人类离这个目标越来越近。当前,人类已
经可以利用人工智能技术实现自动驾驶、人脸识
感受人工智能
别、语音识别和新药研发等功能。人工智能已经走
文字识别
出科幻小说与电影,进入人们的现实生活。
图像识别 人工智能的飞速发展,为制造、教育、交通运
输、安防、医疗等各行各业的发展和社会服务带来
语音识别与翻译
了前所未有的变化,深刻改变了人类的社会生活,
生物特征分析
让人们的学习更个性化,工作更便捷,生活更
图像风格迁移 美好。
在本单元中,我们将通过学习人工智能的应用
认识机器学习
案例,了解人工智能的内涵与应用领域,了解人工
人工智能揭秘
智能技术运用的知识和方法,感受人工智能为社会
的发展带来的巨大影响。
公众号:电子课本大全
(PDF课本免费下)
4Z1366.indd 75 2019/8/24 11:07:23感受人工智能
第九课
学习目标 知识导图
知道人工智能的概念。
感受人工智能
了解人工智能的发展历程。
了解人工智能对人类社会产生 初识人工智能
人工智能的发展历程
的影响。
人工智能在社会中的应用
随着科技的进步,一个从前只存在于科幻电影中的概念——人工智能
正逐渐走进人们的生活。人工智能是经济发展的新引擎、社会发展的加速
器,正在深刻改变人类社会生活,改变世界。
一、初识人工智能
人工智能是研究、开发利用数字计算机或者数字计算机控制的机器来
模拟、延伸和扩展人的智能,通过感知环境、获取知识和使用知识以获得
最佳结果的理论、方法、技术及应用系统的一门学科。人工智能是计算机
科学的一个分支,它试图探寻智能的实质,并生产出一种新的能以与人类
智能相似的方式做出反应的智能机器,其研究领域包括机器人、专家系
统、语音识别、图像识别、自然语言处理和自动驾驶等。人工智能研究的
基本内容如下:
(1)知识表示。知识表示研究如何将人类知识形式化或者模型化。
知识表示的方法包括符号表示法、连接机制表示法等。符号表示法是用各
种包含具体含义的符号,以各种不同的方式和顺序组合起来表示知识的方
法。连接机制表示法是把各种物理对象以不同的方式和顺序连接起来,并
在其间传递和加工各种信息,以此来表示相关的概念及知识。
公众号:电子课本大全
76
(PDF课本免费下)
4Z1366.indd 76 2019/8/24 11:07:23(2)机器感知。机器感知研究如何使计算机具有类似人的感知能
力,如机器视觉、机器听觉、机器触觉等。
(3)机器思维。机器思维研究如何有目的地处理通过感知得来的外
部信息和机器内部的工作信息。
(4)机器学习。机器学习研究如何使计算机具有类似人的学习能
力,使它能通过学习自主获取知识。
(5)机器行为。机器行为研究如何使计算机具有表达能力,即具有
“说”“写”“画”等能力,如智能机械手、机器人、自然语言生成器等。
二、人工智能的发展历程
人工智能的思想在古时候就开始萌芽。西周时期,曾有人造出能唱歌
跳舞的人偶;古希腊的科学家曾造出能飞的机器鸽子。人工智能的萌芽阶
段涌现出了不少代表性的人物或成果:17世纪,法国物理学家、数学家帕
斯卡制成了世界上第一台会演算的机械加法器;德国数学家莱布尼茨造出
了能做四则运算的手摇计算器,并提出了关于数理逻辑的思想(把形式
逻辑符号化)。1936年,英国数学家图灵提出机器能够思考的论述。1946
年,美国科学家发明了世界上第一台电子数字计算机ENIAC(如图9-1所
示),为人工智能的研究奠定了物质基础。
20世纪50年代至60年代初是人工智能发展的初级阶段。这一时期的研
究主要集中在启发式思维和如何运用领域知识等方面,此时编写的计算机
程序能够证明平面几何定理,能下国际象棋。真正意义的人工智能研究
始于1956年的达特茅斯会议。图灵在其所著的《计算机器与智能》中,讨
论了人类智能机械化的可能性,并提出了图灵机的理论模型(如图9-2所
图9-1 第一台电子计算机 图9-2 图灵机模型
公众号:电子课本大全
77
(PDF课本免费下)
4Z1366.indd 77 2019/8/24 11:07:23示),为现代计算机的出现奠定了理论基础。图灵还提出了著名的“图灵
测试”,该测试现已成为人工智能判定的重要标准。同时,《神经活动内
在概念的逻辑演算》的发表也证明了一定类型的经严格定义的神经网络在
原则上能够计算一定类型的逻辑函数,开创了当前人工智能研究的两大类
别:符号论和联结论。
1963年以后,人们开始尝试使用自然语言与计算机交流。如何让计算
机理解自然语言并自动做出有意义的回应、分析图像或图形等,成为人工
智能研究所追求的重要目标。
20 世纪70年代,在探索大量人类专家的科学推理后,一批具有专家
水平的程序系统相继问世,决策树(如图9-3所示)是其中的重要算法之
一。知识专家系统在全世界得到了迅速发展,它的应用范围延伸到了各个
领域,并产生了巨大的经济效益。
20世纪80年代,人工智能进入以知识为中心的发展阶段,越来越多研
究人员认识到知识在人工智能中的重要性,他们围绕知识表示、推理、机
器学习,以及模拟知识的认知过程等方面进行了更深入的探索,发展出人
工神经网络等重要算法,如图9-4所示。
图9-3 决策树 图9-4 人工神经网络
时至今日,大数据驱动的视觉分析、自然语言理解和语音识别等人工
智能能力迅速提高,商业智能对话和推荐、自动驾驶、智能穿戴设备、语
言翻译、自动导航、新经济预测等快速进入了实用阶段。
三、人工智能在社会中的应用
人工智能相关领域的研究成果已被广泛地应用于国民生活、工业生
产、国防建设等多个领域,为我们提供舒适、便捷和高效的服务。其中,
公众号:电子课本大全
78
(PDF课本免费下)
4Z1366.indd 78 2019/8/24 11:07:24自动驾驶、自然语言处理、图像识别、智能机器人等领域备受关注。
1. 自动驾驶
自动驾驶系统是一个集环境感知、规划决策、多等级辅助驾驶等功能于
一体的综合系统,如图9-5所示。它利用车载传感器感知车辆周围环境,并根
据传感器获得的道路、车辆位置和障碍物距离等信息(如图9-6所示),
结合系统数据库中的地图和道路资料,通过车内智能驾驶仪控制车辆的转
向、速度和行进路线,从而使车辆安全行驶。随着人工智能、自动控制、
定位技术以及传感器技术等的飞速发展,汽车逐渐发展为以智能系统为核
心的“轮式机器人”,人与车、车与车、车与物的交互方式正逐渐改变。
图9-5 智能汽车上装配的智能设备
图9-6 智能汽车探测路面状况示意图
公众号:电子课本大全
79
(PDF课本免费下)
4Z1366.indd 79 2019/8/24 11:07:242. 自然语言处理
自然语言处理的主要目标是让人类自然语言能够更容易被计算机识别
和理解,如图9-7所示,其主要应用包括人机交互、机器翻译、信息查找
和生活协助等领域。在自然语言处理系统中,识别率并不是唯一的指标,
因此识别率不能完全用于评价其性能。对于整个系统来说,文字和语言的
识别应具有学习能力,自主学习的自然语言处理系统才能具有良好的自适
应性、跨平台性以及跨语种性。所以,研究人员开始把深层神经网络置于
大规模无标注语言源上进行无监督学习。研究人员在处理语言源时,把每
个单词表示成一个固定维数的向量,作为单词的本身特征。在此特征基础
上,进行架构设计、分词标注、分块、命名实体及语义角色标注等操作。
以这样的方法进行自然语言处理,可以大大提高大数据处理的效率,而如
果使用多任务模式进行计算,还能进一步提升系统的计算和处理速度。
(a) (b)
图9-7 通过自然语言处理实现人机对话
3. 图像识别
图像和视频已成为互联网中主要的信息媒介,图像识别也随之成为互
联网重要的技术应用领域,其中两个核心问题是图像分类和物体检测,如
图9-8所示。图像分类是对图像整体的语义内容进行类别判定。物体检测
是识别图像中特定物体出现的区域并对其类别进行判定。与图像分类相
比,物体检测更加关注图像的局部区域和特定的物体类别集合,通常被视
为更加复杂的图像识别问题。这两项技术在围绕图像内容的信息检索、广
告投放、用户分析、商品推荐等互联网应用中大有用武之地。
公众号:电子课本大全
80
(PDF课本免费下)
4Z1366.indd 80 2019/8/24 11:07:24(a) (b)
图9-8 图像识别技术的应用
4. 智能机器人
智能机器人能够理解人类语言,用人类语言和操作者对话,它形成的
“意识”,使它得以在外界环境中“生存”。它能分析面临的情况,能调
整自己的动作以达到操作者所提出的全部要求(如图9-9所示),能拟订
标准动作,并在信息不充分或环境迅速变化的情况下完成一系列动作。
智能机器人至少需具备以下三个要素:一是感觉要素,能够侦测周围环境
状态;二是运动要素,能根据外界做出反应性动作;三是思考要素,能根
据感觉要素所得到的信息,思考做出什么样的动作。因此,智能机器人
无须人为干预,
能够在各种环境
下自动完成各项
拟人任务。自主
型机器人一般具
有感知、处理、
决策、执行等模
块,可以就像一
个自主的人一样
独立地活动和处
理问题。
图9-9 智能机器人
公众号:电子课本大全
81
(PDF课本免费下)
4Z1366.indd 81 2019/8/24 11:07:25小组讨论
结合人工智能在社会生活中的应用例子,填写表9-1。
表9-1 学习讨论表
序号 讨论内容 讨论结果
1 人工智能是什么
人工智能经历了怎样的发展
2
历程
人工智能对人类社会产生了
3
怎样的影响
反思评价
对自己在本课中的学习进行评价,对照表9-2,在相应的○里画
“√”,在“其他收获”栏里留言。
表9-2 学习评价表
序号 学习内容 能否掌握
1 知道人工智能的概念 能○ 不能○
2 了解人工智能的发展历程 能○ 不能○
3 了解人工智能对人类社会产生的影响 能○ 不能○
其他收获:
公众号:电子课本大全
82
(PDF课本免费下)
4Z1366.indd 82 2019/8/24 11:07:25文字识别
第十课
学习目标 知识导图
知道文字识别的概念。
文字识别
了解文字识别系统及其原理。
了解文字识别的应用领域。 手写文字识别
文字识别系统及其原理
文字识别的应用
人们在生产和生活中,要处理大量的文字、报表和文本。为了减轻人
们的劳动强度,提高处理效率,科学家们在20世纪50年代便开始探讨一般
文字的识别方法,并研制出光学字符识别器。20世纪60年代,出现了采用
磁性墨水和特殊字体的实用机器。到了20世纪60年代后期,出现了多种字
体和手写体文字识别机,其识别精度和机器性能都基本能满足应用要求
(如用于信函分拣的手写体数字识别机和印刷体英文数字识别机)。20世
纪70年代,文字识别的发展方向转向基本理论的研究和高性能文字识别机
的研制,并着重于汉字识别的研究。
一、手写文字识别
手写文字识别是指将在设备上书写时产生的有序轨迹信息转化为文字
的过程。手写文字识别能够使用户按照最自然、最方便的输入方式进行
文字输入,易学易用,可取代键盘或者鼠标。用于手写输入的设备有许
多种,比如电磁感应手写板、压感式手写板、触摸屏、触控板、超声波笔
等。随着智能手机、掌上电脑等移动信息工具的普及,手写识别技术也进
入了大规模应用时代。
公众号:电子课本大全
83
(PDF课本免费下)
4Z1366.indd 83 2019/8/24 11:07:25自主探究
如图10-1所示,启动手写输入法,利用鼠标在屏幕上写字,在文字编辑
器中输入诗人王之涣的《登鹳雀楼》:“白日依山尽,黄河入海流。欲穷千里
目,更上一层楼。”体验手写输入文字的自然与畅快。
图10-1 手写输入
二、文字识别系统及其原理
文字识别一般包括文字信息的采集、信息的分析与处理、信息的分类判
别等几个部分。其分析过程一般可以分解为预处理和特征提取两个步骤:
1. 预处理
预处理的目的是摒弃无关的输入数据,减少无关数据的负面影响,这
涉及识别的速度和准确性。文字识别通常要经历图像二值化、正常化、采
样、平滑、去噪等预处理过程。
2. 特征提取
提取文字的一些几何特征,如文字的端点、分叉点、凹凸部分,以及
水平、垂直、倾斜等各方向的线段、闭合环路等;然后根据这些特征的位
置和相互关系进行逻辑组合判断,获得识别结果。
公众号:电子课本大全
84
(PDF课本免费下)
4Z1366.indd 84 2019/8/24 11:07:25学习任务
下面,使用手写数字识别系统进行实验,以了解人工智能的图像识别
技术。由于每个人手写出来的数字字迹千差万别,若计算机要把它们识别
成0~9这10个阿拉伯数字,同时保证较高的准确率,就必须经过复杂的分
析过程。
通过本书的学习平台进入手写数字识别系统界面。点击“浏览”按
钮,上传手写数字图像文件,如图10-2所示。点击“识别”按钮,系统便
能自动识别图像中的数字并在浏览器界面显示结果。观察识别的结果,如
图10-3所示。
图10-2 手写数字图像
图10-3 手写数字识别
公众号:电子课本大全
85
(PDF课本免费下)
4Z1366.indd 85 2019/8/24 11:07:26如此重复做30次,上传不同字迹的手写数字图像,把实验的结果记录
在表10-1中。
表10-1 实验结果记录表
实验次数 1 2 3 4 5 6 7 8 9 10
手写数字
图像
正确率
实验次数 11 12 13 14 15 16 17 18 19 20
手写数字
图像
正确率
实验次数 21 22 23 24 25 26 27 28 29 30
手写数字
图像
正确率
三、文字识别的应用
文字识别可应用于许多领域,如阅读,翻译,信件和包裹的分拣,稿
件的编辑和校对,大量统计报表的汇总与分析,商品编码的识别,商品仓
库的管理,大量名片的自动处理,以及水、电、煤气、房租、人身保险等
费用的征收和办公室打字员工作的局部自动化等,还能进行文档检索、各
类证件识别和快速录入信息,提高各行各业的工作效率。
公众号:电子课本大全
86
(PDF课本免费下)
4Z1366.indd 86 2019/8/24 11:07:26小组讨论
结合文字识别的体验过程,填写表10-2。
表10-2 学习讨论表
序号 讨论内容 讨论结果
1 文字识别是什么
文字识别系统及其原理
2
是什么
文字识别的应用领域有
3
哪些
反思评价
对自己在本课中的学习进行评价,对照表10-3,在相应的○里画
“√”,在“其他收获”栏里留言。
表10-3 学习评价表
序号 学习内容 能否掌握
1 知道文字识别的概念 能○ 不能○
2 了解文字识别系统及其原理 能○ 不能○
3 了解文字识别的应用领域 能○ 不能○
其他收获:
公众号:电子课本大全
87
(PDF课本免费下)
4Z1366.indd 87 2019/8/24 11:07:26图像识别
第十一课
学习目标 知识导图
知道图像识别的概念。
图像识别
了解图像识别系统及其原理。
了解图像识别的应用领域。 图像识别
图像识别系统及其原理
图像识别的应用
图像是人类感知环境、获取信息和交换信息的主要途径。在信息化时
代,我们的工作、生活与图像密不可分,图像能帮助我们更直观地呈现资
讯,更快速地传递信息。在人工智能领域,图像识别技术是一个重要的发
展方向。
一、图像识别
图像识别是指利用计算机对图像进行处理、分析和理解,以识别各种不
同模式的目标和对象的技术。例如识别各种印刷体和某些手写文字,识别汽
车、行人等,识别指纹、二维码等图形,图像识别技术已经进入实用
阶段。
自主探究
如图11-1所示,登入网络图像识别体验平台,上传图片,观察计算
机的识别结果(如图片中可能包含的物体),感受计算机图像识别的智能
化与局限性。
公众号:电子课本大全
88
(PDF课本免费下)
4Z1366.indd 88 2019/8/24 11:07:26图11-1 识别图像中包含的物体
二、图像识别系统及其原理
图像识别是指从图像处射出的光线刺激人的视觉器官,使人们辨认出
它是曾经检验(看到)过的某一类图像的过程。图像识别有两个要素:进
入感官的信息和记忆中存储的信息。只有把存储的信息与当前信息进行比
较和加工,才能实现对图像的再认。计算机的图像识别和人类的图像识别
在原理上并没有本质的区别。其识别过程一般包括信息采集、预处理、特
征提取和选择、特征比对、分类决策几个步骤。
1. 信息采集
计算机通过传感器采集声、光等信息,并将其转化为电信息。信息可
以是二维的图像;也可以是一维的波形,如声波、心电图、脑电图等。
2. 预处理
包括图像的二值化、平滑化、变换、增强、恢复、滤波等处理过程。
3. 特征提取和选择
计算机对经过预处理的图像信息进行特征的提取和选择。例如,一幅
64像素×64像素的图像可以得到4096组数据。计算机通过处理数据,获得
该图像在特征空间中最能反映分类本质的特征。
公众号:电子课本大全
89
(PDF课本免费下)
4Z1366.indd 89 2019/8/24 11:07:274. 特征比对
通过设计和训练分类器,确定图像特征判定规则,然后与被识别图像
进行比对。
5. 分类决策
在特征空间中对被识别图像进行分类。
学习任务
某系统网站的登录界面如图11-2所示。在学习平台上调试并运行识别
程序,利用程序自动识别需要输入的验证码。
图11-2 需输入验证码的登录界面
验证码自动识别部分程序如下:
img = image.open('time.png').crop((625,125,710,147)).convert('L')
for i in range(img.size[1]):
for j in range(img.size[0]):
if img.getpixel((j,i))>240:
img.putpixel((j,i),255)
text = pytesseract.image_to_string(img)
print(text)
公众号:电子课本大全
90
(PDF课本免费下)
4Z1366.indd 90 2019/8/24 11:07:27三、图像识别的应用
图像识别技术广泛应用于公共安全、物流、交通、农业、生物、医疗
等多个领域。例如道路行驶车辆的车牌识别,公共场所的人脸识别、指纹
识别,农业中的农作物识别统计,食品品质检测,医学心电图、人体影像
识别诊断,等等。随着人工智能的不断发展,图像识别技术不断优化,其
识别效率与准确率不断提高。图像识别技术的应用,使智能设备的自动化
程度越来越高,大大改变了我们的生活方式。
自主探究
在智能手机上安装人脸识别软件,体验手机软件的人脸识别与动态贴纸
五官跟踪功能。
小组讨论
结合图像识别的体验过程,填写表11-1。
表11-1 学习讨论表
序号 讨论内容 讨论结果
1 图像识别是什么
图像识别系统及其原理
2
是什么
图像识别的应用领域有
3
哪些
公众号:电子课本大全
91
(PDF课本免费下)
4Z1366.indd 91 2019/8/24 11:07:27反思评价
对自己在本课中的学习进行评价,对照表11-2,在相应的○里画
“√”,在“其他收获”栏里留言。
表11-2 学习评价表
序号 学习内容 能否掌握
1 知道图像识别的概念 能○ 不能○
2 了解图像识别系统及其原理 能○ 不能○
3 了解图像识别的应用领域 能○ 不能○
其他收获:
公众号:电子课本大全
92
(PDF课本免费下)
4Z1366.indd 92 2019/8/24 11:07:27语音识别与翻译
第十二课
学习目标 知识导图
知道语音识别的概念。
语音识别与翻译
了解语音识别系统及其原理。
了 解语音识别的应用领域。 语音识别与翻译
语音识别系统及其原理
语音识别的应用
随着科技的发展,人类陆续发明和制造了各种机器协助工作。尽管生
产力得到大大提高,但在这个阶段,人类仍然需要动手操作机器。为了真
正“解放双手”,科学家致力于研究怎样使机器更加智能化,变得能够听
懂人类的语言,可以按照人类的指令工作,甚至可以实现人机对话。而语
音识别与翻译技术,就是其中一项关键技术。
一、语音识别与翻译
语音识别是一门涵盖声学、语音学、语言学、信息理论、模式识别理
论和神经生物学等的综合性学科。语音识别技术就是让机器通过识别和翻
译把语音信号转变为相应的文本或指令的技术,并逐渐成为信息技术中人
机交互的关键技术。
自主探究
如下页图12-1所示,利用语音识别软件,用语音输入的方法,输入
诗人李白的《望庐山瀑布》:“日照香炉生紫烟,遥看瀑布挂前川。飞流
直下三千尺,疑是银河落九天。”由此体验语音输入的便捷。也可以尝试
公众号:电子课本大全
93
(PDF课本免费下)
4Z1366.indd 93 2019/8/24 11:07:27转换所使用的语言(如普通话、粤语、英语等),输入不同的内容,探究
语音识别的特点。
图12-1 语音识别输入文字
二、语音识别系统及其原理
1. 声音的本质
声音是由物体振动产生,并通过介质(空气或固体、液体)传播的一
种波,如图12-2所示。因此,对声音的识别就是对波信号的处理。
图12-2 声音波形
2. 语音识别系统
语音识别系统的模型通常由声学模型和语言模型两部分组成,分别对
应语音到音节概率的计算和音节到字概率的计算。
公众号:电子课本大全
94
(PDF课本免费下)
4Z1366.indd 94 2019/8/24 11:07:28(1)声学特征。
声学特征的提取与选择是语音识别的一个重要环节。声学特征的提取
既是信息大幅度压缩的过程,也是信号分析和划分的过程。
(2)语言模型。
语言模型主要分为规则模型和统计模型两种。其中,统计模型是用概
率统计的方法来揭示语言单位的内在统计规律。
(3)系统实现。
语音识别系统的实现,建立在足够大量训练数据的基础上,使系统生
成能准确地定义语音片段的识别基元。系统所需的训练数据大小与模型复
杂程度有关。
(4)稳健性与自适应。
语音识别系统的性能受许多因素的影响,包括不同的说话个体、说话
方式、环境噪音、传输信道等。要提高系统稳健性,就要提高系统克服这
些因素影响的能力,使系统在不同的应用环境、条件下保持性能稳定。自
适应的目的,是根据不同的影响来源,自动地、有针对性地对系统进行调
整,并在运作过程中逐步提高性能。
三、语音识别的应用
语音识别的应用,能把语言转换成计算机可以处理和传播的数据,使
计算机做出人们所期望的反应。
1. 语音与文字转换
语音转换成文字的功能,除了使人们日常交流、听写数据录入更加便
捷,还能帮助人们快速准确地记录发生的事情,如:法院庭审的发言笔
录,访谈、报告和会议的即时字幕,手术室中的情况记录等。
2. 机器控制
语音识别技术能使机器直接识别语言的内容和语义,并给予相应的反
馈,实现相应的功能,如:自动导航、设备控制、文档检索等。
3. 信息挖掘
语音识别技术还能帮助我们进行信息挖掘。如通过智能语音识别技
95
4Z1366.indd 95 2019/8/24 11:07:28术,对客服语音的交谈内容进行全方位分析,记录通话双方的语速、情绪
和交谈内容,从而快速发现问题,提升企业客服质量,提升客户满意度。
此外,语音识别技术能有效检测音频和视频中的不良信息与敏感词,与传
统人工审核方式相比,其成本更低、效率更高。
自主探究
如图12-3所示,利用语音翻译软件,用普通话说:“早上好,欢迎来
到广州。”观察中英文翻译的准确性,体验语音翻译的便捷。
图12-3 语音翻译
96
4Z1366.indd 96 2019/8/24 11:07:28小组讨论
结合语音识别的体验过程,填写表12-1。
表12-1 学习讨论表
序号 讨论内容 讨论结果
1 语音识别是什么
语音识别系统及其原理
2
是什么
语音识别的应用领域有
3
哪些
反思评价
对自己在本课中的学习进行评价,对照表12-2,在相应的○里画
“√”,在“其他收获”栏里留言。
表12-2 学习评价表
序号 学习内容 能否掌握
1 知道语音识别的概念 能○ 不能○
2 了解语音识别系统及其原理 能○ 不能○
3 了解语音识别的应用领域 能○ 不能○
其他收获:
97
4Z1366.indd 97 2019/8/24 11:07:28生物特征分析
第十三课
学习目标 知识导图
了解生物特征的基本概念。
生物特征分析
了解生物特征分析的基本原理。
了解生物特征分析的基本方法。 生物特征识别技术
生物特征识别技术的应用
随着自动化设备、智能门禁和公共安全监控系统等的普及,人们对个
体身份识别的需求越来越高。由于以指纹、人脸、静脉和声纹等为代表的
生物特征具有唯一性、稳定性和可采集性等优点,生物特征识别技术已成
为重要的身份识别手段,具有广阔的应用前景,产生了巨大的社会效益和
经济效益。目前,生物特征识别作为重要的智能化身份认证技术,在金
融、公共安全、教育、交通等领域得到广泛的应用。
一、生物特征识别技术
生物特征识别技术是指通过个体生理特征或行为特征对个体身份进行
识别认证的技术。从应用流程看,生物特征识别通常分为注册和识别两个
阶段。注册阶段通过传感器采集人体的生物表征信息,如利用图像传感器
采集指纹和人脸等光学信息,利用麦克风采集声音等声学信息,利用数据
预处理和特征提取技术对采集的数据进行处理,得到相应的特征数据并存
储。识别过程采用与注册过程一致的信息采集方式,对被识别个体进行信
息采集、数据预处理和特征提取,然后将提取的特征与存储的特征进行比
对分析,完成识别。
98
4Z1366.indd 98 2019/8/24 11:07:29二、生物特征识别技术的应用
1. 指纹识别
指纹识别通常包括数据采集、数据处理和分析判别三个过程。数据采
集通过光、电、力、热等物理传感器获取指纹图像;数据处理包括预处
理、畸变校正和特征提取三个过程;分析判别是对提取的特征进行分析判
别的过程。
2. 人脸识别
人脸识别是典型的计算机视觉应用,从应用过程来看,可将人脸识别
技术划分为图像采集、人脸检测定位、面部特征提取和模型比对等过程,
如图13-1所示。人脸识别技术的应用主要受到光照、拍摄角度、图像遮
挡、年龄等多个因素的影响,在约束条件下人脸识别技术相对成熟,在自
由条件下人脸识别技术还在不断改进。
图13-1 人脸识别技术
人脸识别作为前沿生物识别技术和图像处理技术,在当今社会的公共
安全防范、逃犯追捕、网络安全、金融安全等诸多领域发挥着不可替代的
作用。人脸识别技术被广泛应用于机场、港口、码头、海关、银行、大型
企事业单位、大型活动、高端会所、重要街道等场所的安全防范领域,将
为当前国内外复杂安全形势下的安全保卫、安全防范带来革命性的变革。
99
4Z1366.indd 99 2019/8/24 11:07:29学习任务
如图13-2所示,利用搜索引擎,在互联网上寻找脸部特征与照片相似
的人像,上传人脸照片,观察并记录搜索结果,计算人脸识别的准确率,
体验人脸识别技术的作用。
图13-2 人脸识别
3. 指静脉识别
指静脉识别是利用人体静脉血管中的血红蛋白对特定波长范围内的近
红外线有很好的吸收作用这一特性,采用近红外光对指静脉进行成像与识
别的技术。由于指静脉血管分布随机性很强,其网络特征具有很好的唯一
性,且属于人体内部特征,不受外界影响,有助于提高识别准确率。
4. 声纹识别
声纹识别是指根据语音的声纹特征识别说话人身份的技术。声纹识别
技术通常可以分为前端处理和建模分析两个阶段。声纹识别的过程是对一
100
4Z1366.indd 100 2019/8/24 11:07:29段来自某人的语音进行特征提取后
与多复合声纹模型库中的声纹模型
进行匹配,常用的识别方法可以分
为模板匹配法、概率模型法等。
某品牌的智能音箱内置了语音
助手,如图13-3所示。用户的所有
操作都可通过语音控制完成。它内
置Wi-Fi和蓝牙模块,能和计算机、
手机等电子设备互联。用户唤醒它
后,就可以向它询问天气,让它播
图13-3 内置语音助手的智能音箱
放音乐,或进行闹钟设置等操作。
自主探究
体验智能手机的指纹开锁与人脸识别功能,谈谈生物特征识别技术的
应用前景。
小组讨论
结合生物特征分析的应用实例,填写表13-1。
表13-1 学习讨论表
序号 讨论内容 讨论结果
1 生物特征是什么
生物特征分析的
2
基本原理是什么
如何进行生物特
3
征分析
101
4Z1366.indd 101 2019/8/24 11:07:29反思评价
对自己在本课中的学习进行评价,对照表13-2,在相应的○里画
“√”,在“其他收获”栏里留言。
表13-2 学习评价表
序号 学习内容 能否掌握
1 了解生物特征的基本概念 能○ 不能○
2 了解生物特征分析的基本原理 能○ 不能○
3 了解生物特征分析的基本方法 能○ 不能○
其他收获:
102
4Z1366.indd 102 2019/8/24 11:07:29图像风格迁移
第十四课
学习目标 知识导图
知道图像风格迁移技术的概念。
图像风格迁移
了解图像风格迁移技术的应用
领域。 图像风格迁移技术
图像风格迁移技术的应用
随着计算机技术的快速发展,计算机对图像的处理能力大幅提升。过
去,图像修补、图像美化等图像处理工作需要人工操作完成,或者只能按
照某一固定模式自动处理。现在,运用人工智能技术可以实现图像风格的
自动迁移。
一、图像风格迁移技术
图像风格迁移是指利用人工智能学习某类画作的风格,然后把这种风
格应用到另外一张图片上的技术。如图14-1所示,利用人工智能算法学习
如图14-1(b)所示的画作风格,经人工智能技术处理,把该风格迁移到
如图14-1(a)所示的图像上,便得到图14-1(c)。
(a)原图 (b)学习风格 (c)迁移图像
图14-1 图像风格迁移过程
103
4Z1366.indd 103 2019/8/24 11:07:30二、图像风格迁移技术的应用
随着基于人工智能技术的图像风格迁移在理论和算法方面的不断改
进,图像风格迁移的效果得到很大的提升,具有广阔的应用前景。目前,
图像风格迁移技术的应用主要有以下三个方面:
1. 图像处理
目前,在社交网络上流传的图像大多经过软件处理,其中图像美化是
一个热门应用技术。传统的图像处理技术只能对图像进行模式较为固定的
处理,而基于人工智能的图像风格迁移技术的出现为图像风格设计带来了
更多的想象空间,让人们可以把图像转化为不同绘画风格的图像,如图
14-2所示。
图14-2 不同风格的图像
2. 视频处理
在影视娱乐产业中,如电影、电视、动漫等,视频特效随处可见。但
是,视频特效技术的创作不仅需要专业技能,还需要大量的人力劳动。如
果可以结合人工智能技术,将能够大幅度地降低制作成本,而图像风格迁
移是其中一个可考虑的解决方案。例如,使用深度神经网络来进行电影风
104
4Z1366.indd 104 2019/8/24 11:07:30格化。
3. 风格设计的辅助工具
图像风格迁移还可以作为高效的辅助工具,例如用于艺术绘画创作、
建筑艺术设计、服装艺术设计、游戏场景设计等方面。
自主探究
画家凡·高给全世界留下《星月夜》《向日葵》等著名的作品。画
作《星月夜》中像焰火一样闪亮的星星让人感受到他对绘画火焰般的
热情。
随着人工智能的发展,我们也能够创作出和凡·高风格近似的艺术作
品。我们可以利用人工智能中的深度学习,将凡·高的绘画风格从他的作
品中提取出来,并赋予到我们选取的图像上,从而得到新的凡·高绘画
风格图像。
下面使用Python语言和神经网络Neural Style,让机器学习凡·高的
作品《星月夜》的绘画风格,把港珠澳大桥的照片变成凡·高绘画风
格的图像。
Neural Style是一个人工智能深度学习应用。我们只需分别输入一幅
代表内容的图片和一幅代表风格的图片,深度神经网络就会输出一幅融合
了这个风格和内容的新作品。
图像风格迁移具体操作如下:
(1)登录本书学习平台,打开Neural Style目录。
(2)在Neural Style资源包目录,鼠标右键打开菜单,接着打开终端
程序,如下页图14-3所示。
105
4Z1366.indd 105 2019/8/24 11:07:30图14-3 打开终端程序
(3)如图14-4所示,在终端程序中输入:
Python3 neural_style.py --content<要处理的图像文件>--styles
1<要学习风格的图像文件>--output<指定输出的图像文件>。
图14-4 输入图像风格迁移指令
106
4Z1366.indd 106 2019/8/24 11:07:30(4)程序运行结果如图14-5所示,对左边要处理的图像和要学习风
格的图像进行处理后,得到右边凡·高绘画风格的港珠澳大桥图像。
图14-5 凡·高缓画风格的港珠澳大桥
小组讨论
结合图像风格迁移技术的体验过程,填写表14-1。
表14-1 学习讨论表
序号 讨论内容 讨论结果
1 图像风格迁移技术是什么
图像风格迁移技术的应用领
2
域有哪些
107
4Z1366.indd 107 2019/8/24 11:07:30反思评价
对自己在本课中的学习进行评价,对照表14-2,在相应的○里画
“√”,在“其他收获”栏里留言。
表14-2 学习评价表
序号 学习内容 能否掌握
1 知道图像风格迁移技术的概念 能○ 不能○
2 了解图像风格迁移技术的应用领域 能○ 不能○
其他收获:
108
4Z1366.indd 108 2019/8/24 11:07:31认识机器学习
第十五课
学习目标 知识导图
知道机器学习的概念。
认识机器学习
了解机器学习的步骤。
机器学习
机器学习的步骤
机器学习是人工智能的一个分支。人工智能的其中一个重点研究方向
就是开发能像人类一样完成复杂任务的机器,甚至机器完成得比人类更
好。这些任务通常涉及判断、策略和认知推理,技能应用的范围非常广
泛,涉及语言处理、图像识别和规划等。机器学习使用特定的算法和编程
方法来实现人工智能。如果没有机器学习,前面提到的文字识别、图像识
别、语音识别与翻译、生物特征分析和图像风格迁移等技术将无法实现。
使用机器学习,只需要少量代码,就可以实现上述很多应用需求。
一、机器学习
机器学习专门研究计算机如何模拟或实现人类的学习行为,以获取新
的知识或技能,并重新组织已有的知识结构使之不断改善自身的性能。机
器学习是一门多领域交叉学科,涉及概率论、统计学、算法复杂度理论等
众多领域。
机器学习的应用十分广泛,如数据挖掘、计算机视觉、自然语言处
理、生物特征识别、搜索引擎、医学诊断、检测信用卡欺诈、证券市场分
析、DNA测序、语音和手写识别、战略游戏和机器人运用等。
109
4Z1366.indd 109 2019/8/24 11:07:31机器学习分为监督学习和非监督学习。监督学习会在机器学习过程中
提供对错指示。通过算法让机器自主学习,减少误差。这一类机器学习主
要应用于分类和预测。监督学习往往通过集中学习给定的训练数据,从而
得到一个函数,当获取新的数据时,可以根据这个函数预测结果。监督学
习的训练集要求包括输入和输出,也可以说是特征和目标。训练集的目标
是人为标注的,信息详尽。非监督学习又称归纳性学习,如利用k-means
算法建立中心,通过循环和递减运算来减小误差,以达到分类的目的。
二、机器学习的步骤
运用机器学习解决实际问题,通常需要如下几个步骤:
(1)定义问题:研究和提炼问题的特征,以帮助我们更好地理解项
目目标。
(2)数据理解:通过描述性统计和可视化分析现有的数据。
(3)数据准备:格式化数据,以便于构建一个预测模型。
(4)评估算法:通过一定的方法分离一部分数据,用来评估算法模
型,并选取一部分代表数据进行分析,以改善模型。
(5)优化模型:通过调参和集成算法提升预测结果的准确率。
(6)结果部署:完成模型,并执行模型来预测结果。
自主探究
以第十课手写数字识
别为例,现有一个60 000个
数据的手写数字训练集和
10 000个数据的测试集,如
图15-1所示。利用本书学习
平台中的程序,运用机器学
习算法训练一个模型,用于
识别手写数字,体验运用
机器学习解决实际问题的
图15-1 手写数字图像
过程。
110
4Z1366.indd 110 2019/8/24 11:07:31手写数字识别部分程序如下:
import matplotlib.pyplot as plt
from sklearn import datasets, svm, metrics
digits = datasets.load_digits()
images_and_labels = list(zip(digits.images, digits.target))
for index, (image, label) in enumerate(images_and_labels[:4]):
plt.subplot(2, 4, index + 1)
plt.axis('off')
plt.imshow(image, cmap=plt.cm.gray_r, interpolation='nearest')
plt.title('Training: %i' % label)
n_samples = len(digits.images)
data = digits.images.reshape((n_samples, -1))
classifier = svm.SVC(gamma=0.001)
classifier.fit(data[:n_samples // 2], digits.target[:n_samples // 2])
expected = digits.target[n_samples // 2:]
predicted = classifier.predict(data[n_samples // 2:])
print("Classification report for classifier %s:\n%s\n"
% (classifier, metrics.classification_report(expected, predicted)))
print("Confusion matrix:\n%s" % metrics.confusion_matrix(expected, predicted))
images_and_predictions = list(zip(digits.images[n_samples // 2:], predicted))
for index, (image, prediction) in enumerate(images_and_predictions[:4]):
plt.subplot(2, 4, index + 5)
plt.axis('off')
plt.imshow(image, cmap=plt.cm.gray_r, interpolation='nearest')
plt.title('Prediction: %i' % prediction)
plt.show()
111
4Z1366.indd 111 2019/8/24 11:07:31小组讨论
结合机器学习的体验过程,填写表15-1。
表15-1 学习讨论表
序号 讨论内容 讨论结果
1 机器学习是什么
2 机器学习的步骤有哪些
反思评价
对自己在本课中的学习进行评价,对照表15-2,在相应的○里画
“√”,在“其他收获”栏里留言。
表15-2 学习评价表
序号 学习内容 能否掌握
1 知道机器学习的概念 能○ 不能○
2 了解机器学习的步骤 能○ 不能○
其他收获:
112
4Z1366.indd 112 2019/8/24 11:07:31人工智能揭秘
第十六课
学习目标 知识导图
知道大数据的基本概念及其特征。
人工智能揭秘
知道云计算的概念。
知道人工智能的关键技术。 大数据及其特征
云计算
人工智能关键技术
数据存在于我们生活的方方面面。我们出门搭乘的交通工具、行进路
线和所用时间,电话聊天、发送短信或者浏览相关网站的记录,甚至所在
的地理位置等都包含了大量的数据。可以说,人们的一举一动基本上可以
数字化。人工智能技术建立在大数据处理技术的基础之上。人工智能让工
作更高效,让管理更有效,让生活更美好。
一、大数据及其特征
大数据是指在可承受的时间范围内,无法用常规工具进行高效捕捉、
管理和处理的数据集合;是需要采用新型处理模式才能具有更强的决策
力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。
大数据的产生与人类日益普及的网络行为密不可分。物联网、云计
算、移动互联网,以及遍布地球各个角落的各种各样的手机、计算机和传
感器,无一不是数据的来源和承载者。互联网中包含的数据量,不仅远超此
前一切人类所生成的数据量的总和,而且还在以大爆发性的速度不断增长。
我们正处于大数据时代,大数据使人们的生活、工作与思维方式等都
发生了巨大的变革。那么,大数据究竟具有哪些特征呢?
113
4Z1366.indd 113 2019/8/24 11:07:31(1)从互联网产生大数据的角度来看,大数据具有“4V”特
征:大量(Volume)、多样(Variety)、低价值密度(Value)和高速
(Velocity)。
(2)从互联网思维的角度来看,大数据具有三个特征:样本渐趋于
总体,精确让位于模糊,相关性重于因果。
(3)从大数据存储与计算的角度来看,大数据具有两个特征:分布
式存储和分布式并行计算。
小组讨论
以小组为单位上网搜索资料,讨论和分析传统数据与大数据的区别,
并填写表16-1。
表16-1 传统数据与大数据的区别
传统数据 大数据
二、云计算
云计算是一种分布式计算,通过网络系统将巨大的数据计算处理程序
分解成无数个小程序,然后利用多个服务器组成的系统进行数据处理和分
析,最后这些小程序得出结果并反馈给用户。
云计算把海量的数据存储和高效的计算分析能力等计算资源集合起
来,通过程序实现自动化和智能化管理,只需要很少的人参与,就能快速
提供用户所需资源。也就是说,计算能力作为一种商品,可以在互联网上
114
4Z1366.indd 114 2019/8/24 11:07:31流通,就像水、电、煤气一样,可以方便地取用,且价格较为低廉,如图
16-1所示。
图16-1 云计算
三、人工智能关键技术
新一代人工智能关键技术包括算法、硬件和系统三个方面。例如机器
学习、计算机视觉、知识计算、深度推理、群智计算、混合智能、无人系
统、虚拟现实、自然语言理解、智能芯片等,其中机器学习、自然语言理
解和混合智能是人工智能的核心关键技术。
1. 机器学习
机器学习是用大量的数据或以往经验转化而成的数据来训练人工智能
程序,通过各种算法从数据中学习如何完成任务,然后对某件事情做出决
定或预测。因此数据被视为驱动新一代人工智能革命的关键力量。通过用
适当的统计分析方法对收集来的大量数据进行分析,提取有用信息并形成
结论,然后对数据加以详细研究和概括总结,使人工智能不断获取新的数
据,进行持续且深度的学习,从而做出“越用越灵”的决定或预测。大数
据分析技术对人工智能应用的快速发展起到推动作用。
115
4Z1366.indd 115 2019/8/24 11:07:322. 自然语言理解
自然语言理解或称为语义识别,是语义系统研究的基本任务,它的核
心除了理解文本词汇的含义,还要理解这个词语在句子、段落、篇章中所
代表的意思。这意味着自然语言识别从技术上要做到:文本、词汇、词
法、句法、段落、篇章层面的语义分析和歧义消除,以及对应的含义重
组,以达到识别自然语言的目的。语言自身词性、词义、表意和组成逻辑
复杂等性质,决定了自然语言识别的难度。因而自然语言识别技术也涉及
计算机科学、认知科学、语言学、逻辑学、生物学、统计学、数学等广泛
的学科领域,这些学科交叉融合,将有可能成为人工智能的创新活力
源泉。
3. 混合智能
人工智能研究表明,机器在搜索、计算、存储和优化等方面具有人类
无法比拟的优势,然而在感知、推理、归纳和学习等方面尚无法与人类智
能相匹敌。鉴于机器智能与人类智能的互补性,研究者将人工智能研究扩
展到生物智能和机器智能的互联互通,发挥各自所长,以创造出性能更强
的智能形态。如图16-2所示,混合智能以生物智能和机器智能的深度融合
为目标,通过建立相互连接通道,开发兼具生物(人类)智能体的环境感
知、推理、归纳、学习能力和机器智能体的搜索、计算、优化、存储能力
的新型智能系统。
图16-2 混合智能
116
4Z1366.indd 116 2019/8/24 11:07:32小组讨论
列举人工智能在生活中的应用案例,判断该案例所采用的智能技术,
并填写表16-2。
表16-2 人工智能的应用案例及其所用技术
序号 人工智能应用案例 所用的人工智能技术
小组讨论
结合人工智能在生活中的应用实例,填写表16-3。
表16-3 学习讨论表
序号 讨论内容 讨论结果
1 大数据的概念及其特征是什么
2 云计算是什么
3 人工智能的关键技术是什么
117
4Z1366.indd 117 2019/8/24 11:07:33反思评价
对自己在本课中的学习进行评价,对照表16-4,在相应的○里画
“√”,在“其他收获”栏里留言。
表16-4 学习评价表
序号 学习内容 能否掌握
1 知道大数据的基本概念及其特征 能○ 不能○
2 知道云计算的概念 能○ 不能○
3 知道人工智能的关键技术 能○ 不能○
其他收获:
118
4Z1366.indd 118 2019/8/24 11:07:33单 元 扼 要 回 顾
119
4Z1366.indd 119 2019/8/24 11:07:34单 元 学 习 评 价
一、学习评价
请根据本单元各环节的学习情况,填写单元学习评价表,从知识与技
能、方法与过程以及情感态度与价值观等方面,综合评价自己是否达到了
本单元的学习目标。
单元学习评价表
是否达到目标
学习目标
是 否
知道人工智能的概念,了解人工智能的发展历程及
其对人类社会产生的影响
知道文字识别的概念,了解文字识别系统及其原理
与应用
知道图像识别的概念,了解图像识别系统及其原理
与应用
知道语音识别的概念,了解语音识别系统及其原理
知识与
与应用
技能
知道生物特征的基本概念,了解生物特征分析的基
本原理和方法
知道图像风格迁移技术的概念,了解图像风格迁移
技术的应用领域
知道机器学习的概念和步骤
知道大数据的基本概念及其特征、云计算的概念、
人工智能的关键技术
在学习过程中,能根据本单元的实践、观察、练习
过程与 等环节自主学习、动手操作,开动脑筋积极思考
方法 能与同学交流,勇于尝试不同的操作方法,总结归纳
不同操作方法的特点,从而构建自己的知识体系
120
4Z1366.indd 120 2019/8/24 11:07:34(续表)
是否达到目标
学习目标
是 否
在本单元的探究、讨论环节能积极主动地参与小组
情感态
合作学习,勇于表达自己的想法
度与价
当其他同学碰到学习困难时,能主动帮助他们,在
值观
分组探究的过程中,形成小组合作意识
二、学习体会
请从以下几方面谈谈自己在本单元学习过程中的成长体会。
本单元对我启发最大的是:
我不太理解的学习内容有:
我还学会了:
我还想学习:
121
4Z1366.indd 121 2019/8/24 11:07:34致 谢
本册教科书出版之前,我们通过多种渠道与本册教科书选用作品(包
括照片、画作)的作者进行了联系,得到了他们的大力支持。对此,我们
表示衷心的感谢。由于选用作品较多,至本册教科书付梓前仍有部分作者
未能取得联系,恳请入选作品的作者与我们联系,以便支付稿酬。
联系电话:020-87609757
电子邮箱:gjs-quality@nfcb.com.cn
广东教育出版社
122
4Z1366.indd 122 2019/8/24 11:07:34