浙教版(2019)高中信息技术必修1 3.2 Python语言程序设计——函数和模块 课件(共29张PPT)

文档属性

名称 浙教版(2019)高中信息技术必修1 3.2 Python语言程序设计——函数和模块 课件(共29张PPT)
格式 pptx
文件大小 28.5MB
资源类型 教案
版本资源 浙教版(2019)
科目 信息技术(信息科技)
更新时间 2020-11-16 15:23:29

图片预览

文档简介

第三章
算法的程序实现
1、用计算机编程解决的一般过程
2、Python语言程序设计
3、简单的算法及其程序设计
人生苦短
我用python
学习目标:
函数与模块
动脑的时刻
abs()?
len()?
int ()?
同学们,你们知道它们是什么?
它们的功能我们自己可以实现吗?
Python函数分类
一、内置函数
print() input() randint()
二、自定义函数
自定义函数
def 函数名(参数集合):
<函数体>
[return 函数值]
函数名就是标识符,命名要求与变量命名要求一样。
语句块必须缩进,预定4个空格。
定义中的参数列表称为形式参数,只是一种符号标识符
函数定义,只是声明了一个函数,它不能被执行,需要调用执行。
调用的方式,就是函数名后加上小括号。
调用时写的参数是实际参数,是实实在在传入的值,简称实参。
自定义函数
def add(x,y): #x,y 为形式参数,也是标识符。
return x+y #需要返回值就用return
如果需要使用这个函数,只需要使用这个函数名和参数即可。
实例
#定义一个求最大值的函数
def myMax(a,b):
if(a>b):
return a
else:
return b
#调用这个函数
c=myMax(3,4)
print(c)
思考:
函数形式参数、实参?
变量的作用域
当程序中有多个函数时,定义的每个变量只能在一定的范围内访问,称之为变量的作用域。
按作用域划分,将变量分为局部变量和全局变量。
1. 局部变量
在一个函数内或者语句块内定义的变量称为局部变量。局部变量的作用域仅限于定义它的函数体或语句块中。
def fun1(a):
x=a+10
……
def fun2(a,b):
x,y=a,b
……
变量的作用域
在所有函数之外定义的变量称为全局变量,它可以在多个函数中被引用。
x = 30
def func():
global x
print('x的值是', x)
x = 20
print('全局变量x改为', x)
func()
print('x的值是', x)
2. 全局变量
变量的作用域
模块是什么?
函数就像积木,那么模块可以认为是一桶积木。
一般开发者会把类似的或者将一个项目函数收集在一个模块中。Python 模块(Module),是一个 Python 文件,以 .py 结尾,包含了 Python 对象定义和Python语句。
python模块的导入——import
使用import 关键字,可以将一个程序中已出现的一个或多个函数或模块,引入到另一个python代码中,从而实现代码的复用。语法如下:
import 模块名
例如:要引用模块 math,就可以在文件最开始的地方用 import math 来引入。在调用 math 模块中的函数时,必须这样引用:
模块名.函数名
from…import 语句
一个模块可能包含大量函数,但是一个程序又不会使用它的全部函数,Python 的 from 语句让你从模块中导入一个指定的部分到当前空间中。语法如下:
from 模块名 import 函数名
如果需要把一个模块的所有内容全部导入,使用的语句只需将函数名写成*即可。
例如,要导入模块 fib 的 fibonacci 函数,使用如下语句:
from fib import fibonacci
例如:需要引入scapy.all模块中的srp函数,就可以使用以下语句:
实例
定义一个比较大小的函数,并保存到文件中,使用导入模块的方式进行使用?
#定义一个求最大值的函数
def myMax(a,b):
if(a>b):
return a
else:
return b
思考:
怎么导入?
#调用这个函数
From myfunc import myMax
c=myMax(3,4)
print(c)
math模块
math模块提供了众多功能强大的数学函数,可以有效提高编程效率,使用这些函数时,需要使用import math导入math模块。
random模块
在编写程序时,经常需要提供一些随机数据。大多数编程语言提供了生成伪随机数的函数,在Python中这类函数被封装在random模块中。
{5940675A-B579-460E-94D1-54222C63F5DA}函数名
说明
举例
random.random()
返回[0.0,1.0]区间内的一个随机小数
random.random()返回0.9523521796999529
random.uniform(a,b)
返回[a,b]区间内的一个随机小数
random.uniform(1,3)返回2.3403540401554146
random.randint(a,b)
返回[a,b]区间内的一个随机整数
random.randint(1,3)返回2
random.randrange([start],end,[step])
返回[start,end)区间内的一个整数,start和step默认都是1
random.randrange(1,10)返回5
random.choice()
随机返回给定序列中的一个元素
random.choice(['a','b','c'])返回'c'
random.shuffle(x,[random])
将可变序列的所有元素随机排列
random.shuffle([1,2,3,4])返回[1, 4, 3, 2]
random模块
Image模块
Image 模块提供了同名的类用来表示PIL的图像。Image模块还提供了许多工厂(factory)函数,包块从文件加载图像的函数,以及创建新图像的函数。比如说获取图像的尺寸和像素的颜色、旋转图像或改变图像格式等等。
# 获得图像的高和宽 h, w = img.size
# 获得图像的格式 geshi = img.format
# 获得图像的模式 mo = img.mode
# 将文件重新保存为time.png img.save('time', 'png')
# 创建缩略图 img.thumbnail((50,50),resample=Image.BICUBIC) img.show()
# 保存与图像数据相关的字典 dic = img.info
两种方法导入模块的区别
from…import *语句与import区别在于:
import 导入模块,每次使用模块中的函数都要是定是哪个模块。(哪个文件夹中的哪个文件,相当于导入的是一个文件夹,是个相对路径)
from…import * 导入模块,每次使用模块中的函数,直接使用函数就可以了;注因为已经知道该函数是那个模块中的了。(已经绑定了文件夹,只需要知道要用哪个文件即可,相当于导入的是一个文件夹中所有文件,所有函数都是绝对路径)
Python程序由模块构成,模块中包含若干条语句,语句包含表达式。

