第三单元算法与程序设计第12课函数 课件 2024—2025学年浙教版(2020)信息科技八年级上册

2024-09-20
| 37页
| 462人阅读
| 88人下载
普通

内容正文:

Python语言 print()函数基本用法: print("参数") print(”Hello”,”World “) input()函数基本用法: input('提示信息') 注释基本用法: # 单行注释的内容 """ 多行注释的内容 """ 变量:使用等号赋值以后会被创建,定义完成后可以直接使用。 例:yw_score 运算符: 算数运算符 逻辑运算符 比较运算符 数据: 数据运算、数据类型、 数据类型转换 基础 if 表达式: 语句块 if 表达式: 语句块1 else: 语句块2 if 表达式1: 语句块1 elif 表达式2: 语句块2 elif 表达式3: 语句块3 …… else: 语句块n 选择与判断 for 变量 in 序列或迭代对象: 循环体(语句块1) else: 语句块2 while 循环条件: 循环体(语句块1) else: 语句块2 for语句嵌套 while语句嵌套 break、continue语句的使用 循环与穷举 Python函数分类 函数 一、内置函数 print() input() int() 二、自定义函数 函数的定义 一个程序可以按不同的功能实现拆分成不同的模块,而函数就是能实现某一部分功能的代码块。 在Python中,定义一个函数要使用def语句,依次写出函数名、括号、括号中的参数和冒号,然后在缩进块中编写函数体,函数的返回值用return语句返回。 函数 自定义函数 函数 def 函数名(): <函数体> [return 函数值] 函数名就是标识符,命名要求与变量命名要求一样。 语句块必须缩进,预定4个空格。 函数定义,只是声明了一个函数,它不能被执行,需要调用执行。 调用的方式,就是函数名后加上小括号。 例:定义求和函数 函数 自定义函数 例:定义一个求最大值的函数 函数 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 fun(): global x print('x的值是', x) x = 20 print('全局变量x改为', x) fun() print('x的值是', x) 2. 全局变量 函数的参数就是使得函数个性化的一个实例。代码如下所示: >>> def MyFirstFunction(name_city): print(‘我喜欢的城市:’ + name_city) 运行结果如下: >>> MyFirstFunction('南京') 我喜欢的城市:南京 >>> MyFirstFunction('上海') 我喜欢的城市:上海 在上例中,我们对函数MyFirstFunction的形参name_city赋予不同的实参“南京”、“上海”后,函数就输出不同的结果。 函数的参数和返回值 函数有了参数之后,函数的输出结果变得可变了,如果需要多个参数,函数用逗号“,”(英文状态下输入)隔开即可。 在Python中对函数参数的数量没有限制,但是定义函数参数的个数不宜太多,一般2~3个即可。在定义函数时,一般要把函数参数的意义注释清楚,便于阅读程序。 那什么是形参和实参呢? 函数小括号“()”内的参数叫形参。 而实参则是指函数在调用过程中传递进来的参数。 函数的参数和返回值 在Python中,将函数参数分为三类:位置参数、可变参数、关键字参数。 (1)位置参数 直接传入参数数据即可,如果有多个参数,位置先后顺序不能改变。 (2)可变参数。 有2种传递方式:1是直接传入参数值;2是先封装成列表(list)或元组(tuple),再在封装后的列表或元组前面添加一个星号“*”传入。 (3)关键字参数。 有2种传递方式:1是直接传入参数值;2是可以先将参数封装成字典(dict),再在封装后的字典前添加2个星号“**”传入。 函数的参数和返回值 参数传递的方式 (1)位置参数 我们调用函数时,传入参数值按照位置顺序依次赋给参数,这样的参数称为位置参数。如下所示代码: def Sub(x,y): return x-y 运行结果如下: >>> Sub(100,30) 70 函数的参数和返回值 位置参数和关键字参数 上例中,Sub(x,y)函数有两个参数:x和y,这两个参数都是位置参数,调用函数时,传入的两个值按照位置顺序依次赋给参数x和y,得到的两数相减的结果是70。 如果交换了参数的位置,就会得到不同的结果,如上例中交换参数后的运行结果如下: >>> Sub(30,100) -70 从上面的运行结果可以看出,交换了参数顺序后的运行结果是-70,而不是我们期望的结果70。 函数的参数和返回值 位置参数和关键字参数 (2)关键字参数 关键字参数就是在函数调用的时候,通过参数名指定需要赋值的参数。通常我们在调用一个函数的时候,如果参数有多个,我们常常会混淆一个参数的顺序,达不到我们希望的效果。在Python中引入关键字参数就可解决这个潜在的问题。如下所示代码: >>> def Subtraction(num_1,num_2): return (num_1 - num_2) 函数的参数和返回值 位置参数和关键字参数 运行结果如下: >>> Subtraction(34,11) 23 >>> Subtraction(11,34) -23 >>> Subtraction(num_2=11,num_1=34) 23 函数的参数和返回值 位置参数和关键字参数 在上例中,我们调用函数Subtraction时:第1次调用函数Subtraction时,给2个参数顺序赋值34、11时得到的结果是23;第2次调用该函数时,交换了2个赋值参数的顺序得到的结果是-23,这不是所期望的结果;第3次调用该函数时,引用了关键字参数并对其分别赋值,虽然改变了顺序,但仍然得到了所期望的结果23。 函数的参数和返回值 位置参数和关键字参数 我们在定义函数时给参数赋了一个初值,这样的参数称为默认值参数。应用默认值参数的意义在于,当在函数调用的时候忘记了给函数参数赋值的时候,函数就会自动去找它的初值,使用默认值来代替,而使函数调用不会出现错误。如下所示代码: >>> def Subtraction(num_1=99,num_2=45): return (num_1 - num_2) 函数的参数和返回值 默认值参数 运行结果如下: >>> Subtraction() 54 >>> Subtraction(46) 1 >>> Subtraction(46,12) 34 函数的参数和返回值 默认值参数 在上例中,函数Subtraction的功能为:返回两个数相减的结果,在定义函数时分别给2个参数num_1,num_2赋了初值99和45,分别做了3次调用:第1次调用时没有赋值,程序就引用了2个参数的默认值99,45,返回的结果是54;第2次调用时,给第1个参数赋值为46,程序就引用了第2个参数的默认值45,返回的结果是1;第3次调用时,给2个参数分别赋值为46和12,程序就没有引用函数定义的默认值,返回的结果是34。 函数的参数和返回值 默认值参数 当在定义函数参数的时候,我们不知道究竟需要多少个参数的时候,只要在参数前面加上星号“*”即可,这样的参数称为可变参数。如下所示代码: >>> def test(*param): print('第三个参数是:',param[2]); print('可变参数的长度是:',len(param)); 函数的参数和返回值 可变参数 运行结果如下: >>> test('Hello',2,3,4,5,'Python') 第三个参数是: 3 可变参数的长度是: 6 在上例中,我们定义函数test的参数param为可变参数,我们在调用该函数的时候就可以根据实际的应用来输入不同长度、不同类型的参数值。 函数的参数和返回值 可变参数 有些时候,需要函数返回一些数据来报告函数实现的结果。在函数中用关键字“return”返回指定的值。如下所示代码: >>> def Subtraction(num_1,num_2): return (num_1 - num_2) 运行结果如下: >>> print(Subtraction(65,23)) 42 >>> Subtraction(34,11) 23 函数的参数和返回值 函数的返回值 函数中如果没有用关键字return指定返回值,则返回一个“None”对象。如下所示代码: >>> def test_return(): print('Hello First1') 函数的参数和返回值 函数的返回值 运行结果如下: >>> tempt = test_return() Hello First1 >>> tempt >>> print(tempt) None >>> type(tempt) <class 'NoneType'> 函数的参数和返回值 函数的返回值 Python是动态的确定变量类型,Python没有变量,只有名字。Python可以返回多个类型的值。 如下所示代码: >>> def back_test(): return ['Hi',2,3,4] 运行结果如下: >>> back_test() ['Hi',2,3,4] 函数的参数和返回值 函数的返回值 在上例中,Python返回多个值是列表数据。 如下所示代码: >>> def back_test(): return 'Hi',2,3,4 运行结果如下: >>> back_test() ('Hi',2,3,4) 在上例中,Python返回多个值是元组数据。 函数的参数和返回值 函数的返回值 要调用一个函数,需要知道函数的名称和参数。 函数分为自定义函数和内置函数。 自定义函数需要先定义再调用,内置函数直接调用,有的内置函数是在特定的模块下,这时需要用import命令导入模块后再调用。 我们可以在交互式命令行通过help(函数名)查看函数的帮助信息。 调用函数的时候,如果传入的参数数量不对,会报TypeError的错误,同时Python会明确地告诉你参数的个数。如果传入的参数数量是对的,但参数类型不能被函数所接受,也会报TypeError的错误,同时给出错误信息。 函数的调用 函数的调用方法 允许在函数内部创建另一个函数,这种函数叫内嵌函数或者内部函数。内嵌函数的作用域在其内部,如果内嵌函数的作用域超出了这个范围就不起作用。如下所示代码: >>> def fun1(): print('正在调用fun1()...') def fun2(): print('正在调用fun2()...') fun2() 函数的调用 嵌套调用 运行结果如下: >>> fun1() 正在调用fun1()... 正在调用fun2()... >>> fun2() Traceback (most recent call last): File "<pyshell#7>", line 1, in <module> fun2() NameError: name 'fun2' is not defined 函数的调用 嵌套调用 闭包是函数式编程的一个重要的语法结构。从表现形式上定义为,如果在一个内部函数里对一个外部作用域(但不是在全局作用域)的变量进行引用,那么内部函数就认为是闭包(closure)。如下所示代码: def Fun_sub(a): def Fun_sub2(b): return a-b return Fun_sub2 i = float(input('请输入减数:')) j = float(input('请输入被减数:')) print(Fun_sub(i)(j)) 函数的调用 使用闭包 运行结果如下: 请输入减数:67 请输入被减数:45 22.0 >>> Fun_sub2(23) Traceback (most recent call last): File "<pyshell#8>", line 1, in <module> Fun_sub2(23) 函数的调用 使用闭包 NameError: name 'Fun_sub2' is not defined 在上例中,内部函数Fun_sub2()引用了外部作用域的变量a。如果我们在全局范围内直接访问闭包Fun_sub2(),程序会报错,提示闭包函数Fun_sub2()没有定义。 在调用的时候要注意:不能在全局域内访问闭包,否则会出错。在闭包中,外部函数的局部变量对闭包中的局部变量(相当于全局变量和局部变量的关系),在闭包中能访问外部函数的局部变量,但是不能进行修改。 函数的调用 使用闭包 感谢聆听 $$

资源预览图

第三单元算法与程序设计第12课函数 课件  2024—2025学年浙教版(2020)信息科技八年级上册
1
第三单元算法与程序设计第12课函数 课件  2024—2025学年浙教版(2020)信息科技八年级上册
2
第三单元算法与程序设计第12课函数 课件  2024—2025学年浙教版(2020)信息科技八年级上册
3
第三单元算法与程序设计第12课函数 课件  2024—2025学年浙教版(2020)信息科技八年级上册
4
第三单元算法与程序设计第12课函数 课件  2024—2025学年浙教版(2020)信息科技八年级上册
5
第三单元算法与程序设计第12课函数 课件  2024—2025学年浙教版(2020)信息科技八年级上册
6
所属专辑
相关资源
示范课
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。