信息技术 必修一 第二章 知识梳理


文字稿:
● 第二章 算法与程序实现
● 第一节 算法与算法描述
● 一、认识算法
● 1、算法的概念
● 算法是在有限步骤内求解某一问题所使用的步骤和方法
● 2、算法的特征(背诵小标题)
● (1)有穷性
● (2)确定性
● (3)可行性
● (4)有零个或多个输入
● (5)有一个或多个输出
● 二、算法的描述(背诵小标题)
● 1、自然语言
● 2、流程图
● ◖▬◗
● 起止框
● 表示算法的开始或结束
● ▭
● 处理框
● 表示要处理的内容
● ▱
● 输入/输出框
● 表示数据的输入或结果的输出
● ◇
● 判断框
● 表示条件判断的情况:满足条件,执行一条路径;不满足条件,则执行另外一条路径
● ○
● 连接符
● 用于连接因页面不够而断开的流程线
● ↓ →
● 流程线
● 指出流程控制方向,即执行的次序
● 3、伪代码
● 伪代码是一种介于自然语言和计算机程序设计语言之间的算法描述语言
● 三、算法的基本控制结构(背诵小标题)
● 1、顺序结构
● 示意图见P44
● 2、分支结构
● 示意图见P45
● 3、循环结构
● 示意图见P45
● 四、编程解决问题的过程(背诵小标题)
● 1、抽象与建模
● 2、设计算法
● 3、编写程序
● 4、调试运行
● 第二节 程序设计语言基本知识
● 一、Python语言基础
● 1、程序设计语言(背诵小标题)
● (1)机器语言
● 用二进制代码(0与1),可直接运行,速度快,但不通用
● (2)汇编语言
● 由符号组成(如ADD),有易读性,速度快,但不可直接执行,需翻译,也不通用
● (3)高级语言
● 以人类日常语言为基础(如print(a,b)),通用,但不可直接运行,需翻译
● 2、Python常用数据类型
● 整型
● int
● Python中的整数可以是任意大小,如51、-67、0等
● 如x=int(input(“请输入年份”))
● 浮点型
● float
● 由整数部分和小数部分组成,也可以使用科学记数法表示,如3.076、-2e3等
● 如x=float(input(“请输入体重”))
● 字符串型
● str
● 由单引号(‘ ’)或双引号(“ ”)括起来的一组字符,如‘Hello’或“上海”或“\n”等
● 如x=input(“请输入年份”)
● 布尔型
● bool
● 只存在两种值:真(True)或假(False),常用于逻辑判断
● 如“a=b<c"中a
● 转换举例
● float(3)
● 将整型数据3转换为一个浮点型数据,为3.0
● int(3.6)
● 将浮点型数据3.6转换为一个整型数据,为3
● str(3)
● 将整型数据3转换为字符串型数据,为‘3’或”3“
● 3、Python中的常量、变量与赋值符
● 常量是直接给定的,指在程序运行过程中不变的量
● 变量指程序运行过程中可以被改变的量
● 变量命名原则
● 由大小写英文字母、数字或下划线组成
● 以英文字母或下划线为首字符
● 长度不限
● 不能与Python保留字同名
● 大小写敏感
● “=”为Python中的赋值符
● 其作用是把赋值号右边表达式的计算结果存储到赋值号左边指定的变量中
● 4、Python中的运算符与表达式
● (1)算术运算符
● **
● 幂
● 优先级(数字越小越优先):1
● 如3**3,运算结果为27
● *
● 乘法
● 优先级:2
● 如5.3*20,运算结果为106.0
● /
● 除法
● 优先级:2
● 如2/5,运算结果为0.4
● %
● 取模
● 优先级:2
● 如17%6,运算结果为5
● //
● 整除
● 优先级:2
● 如25//7,运算结果为3
● +
● 加法
● 优先级:3
● 如23+45,运算结果为68
● -
● 减法
● 优先级:3
● 如78.4-34.2,运算结果为44.2
● (2)关系运算符
● ==
● 等于
● 优先级:4
● (a=10,b=20时)如a==b,返回为假
● >
● 大于
● 优先级:4
● a>b,返回为假
● <
● 小于
● 优先级:4
● a<b,返回为真
● >=
● 大于等于
● 优先级:4
● a>=b,返回为假
● <=
● 小于等于
● 优先级:4
● a<=b,返回为真
● !=
● 不等于
● 优先级:4
● a!=b,返回为真
● (3)逻辑运算符
● not
● 非
● 优先级:5
● not(a==b),若a和b相等,则返回假,否则返回真
● and
● 与
● 优先级:6
● a and b,只有当a和b都为真时,结果才为真
● or
● 或
● 优先级:7
● a or b,只要a和b中有一个为真时,结果就为真
● 5、Python中的内置函数与模块导入
● 内置函数
● 内置函数是已经预定义并且已经实现的、可以供用户直接调用的函数,很多高级语言都有内置函数
● 可直接通过“函数名(参数列表)”的方式调用
● 举例
● abs(x)用于求取绝对值
● 如abs(-1)=1
● round(a,b)用于求取指定位数的小数
● 如round(3.1415926,2)=3.14
● pow(a,b,c)=a**b%c
● 模块
● Python语言中的模块是一个程序文件
● 在使用之前通过“import 模块名”的方式导入
● 举例
● import math
● print(math.factorial(6))
● 6、Python中的字符串
● 通用操作
● x+y
● 连接两个字符串x和y
● (str1=“Hello”,str2=“Python”时)str1+“ ”+str2,返回“Hello Python”
● x*n
● 复制n次字符串x
● str1*3,返回“HelloHelloHello”
● len(x)
● 返回字符串x的长度
● len(str1),返回5
● 7、Python中的列表
● 列表是Python中常见的一种数据形式,它可以把大量的数据放在一起,对其进行集中处理
● 列表是以“【】”包围的数据集合,不同成员间以“,”分隔
● 列表中可以包含任何数据类型,也可以包含另一个列表
● 如列表tian=【“甲”,“乙”,“丙”,“丁”】中tian【0】=“甲”,tian【2】=“丙”
● 通用操作
● list.append(x)
● 在列表尾部追加成员x
● list.insert(i,x)
● 向列表中指定位置i插入x
● list.remove(x)
● 删除列表中的指定成员(有多个则只删除第一个,指定成员不存在则报错)
● 二、顺序结构的Python实现
● 实例:计算BMI(BMI=体重(千克)/身高²(米²))
● 1、抽象与建模
● 输入:height、weight
● 输出:bmi
● 计算模型:bmi=weight(千克)/height²(米²)
● 2、设计算法
● ①输入身高height
● ②输入体重weight
● ③根据公式计算BMI指数
● ④输出BMI指数
● 3、编写程序
● ①height=float(input"请输入身高(m):"))
● ②weight=float(input"请输入体重(kg):"))
● ③bmi=weight/height**2
● ④print("BMI=",bmi)
● 4、调试运行
● 三、分支结构的Python实现
● 三种分支结构
● 单分支语句
● if 条件表达式:
● 【缩进】语句块
● 双分支语句
● if 条件表达式:
● 【缩进】语句块1
● else:
● 【缩进】语句块2
● 多分支语句
● if 条件表达式1:
● 【缩进】语句块1
● elif 条件表达式2:
● 【缩进】语句块2
● ……
● else:
● 【缩进】语句块n
● 实例:详见书P62~64
● turtle库
● turtle.goto(x,y)
● 将画笔移动到坐标为(x,y)的位置
● turtle.pendown()
● 放下笔,移动时绘制图像
● turtle.penup()
● 提起笔,移动时不绘制图像
● turtle.circle(radius)
● 画圆,radius为正(负),表示画圆时圆心在画笔的左边(右边)
● turtle.color(color1,color2)
● 同时设置pencolor为color1,fillcolor为color2
● turtle.begin_fill()
● 准备开始填充图形,与turtle.end_fill()命令配合使用
● turtle.end_fill()
● 填充完成,与turtle.begin_fill()命令配合使用
● turtle.forward(x)
● 向当前方向移动x像素长度
● turtle.backward(x)
● 向当前反方向移动x像素长度
● turtle.right(x)
● 向右转x度
● turtle.left(x)
● 向左转x度
● setx()
● 将当前x轴移动到指定位置
● sety()
● 将当前y轴移动到指定位置
● turtle.speed(x)
● 将移动速度改为x
● 四、循环结构的Python实现
● while语句
● while 条件表达式:
● 【缩进】语句块
● for语句
● for 循环变量 in 序列:
● 【缩进】语句块
● for语句中循环次数由序列中元素的个数决定,通常用于确定循环次数的问题求解
● 对于不能确定循环次数的情况,则需要使用while语句
● 序列:
● 列表
● range()函数产生的列表或字符串
● range()函数返回一个等差整数序列,格式为:range(起始值,终值,步长)
● 示例:
● range(1,5,3)
● 生成起始值为1,终值为4,步长为3的序列:【1,4】
● range(1,5)
● 生成起始值为1,终值为4,步长为默认值1的序列:【1,2,3,4】
● range(5)
● 生成起始值为0(没有设定起始值,默认为0),终值为4,步长为默认值1的序列:【0,1,2,3,4】
● range(5,1,-1)
● 生成起始值为5,终值为2,步长为-1的序列:【5,4,3,2】
● 实例:详见书P67~69
● 第三节 常用算法及其程序实现
● 一、枚举法
● 基本原理
● 根据已知条件,在给定的范围内对所有可能的答案按某种顺序进行逐一列举和检验,从中找出那些符合要求的答案
● 一般模式
● ①确定范围
● ②验证条件
● 二、枚举法的程序实现
● 举例:跑步课程完成情况の显示
● 1、抽象与建模
● 输入:跑步课程中的每日训练内容和对应训练内容消耗的卡路里数,这些信息由程序自动读取数据库中存储的数据,不需要用户输入
● 输出:完成的项目数和未完成的项目名称
● 计算模型:
● 已完成项目数=Σ(上:n 下:i=1)datai
● datai=
● 0(消耗的卡路里数=0)
● 1(消耗的卡路里数≠0)
● 未完成项目数=U(上:n 下:i=1)itemi
● itemi=
● 空字符串(消耗的卡路里数=0)
● 项目名称(消耗得卡路里数≠0)
● 其中,n为该跑步课程共有多少项训练内容,消耗的卡路里数为大于零的整数,Σ为求和符号
● 2、设计算法
● ①读入一周的跑步课程训练内容
● ②读入对应课程训练内容消耗的卡路里数
● ③初始设定已完成项目数finished为0,未完成项目名称unfinished为空字符串
● ④逐一列举一周的对应训练内容消耗的卡路里数
● ⑤如果当前枚举的卡路里数为0,则将对应的训练内容名称加入unfinished,否则finished的计数加1
● ⑥输出完成项数目及未完成项目名称
● 3、编写程序
● ①itemlist=["低速低强度","变速练习","低速低强度","快走","低速低强度","坡度练习","低速低强度"]
● ②datalist=[400,600,380,0,420,620,397]
● ③finished=0
● ③unfinished=""
● ④for i in range(7):
● ⑤ if datalist[i]==0:
● ⑤ unfinished=unfinished+itemlist[i]+" "
● ⑤ else:
● ⑤ finished=finished+1
● ⑥print("完成了",finished,"项")
● ⑥print("未完成项目:",unfinished)
● 4、调试运行
使用软件:幕布 & B站
(由于以上均为手打,难免会有疏忽,如有错误,还请在评论区中指出
(๑•̀ㅂ•́)و✧ (´▽`ʃ♡ƪ) (●'◡'●) (☆▽☆) *★,°*:.☆( ̄▽ ̄)/$:*.°★* 。 )