1. 物理行和逻辑行
Python程序由若干逻辑行组成。物理行是在编写程序时所看见的,而逻辑行是Python看见的单条语句,一个逻辑行可以包含多个物理行。
Python中语句不能跨逻辑行,在遇到较长的语句时,可以使用语句续行符号,将一条语句写在多行之中。
Python中的续行方式,可以使用“\”符号。
Python程序设计基础
2 . 语句分隔
通常建议每行只写一条语句,这样代码更加易读。如果想要在一个物理行中使用多于一条逻辑语句,那么需要使用分号“;”来特别地标明这种用法,分号表示一个逻辑语句的结束。
3. 缩进
在Python中行首的空白称为缩进,逻辑行首的空白(空格或制表符)用来决定逻辑行的缩进层次,从而用来决定语句的分组。
要求同一层次的语句必须有相同的缩进,每一组这样的语句称为一个代码块,错误的缩进会引发错误。
Python程序设计基础
4. 注释
注释用于为程序添加说明性的文字。Python解释器在运行程序时,会忽略被注释的内容。Python的注释有单行注释和多行注释。
单行注释以“#”开始,表示本行#之后的内容为注释。单行注释可以单独占一行,也可以放在语句末尾。
多行注释可以跨行,包含在一对三引号'''...'''或"""..."""之间且不属于任何语句的内容将被解释器认为是注释。
Python程序设计基础
课堂练习
1.下面程序段定义的函数fact用于计算n!
def fact(n):
i = 1
f = 1
while i <= n:
f = f * i
i = i + 1

该程序段划线处应填入的代码为 。
return f
课堂练习
s= Int(x + 0.5)
2.下面程序段定义的函数my_round接受一个实数类型的参数,函数返回该实数四舍五入后的整数
def my_round(x):
s =
return s
该程序段划线处应填入的代码为 。
课堂练习
3.以下程序段定义的函数int_reverse能够得到整数n翻转后的数字(例:123翻转后是321)
def int_reverse(n):
rn = 0
while n > 0:
c = n % 10
rn = ①
n = ②
return rn
划线处①的程序是 。
划线处②的程序是 。

rn * 10 + c
n // 10
课堂练习
4.以下程序引入python的math模块,使用math模块下的floor函数对命令行输入的实数进行取整:

n = input("请输入一个实数:")
n2 = math.floor(float(n)) #n取整后的整数
print(n2)
该程序段划线处应填入的代码为 。
import math
5.将弧度值转化为角度值的公式为“角度值=弧度值/π*100”, 正切值x的反正切弧度值可以通过math模块下的atan函数进行计算,atan(x)返回正切值x的反正切弧度值,下面的程序求正切值x的角度:
import math
x = float(input("请输入x的值:"))
y = / math.pi * 180
print(y) #输出角度
划线处的程序是 。
课堂练习
math.atan(x)
6.下面程序段生成10个[1,100]范围内的随机整数(允许重复)存放的列表numbers中:
from random import randint
numbers = []
for i in range(0, 10):
n =
numbers.append(n)
该程序段划线处应填入的代码为 。
课堂练习
randint(1, 100)
Thanks