(共29张PPT)
第
算法的程序实现
三
章
第
考点一:Phthon语言基础
三
章
语言特点及编程环境
01
(1)Python是一种面向对象、解释型的计算机程序设计高级语言,具有丰富和强大的库,其语法简洁清晰,方便对数据进行组织和处理。
(2)编写 Python程序比较方便的方式是使用集成开发环境 IDE,IDLE是开发 Python程序的基本IDE。Python源文件的扩展名为.py。
数据类型与表达式
02
(1)数据按照其本身特征可以分为若干种不同类型,常见的Python基本数据类型有整型、实型、字符串型和布尔型四种。
(2)Python的基本运算包括算术运算、关系运算和逻辑运算三大类。
(3)变量、常量、运算符和圆括号等按一定的规则组合构成一个表达式,可以用来描述数据的计算过程或各种条件的判断等。
变量和赋值语句
03
(1)在Python中,变量名可以包括字母、数字和下划线,但不能以数字开头,而且字母区分大小写,同时系统关键字不能作为变量名使用。
(2)由于Python是动态类型语言,因此在使用前不需要预先声明变量的数据类型。
(3)在 Python中,“=”为赋值符号,“+=”为运算符“+”和赋值符号“=”的组合。类似的赋值运算符还有“-=”“*=”“/=”和“%=”等。
基本数据结构
04
(1)字符串与列表。
①字符串和列表都是由一些数据元素共同组成的一个序列整体。
②字符串和列表是由0个或多个字符组成的序列,列表的元素可以是数字、字符串等混合类型的数据,甚至是其他的列表。
③列表一旦创建,就可以添加或删除其中的元素。列表用方括“[]”来表示,元素之间以逗号“,”分隔。
④字符串、列表中的元素都是通过索引来定位的,第一个元素的索引是 0,第二个元素的索引是1,以此类推。
⑤字符串和列表在创建以后都可以进行某些特定的操作,如提取序列中的一部分元素、判断某个元素是否为序列的成员等。
基本数据结构
04
(2)字典。
①字典中的每个元素包含两部分内容:键和值。键通常用字符串或数值来表示,值可以是任意类型的数据。键和值两者一一对应,且每个键只能对应一个值。键和值在字典中以成对的形式出现,并以如下方式标记:d={key1:value1,key2:value2,…}。键-值对用冒号分隔,各个对之间用逗号分隔,所有这些都包括在花括号“{}”中。
②字典中的元素是没有顺序的,引用元素时以键为索引。
需要熟知并记住的内容
05
(1)数据类型及其表达形式
数据类型名 数据表示形式
整型 数学中的整数,如:3,-3281,0等十六进制数(用0x前缀),如:0xda00,0xabc123d等
实型 数学中的实数,如:6.1224,-7.521等用科学记数法表示的实数,如:0.0000032可以写成3.2e-6等
字符串型 用单引号、双引号或三引号表示,如:'欢迎光临!'、"HAPPY!"、'''cook_122'''等
布尔型 只有两种值:True和False。布尔型数据可以进行not、and和or等逻辑运算
需要熟知并记住的内容
05
(2)Python中常用的算术运算符(P75)
运算符 表达式 描述 示例 优先级
** x**y 求x的y次幂 3**2结果为9 1
* x*y 将x与y相乘 4*2结果为8 2
/ x/y 用x除以y,产生实数值 6/2结果为3.0 2
// x//y 用x除以y,取整数部分 44//2结果为22 2
% x%y 用x除以y,取余数 61%2结果为1 2
+ x+y 将x与y相加 3+2结果为5 3
- x-y 将x减去y 3-2结果为1 3
需要熟知并记住的内容
05
(3)Python中常用的关系运算符(P75)
运算符 表达式 描述 示例
> x>y x大于y 11>2结果为True
< x>= x>=y x大于等于y 4>=2结果为True
<= x<=y x小于等于y 7<=3结果为False
== x==y x等于y 55==42结果为False
!= x!=y x不等于y 4!=2结果为True
in x in y x是y的成员 "3"in"5"结果为False
需要熟知并记住的内容
05
(4)Python中常用的逻辑运算符(P76)
运算符 表达式 描述 示例
and x and y 布尔“与” True and False结果为False
or x or y 布尔“或” True or False结果为True
not not x 布尔“非” not False结果为True
需要熟知并记住的内容
05
(5)Python中基本运算的优先级
运算符 优先级描述
算术运算符 先执行优先级高的运算,同优先级的基本运算按照自左向右的顺序执行,但幂运算按照的自右向左的顺序执行
关系运算符 除in低一级外,其他关系运算符优先级相同
逻辑运算符 优先级为not>and>or
优先级最高级别为1,级别数字越大,优先级越低;运算顺序为:算术运算→关系运算→逻辑运算 需要熟知并记住的内容
05
(6)辨析字符串、列表和字典
名称 元素 表示形式 索引 示例代码 运行结果
字符串 字符 单引号“' '” 双引号“" "” 三引号“''' '''” 从0开始依次递增 s="12345" print(s[0]) print(s[1:3]) 1
23
列表 数字、 字符串、列表 方括号“[]” 从0开始依次递增 ls=[1,"2",3,[4,5]] print(ls[1]) print(ls[0:2]) 2
[1,'2']
字典 键和值 花括号“{}” 键 d={1:1,2:"2",3:[1,2],4:{1:2}} print(d[1]) print(d[4]) 1
{1:2}
需要熟知并记住的内容
05
(7)列表元素的访问(以列表lst=[1,2,3,4,5]为例)
示例代码 含义 结果
lst[1] 访问列表索引为1的元素(即访问列表第二个元素) 2
lst[-2] 访问列表倒数第二个元素 4
lst[0:2] 表示从列表索引为0的元素开始取,一直取到索引为1的元素(即从第一个元素取到第二个元素) [1,2]
lst[1:4:2] 表示从列表索引为1的元素开始取,一直取到索引为3的元素,步长为2(即取第二个元素和第四个元素) [2,4]
lst[::-1] 将列表逆序输出 [5,4,3,2,1]
lst[::2] 表示从列表索引为0的元素开始取,一直取到最后一个元素,步长为2(即取列表第一、三和五个元素) [1,3,5]
lst[1:] 表示从列表索引为1的元素开始取,一直取到最后一个元素(即取列表第二个元素到最后一个元素) [2,3,4,5]
lst[:3] 表示从列表索引为0的元素开始取,一直取到索引为2的元素(即取列表第一个元素到第三个元素) [1,2,3]
lst[-2:] 表示从列表索引为-2的元素开始取,一直取到最后一个元素(即取列表倒数第二个元素到最后一个元素) [4,5]
lst[:-2] 表示从列表索引为0的元素开始取,一直取到索引为-3的元素(即取列表第一个元素到倒数第三个元素) [1,2,3]
第
考点2:算法结构的程序实现
三
章
Python中常见的内建函数(P80)
01
函数 描述 语句 测试结果
★print(x) 输出x的值 print(5+5) 10
★input([prompt]) 获取用户输入(为字符串型) x=input("你的名字是:") #从键盘输入“王明” print(x) 王明
★int(object) 将字符串和数字转换成整型 int(14.8) 14
float(object) 将字符串和数字转换成实型 float(5) 5.0
abs(x) 返回x的绝对值 abs(-6) 6
help() 提供交互式帮助 \ ★len(seq) 返回序列的长度 len([1,2]) 2
str(x) 将x转换成字符串 str(7) '7'
chr(x) 返回x对应的字符 chr(66) 'B'
ord(x) 返回x对应的ASCII值 ord("B") 66(十进制)
round(x[,n]) 对x进行四舍五入(如果给定n,就将数x转换为小数点后有n位的数) round(7.71532,3) 7.715
max(s,[,args...]) 返回序列的最大值(如果给定多个参数,则返回给定参数中的最大值) x=[1,3,-2,2,4] max(x) min(x) 4
-2
min(s,[,args...]) 返回序列的最小值(如果给定多个参数,则返回给定参数中的最小值) If语句
02
格式 特点
一般格式 if <条件>: <语句块1> else: <语句块2> ①条件是一个表达式,它的值可以是真(True)或假(False)
②当条件为真时,执行语句块1中的语句,否则(条件为假)执行语句块2中的语句
③if语句中的冒号表示下方紧接着一个语句块
④语句块是一行或放在一起多行的语句,一般通过行缩进来标识。同一个if语句中,if、else语句下方的语句块必须采用相同的缩进
⑤如果程序只需要对条件为真的情况做出处理,那么if语句可省略else及语句块2部分
简化格式 if <条件>: <语句块> If语句
02
格式 特点
if <条件1>: <语句块1> elif <条件2>: <语句块2> …… elif <条件N>: <语句块N> else: <语句块N+1> ①一个if语句可以包含多个elif子句,最后一个else子句是可选的。elif子句仅当其if语句中的条件为假时才执行
②如果if语句和elif子句中的条件都不为真时,末尾的else子句的语句块就会被执行
③只要某个条件为真,计算机就会执行其所对应的语句块,然后就退出该语句
If—elif语句
单行注释语句和多行注释语句
03
(1)单行注释采用“#”开头,“#”后面的内容为注释。
(2)多行注释使用成对的三个单引号或成对的三个双引号,引号中间为注释内容。
循环结构
04
for语句:
while语句:
格式 特点
for <变量> in <序列>: <循环体> [else: <语句块>] ①通过遍历序列中的元素实现循环
②序列的元素数量控制循环次数
③循环过程中,序列中的元素会被依次赋值给变量,然后执行一次循环体
格式 特点
while <条件>: <循环体> ①若一个循环执行之前,循环次数未知,可以使用while循环
②while循环在执行时,首先会判断条件是否为真,如果条件为真,执行一次循环体,再次判断条件是否为真,如果仍为真,那么再执行一次循环体,以此类推,直到条件为假时退出while语句
循环结构
04
break语句与continue 语句:
如果在循环条件仍然为真或序列没有遍历完的时候,想要强行跳出循环,可以用break语句;如果想提前结束本次循环,可以用continue语句。
循环结构
04
end=" " 的作用:
(1)代码“print(num,end=" ")”中的“end=" "”表示将 print()函数的结束值设置为一个空格,则下一次对print()的调用结果将会直接从空格的右边开始。
代码实例 运行结果
x=[1,3,5,7,9] for i in x: print(i,end=" ") 1 3 5 7 9
(2)代码“print(num,end=",")”中的“end=","”表示将 print()函数的结束值设置为一个逗号,则下一次对print()的调用结果将会直接从逗号的右边开始。
代码实例 运行结果
x=[1,3,5,7,9] for i in x: print(i,end=",") 1,3,5,7,9,
(3)当没有设置时,print()函数默认以换行符作为其结束符。
循环结构
04
Break与continue的异同:
语句 break语句 continue语句
特点 结束整个循环,转而执行循环结构后面的语句 结束本次循环,继续下次循环
相同点 ①两者都只能用于循环之中,不可单独使用 ②循环中的break和continue总是需要和if语句配合使用 代码实例
运行结果 正常情况下执行20次循环。实际执行了14次循环。在第14次循环时,total的值大于100了,执行break语句,结束循环,输出结果 正常情况下执行20次循环。但在第10、11次循环时,会执行continue语句,跳过当次循环,continue后面的语句total = total+i不会执行,即i的值10和11不会累加到total中,继续下一次循环
第
考点三:函数与模块
三
章
自定义函数
01
语法格式 特点
def 函数名(参数集合): <函数体> [return函数值] 函数名的命名规则和变量名一样。完成函数的构造后,在程序中就可以根据需要调用该函数
代码实例 运行结果 说明
def S(a,b): z=a*b return z w=2.5 h=6 print(S(w,h)) 15.0 ①定义后的函数不能直接运行,需要经过调用才能得到运行。调用函数的基本方法为:函数名(实际参数集合)
②在函数定义时,圆括号内使用逗号分隔开形式参数(形参)列表,在调用函数时向其传递实际参数(实参)
模块导入及应用
02
方法 代码实例 运行结果
import语句导入模块 import mathprint(math.exp(2)) 7.38905609893065
from-import语句导入模块 from math import exp print(exp(2)) 7.38905609893065
模块导入及应用
02
math模块(P91)
名称 含义
math.e 自然常数e
math.pi 圆周率π
math.ceil(x) 对x向上取整,比如x=1.2,返回2
math.floor(x) 对x向下取整,比如x=1.2,返回1
math.pow(x,y) 指数运算,得到x的y次方
math.log(x) 对数运算,默认基底为e
math.sin(x) 正弦函数
math.cos(x) 余弦函数
math.tan(x) 正切函数
math.degrees(x) 弧度转换成角度
math.radians(x) 角度转换成弧度
模块导入及应用
02
random模块(P92)
名称 含义
★random.random() 随机生成一个[0,1)范围内的实数
random.uniform(a,b) 随机生成一个[a,b]范围内的实数
★random.randint(a,b) 随机生成一个[a,b]范围内的整数
random.choice(seq) 从序列seq的元素中随机挑选一个元素
random.sample(seq,k) 从序列seq中随机挑选k个元素
random.shuffle(seq) 将序列seq的所有元素随机排序
模块导入及应用
02
Image模块(P91)
名称 含义
Image.open() 打开图像文件
Image.format 获取图像文件格式
Image.size 获取图像尺寸大小(以像素为单位表示图像的宽度和高度)
Image.mode 获取图像的颜色模式
Image.rotate(x) 将图像旋转x度,默认逆时针方向旋转