函数与模块课件(共35张PPT)高中信息技术浙教版(2019)必修1
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
from math import pi r=float(input("半径: ")) s= pi*(r**2) print("面积是: ",str(s))
4 典例分析:【快递收费】
某快递公司为计算快递运费编写了Python程序,当用户输入快递重 量“单位是千克)后,根据快递公司的收费标准,计算出快递运费。
6 Image模块
Image模块是PIL库中的重要模块 # 获得图像的文件格式 geshi = img.format # 获得图像的高和宽 h, w = img.size # 获得图像的颜色模式 mo = img.mode # 将图像旋转45度后显示 img.rotate(45).show()
from PIL import Image
print(i, " ,", end='')
5 典例分析【随机点名】
编程:随机点名。 同时点名人数由 用户输入,当用 户输入0时结束程 序。
运行如右图所示:
5 典例分析【随机点名】
import random as rd
md=['王佳慈','苏鉴槐','杨金兰','李炳臻','高倩南','段金丽','张叶芳','冯赵祝满','袁杨洋','字叶枫','赵志锋 ','吴丽娟','余艳','李艳秋','杨佳馨','董璇','杨树宏','冯佳艺','杨漾槐','倪登城','周连琪','许佳雪','马赵琴','段 姝慧','段钰','杨礼兵','莽丽洁','和琴艳','陈璞','罗福星','陈绕青','李晓育','毕丽汝','车江栾','李荣','徐苗','史 小禾','刘贤','常晓会','苏艳聪','赵波','韩左辉','白承绚','时雪缘']
zrs= len(md) rs=int(input("输入随机点名人数或输入0退出:")) while rs!=0:
b=rd.sample(range(zrs),rs) i=0 while i<rs:
x=b[i] print(md[x],end=" ") i+=1 print("") rs = int(input("输入随机点名人数或输入0退出:"))
3.2.5函数与模块
2 自定义函数
函数可分为系统函数和用户自定义函数。
可 以 复 用
前面使用过的print( )和input( )函数都是系统函数 自定义函数:一般包括函数名、参数、函数体和返回值 等四部分。
自定义函数的基本格式是:
的 代
def 函数名(参数):
码
函数体
[return 返回值]
2 自定义函数
def 函数名(参数):
def Area(a,b,c):
函数体 [return 返回值]
p=(a+b+c)/2
s=(p*(p-a)*(p-b)*(p-c))**0.5
return s
s1=Area(3,4,5) s2=Area(5,12,13) print(s1+s2)
完成函数的构造后,在程序中就可以根据需要调用该函数。
random.sample(seq,k) random.shuffle(seq)
从序列中随机挑选k个元素 将序列的所有元素随机排序
5 random 库(模块)
random库(模块):用来随机安排出场顺序
import random cla=['(2)班','(3)班','(4)班','(5)班','(6)班'] random.shuffle(cla) for c in cla:
语法: import 模块名
(文具在哪个文具盒, 相当于导入的是一个文 具盒,是相对路径)
from-import语句
语法: from 模块名 import 函数名
(文具盒中哪个文具,是绝对路径)
from 模块名 import *
*是通配符,表示导入文具盒中的全部文 具,和import 模块名效果相同。
随堂练习
1.下面程序段定义的函数fa用于计算n!,请在划线处填入合适的代码? def fa(n):
i=1 s=1 while i<=n:
s*=i i=i+1
return s
a=int(input("请输入整数a的值:")) print(fa(a))
若输入的值是是5,则输出的结果为 120
2.以下程序段定义的函数reverse能够得到整数n翻转后的数字(例:1234翻转后是4321)。
year=int(input("请输入出生年份,输入0结束:")) while year!=0:
print("你的生肖是:",shengxiao(year)) year = int(input("请输入出生年份,输入0结束:"))
3.2.5函数与模块
模块(库)的导入及应用
2 导入模块(库)
库(模块):Python 的一大特色是其丰富的模块,基本上只要你能想到
money=9 elif weight<=3:
money=11 elif weight<=5:
money=14 else:
money=14+2* math.ceil(weight-5) print("你需支付的快递运费是:",money,"元")
5 random 库(模块)
random库(模块):用来生成随机数。
含义 自然常数e 圆周率π 对x向上取整,如x=1.2,返回2 对x向下取整,如x=1.2,返回1 指数运算,返回x的y次方(返回值为浮点型) 对数运算,默认基底为e 正弦函数/余弦函数 正切函数 弧度转换成角度 角度转换成弧度
4 math 库(模块)
试试这个: import math x=int(input("number:")) x=math.sqrt(x) print("square rooting x:",x)
def reverse(n):
r=0
while n > 0:
c = n % 10
r= n= return r
① r*10+c ② n//10
a=int(input("请输入整数a的值:"))
print(reverse(a))
①的程序是
②的程序是
若输入的值是是20221106,则输出的结果为 60112202
变量的作用域
1. 局部变量
在一个函数内或者语句块内定义的变量称为局部变量。局部变量 的作用域仅限于定义它的函数体或语句块中。
def fun1(a): x=a+10 ……
def fun2(a,b): x,y=a,b ……
def func(x, y=2): print (x, y)
func(3) func(x=3, y=4)
如果没有传递实参,则会使用默认参数, 当然也可以通过传递实参来替换它的默认值 。
3 典例分析:输入年份输出生肖
【编程】输入一个农历年份(>=1900),输出该 年对应的生肖,直到输入0结束,运行结果如 下所示:
Hale Waihona Puke random库中的常用函数
名称 random.random() random.uniform(a,b) random.randint(a,b)
含义 随机生成一个【0,1)范围内的实数 随机生成一个【a,b】范围内的实数 随机生成一个【a,b】范围内的整数
random.choice(seq)
从序列的元素中随机挑选一个元素 如:random.choice(range(10)),即从0到9中随机挑选一个整数
def 函数名(参数):
可
函数体
以
[return 返回值]
复
用
函数名:命名规则和变量名一样
的
参数:即形式参数,简称形参,是调用该函数需要提供的数据;参数是用
代
来向函数传递值的,当有多个参数时,各个参数之间用逗号隔开
码
函数体:是函数需要执行的具体代码(计算过程)
函数值:函数执行完后,由return语句将表达式值返回给调用者,结束函数。
4 math 库(模块)
math库中的常用常数函数与函数
名称 math.e math.pi math.ceil(x) math. floor(x) math.pow(x,y) math.log(x) math.sin(x)/math.cos(x) math.tan(x) math.degrees(x) math.radians(x)
快递公司的具体收费标准如下表所示
快递重量(千克) 1千克以下(包含1千克)
快递运费 9元
1千克以上3千克以下(包含3千克)
11元
3千克以上5千克以下(包含5千克)
14元
5千克以内(含5千克)收14元,超过
5千克以上 5千克部分,每千克加收2元,不足1
千克按1千克计算
4 典例分析:【快递收费】
import math weight=float(input("请输入快递质量(kg:)")) if weight<=1:
2 自定义函数
讨论:自定义函数x1的功能以及输出的值。
可 以
(1)无参数
复 def x1():
用 的
s=1 for i in range(1,5):
s=s*i
代
return s
码
print(x1())
(2)无返回值
def x1(): s=1 for i in range(1,5): s=s*i
print(x1())
print(x2(2,3))
print(x2(3,4)+x2(5,6))
形参和实参
1、形参:在定义函数阶段定义的参数, 叫形式参数, 简称形参(相当于变量名) 2、实参:再调用函数的阶段传入的值, 叫实际参数, 简称实参(相当于变量值)
默认(行)形参
默认形参: 在定义阶段就已经被赋值的,称之为默认参数 特点:意味着在调用阶段可以不赋值
#将图像旋转45°后显示
6 Image模块
Image模块是PIL库(Python Imaging Library)中重要的模块
from PIL import Image im=Image.open("pil.jpg") print(im.format) print(im.size) print(im.mode) im.rotate(45).show()
im=Image.open('小飞象.jpg') #打开小飞象.jpg图像文件
print(im.format) #获取图像文件格式
print(im.size)
#获取图像尺寸大小(以像素为单位表示图像的宽度和高度
)
print(im.mode)
#获取图像的颜色模式
im.rotate(45).show()
请输入农历年份,输入0结束:2004 生肖是:猴 请输入农历年份,输入0结束:
3 典例分析:输入年份输出生肖
def shengxiao(y): L1=["鼠","牛","虎","兔","龙","蛇","马","羊","猴","鸡","狗","猪"] i=(y-1900)%12 return L1[i]
2 自定义函数
讨论:自定义函数x1、x2的功能以及输出的值。
可 (3)有1个参数
以 def x1(n):
复
s=1
用
for i in range(1,n+1): s=s*i
的
return s
代
码 print(x1(4))
print(x1(3)+x1(5))
(4)有多个参数时,参数 间用逗号分隔开。
def x2(h1,h2): s=h1*h2 return s
print(c,end=' ')
5 random 库(模块)
random库(模块):用来抽奖
import random xs=["小红","小蓝","小绿","小花","老张","老王","老李","老赵"] n=int(input("想抽几个人 : ")) print("1 人: ",random.choice(xs)) print(n,"人: ",random.sample(xs,n)) random.shuffle(xs) for i in xs:
试试这个: from math import sqrt x=int(input("number:")) x=sqrt(x) print("square rooting x:",x)
4 math 库(模块)
输入半径求圆面积
import math r=float(input("半径: ")) p=math.pi s= p*math.pow(r,2) print("面积是: ",str(s))
的常见开发需求,都能找到别人已经实现的库直接使用,或者相关的工具
可 /框架来辅助实现。
以 1.导入库(模块)
复
用
import 库名
import math
的
代 2.指定别名:使用简短的别名,让你使用更方便。
码
import 库名 as 别名
import math as m
2 导入模块(库)
import语句
4 典例分析:【快递收费】
某快递公司为计算快递运费编写了Python程序,当用户输入快递重 量“单位是千克)后,根据快递公司的收费标准,计算出快递运费。
6 Image模块
Image模块是PIL库中的重要模块 # 获得图像的文件格式 geshi = img.format # 获得图像的高和宽 h, w = img.size # 获得图像的颜色模式 mo = img.mode # 将图像旋转45度后显示 img.rotate(45).show()
from PIL import Image
print(i, " ,", end='')
5 典例分析【随机点名】
编程:随机点名。 同时点名人数由 用户输入,当用 户输入0时结束程 序。
运行如右图所示:
5 典例分析【随机点名】
import random as rd
md=['王佳慈','苏鉴槐','杨金兰','李炳臻','高倩南','段金丽','张叶芳','冯赵祝满','袁杨洋','字叶枫','赵志锋 ','吴丽娟','余艳','李艳秋','杨佳馨','董璇','杨树宏','冯佳艺','杨漾槐','倪登城','周连琪','许佳雪','马赵琴','段 姝慧','段钰','杨礼兵','莽丽洁','和琴艳','陈璞','罗福星','陈绕青','李晓育','毕丽汝','车江栾','李荣','徐苗','史 小禾','刘贤','常晓会','苏艳聪','赵波','韩左辉','白承绚','时雪缘']
zrs= len(md) rs=int(input("输入随机点名人数或输入0退出:")) while rs!=0:
b=rd.sample(range(zrs),rs) i=0 while i<rs:
x=b[i] print(md[x],end=" ") i+=1 print("") rs = int(input("输入随机点名人数或输入0退出:"))
3.2.5函数与模块
2 自定义函数
函数可分为系统函数和用户自定义函数。
可 以 复 用
前面使用过的print( )和input( )函数都是系统函数 自定义函数:一般包括函数名、参数、函数体和返回值 等四部分。
自定义函数的基本格式是:
的 代
def 函数名(参数):
码
函数体
[return 返回值]
2 自定义函数
def 函数名(参数):
def Area(a,b,c):
函数体 [return 返回值]
p=(a+b+c)/2
s=(p*(p-a)*(p-b)*(p-c))**0.5
return s
s1=Area(3,4,5) s2=Area(5,12,13) print(s1+s2)
完成函数的构造后,在程序中就可以根据需要调用该函数。
random.sample(seq,k) random.shuffle(seq)
从序列中随机挑选k个元素 将序列的所有元素随机排序
5 random 库(模块)
random库(模块):用来随机安排出场顺序
import random cla=['(2)班','(3)班','(4)班','(5)班','(6)班'] random.shuffle(cla) for c in cla:
语法: import 模块名
(文具在哪个文具盒, 相当于导入的是一个文 具盒,是相对路径)
from-import语句
语法: from 模块名 import 函数名
(文具盒中哪个文具,是绝对路径)
from 模块名 import *
*是通配符,表示导入文具盒中的全部文 具,和import 模块名效果相同。
随堂练习
1.下面程序段定义的函数fa用于计算n!,请在划线处填入合适的代码? def fa(n):
i=1 s=1 while i<=n:
s*=i i=i+1
return s
a=int(input("请输入整数a的值:")) print(fa(a))
若输入的值是是5,则输出的结果为 120
2.以下程序段定义的函数reverse能够得到整数n翻转后的数字(例:1234翻转后是4321)。
year=int(input("请输入出生年份,输入0结束:")) while year!=0:
print("你的生肖是:",shengxiao(year)) year = int(input("请输入出生年份,输入0结束:"))
3.2.5函数与模块
模块(库)的导入及应用
2 导入模块(库)
库(模块):Python 的一大特色是其丰富的模块,基本上只要你能想到
money=9 elif weight<=3:
money=11 elif weight<=5:
money=14 else:
money=14+2* math.ceil(weight-5) print("你需支付的快递运费是:",money,"元")
5 random 库(模块)
random库(模块):用来生成随机数。
含义 自然常数e 圆周率π 对x向上取整,如x=1.2,返回2 对x向下取整,如x=1.2,返回1 指数运算,返回x的y次方(返回值为浮点型) 对数运算,默认基底为e 正弦函数/余弦函数 正切函数 弧度转换成角度 角度转换成弧度
4 math 库(模块)
试试这个: import math x=int(input("number:")) x=math.sqrt(x) print("square rooting x:",x)
def reverse(n):
r=0
while n > 0:
c = n % 10
r= n= return r
① r*10+c ② n//10
a=int(input("请输入整数a的值:"))
print(reverse(a))
①的程序是
②的程序是
若输入的值是是20221106,则输出的结果为 60112202
变量的作用域
1. 局部变量
在一个函数内或者语句块内定义的变量称为局部变量。局部变量 的作用域仅限于定义它的函数体或语句块中。
def fun1(a): x=a+10 ……
def fun2(a,b): x,y=a,b ……
def func(x, y=2): print (x, y)
func(3) func(x=3, y=4)
如果没有传递实参,则会使用默认参数, 当然也可以通过传递实参来替换它的默认值 。
3 典例分析:输入年份输出生肖
【编程】输入一个农历年份(>=1900),输出该 年对应的生肖,直到输入0结束,运行结果如 下所示:
Hale Waihona Puke random库中的常用函数
名称 random.random() random.uniform(a,b) random.randint(a,b)
含义 随机生成一个【0,1)范围内的实数 随机生成一个【a,b】范围内的实数 随机生成一个【a,b】范围内的整数
random.choice(seq)
从序列的元素中随机挑选一个元素 如:random.choice(range(10)),即从0到9中随机挑选一个整数
def 函数名(参数):
可
函数体
以
[return 返回值]
复
用
函数名:命名规则和变量名一样
的
参数:即形式参数,简称形参,是调用该函数需要提供的数据;参数是用
代
来向函数传递值的,当有多个参数时,各个参数之间用逗号隔开
码
函数体:是函数需要执行的具体代码(计算过程)
函数值:函数执行完后,由return语句将表达式值返回给调用者,结束函数。
4 math 库(模块)
math库中的常用常数函数与函数
名称 math.e math.pi math.ceil(x) math. floor(x) math.pow(x,y) math.log(x) math.sin(x)/math.cos(x) math.tan(x) math.degrees(x) math.radians(x)
快递公司的具体收费标准如下表所示
快递重量(千克) 1千克以下(包含1千克)
快递运费 9元
1千克以上3千克以下(包含3千克)
11元
3千克以上5千克以下(包含5千克)
14元
5千克以内(含5千克)收14元,超过
5千克以上 5千克部分,每千克加收2元,不足1
千克按1千克计算
4 典例分析:【快递收费】
import math weight=float(input("请输入快递质量(kg:)")) if weight<=1:
2 自定义函数
讨论:自定义函数x1的功能以及输出的值。
可 以
(1)无参数
复 def x1():
用 的
s=1 for i in range(1,5):
s=s*i
代
return s
码
print(x1())
(2)无返回值
def x1(): s=1 for i in range(1,5): s=s*i
print(x1())
print(x2(2,3))
print(x2(3,4)+x2(5,6))
形参和实参
1、形参:在定义函数阶段定义的参数, 叫形式参数, 简称形参(相当于变量名) 2、实参:再调用函数的阶段传入的值, 叫实际参数, 简称实参(相当于变量值)
默认(行)形参
默认形参: 在定义阶段就已经被赋值的,称之为默认参数 特点:意味着在调用阶段可以不赋值
#将图像旋转45°后显示
6 Image模块
Image模块是PIL库(Python Imaging Library)中重要的模块
from PIL import Image im=Image.open("pil.jpg") print(im.format) print(im.size) print(im.mode) im.rotate(45).show()
im=Image.open('小飞象.jpg') #打开小飞象.jpg图像文件
print(im.format) #获取图像文件格式
print(im.size)
#获取图像尺寸大小(以像素为单位表示图像的宽度和高度
)
print(im.mode)
#获取图像的颜色模式
im.rotate(45).show()
请输入农历年份,输入0结束:2004 生肖是:猴 请输入农历年份,输入0结束:
3 典例分析:输入年份输出生肖
def shengxiao(y): L1=["鼠","牛","虎","兔","龙","蛇","马","羊","猴","鸡","狗","猪"] i=(y-1900)%12 return L1[i]
2 自定义函数
讨论:自定义函数x1、x2的功能以及输出的值。
可 (3)有1个参数
以 def x1(n):
复
s=1
用
for i in range(1,n+1): s=s*i
的
return s
代
码 print(x1(4))
print(x1(3)+x1(5))
(4)有多个参数时,参数 间用逗号分隔开。
def x2(h1,h2): s=h1*h2 return s
print(c,end=' ')
5 random 库(模块)
random库(模块):用来抽奖
import random xs=["小红","小蓝","小绿","小花","老张","老王","老李","老赵"] n=int(input("想抽几个人 : ")) print("1 人: ",random.choice(xs)) print(n,"人: ",random.sample(xs,n)) random.shuffle(xs) for i in xs:
试试这个: from math import sqrt x=int(input("number:")) x=sqrt(x) print("square rooting x:",x)
4 math 库(模块)
输入半径求圆面积
import math r=float(input("半径: ")) p=math.pi s= p*math.pow(r,2) print("面积是: ",str(s))
的常见开发需求,都能找到别人已经实现的库直接使用,或者相关的工具
可 /框架来辅助实现。
以 1.导入库(模块)
复
用
import 库名
import math
的
代 2.指定别名:使用简短的别名,让你使用更方便。
码
import 库名 as 别名
import math as m
2 导入模块(库)
import语句