第三讲 自定义函数 教学课件《Python 结构化程序设计调试》

2025-03-11
| 29页
| 283人阅读
| 4人下载
精品

内容正文:

目录/CONTENTS 1. 函数的概念及作用 2. 函数的定义方法 4. 变量作用域 3. 函数的调用及参数的传递 1 函数的概念及作用 安徽省计算机类高考技能教学 2 n=16 if n%3==0: print(f"{n}可以被3整除") else: print(f"{n}不可以被3整除") 问题1:如何实现判断16能否被3整除? 这里只是判断一个数字,显然是可以的。但是接下来判断更多的数字那么还能使用这样的方法吗? n=16 if n%3==0: print(f"{n}可以被3整除") else: print(f"{n}不可以被3整除") n=27 if n%3==0: print(f"{n}可以被3整除") else: print(f"{n}不可以被3整除") 问题2:如何实现判断16,27,53,78能否被3整除 n=53 if n%3==0: print(f"{n}可以被3整除") else: print(f"{n}不可以被3整除") n=78 if n%3==0: print(f"{n}可以被3整除") else: print(f"{n}不可以被3整除") list=[16,27,53,78] for i in list: if i%3==0: print(f"{i}可以被3整除") else: print(f"{i}不可以被3整除") 问题2优化:如何实现判断16,27,53,78能否被3整除 def zc(n,m): if n%m==0: print(f"{n}可以被{m}整除") else: print(f"{n}不可以被{m}整除") 问题3:如何实现判断16,27,53,78能否被4,6整除 list=[16,27,53,78] for i in list: zc(i,4) # 调用函数zc zc(i,6) # 调用函数zc 函数,是指通过专门的代码组织,用来实现特定功能的代码段,它具有相对独立性,可供其他代码重复调用。 函数的概念 打印输出的print函数 获取列表长度的len函数 用于删除对象的del函数 用于求序列中的最大值max 函数举例 函数的概念 函数的作用 A 借助函数,代码逻辑可以得到优化,便于阅读。 代码角度 B 借助函数,可以提高代码编写效率和质量,便于测试和更新 程序员角度 C 合理共享函数,可以提升团队效率 团队协作 注意:函数不能提高代码的执行效率 函数的定义方法 安徽省计算机类高考技能教学 9 def 函数名([参数,参数]): 函数体 [return 返回值] 自定义函数的语法格式 def是关键字,自定义函数必须以关键字def开始,空一格紧跟函数名称。函数名遵循变量的命名规则,其中的参数和返回值是可选项。 函数体是实现函数功能的代码段 def 函数名([参数,参数]): 函数体 [return 返回值] 自定义函数的语法格式 函数名称不能与内置函数名相同,输入“dir(__builtins__)”可以查看当前内置函数名 'abs', 'all', 'any', 'ascii', 'bin', 'bool', 'breakpoint', 'bytearray', 'bytes', 'callable', 'chr', 'classmethod', 'compile', 'complex', 'copyright', 'credits', 'delattr', 'dict', 'dir', 'divmod', 'enumerate', 'eval', 'exec', 'exit', 'filter', 'float', 'format', 'frozenset', 'getattr', 'globals', 'hasattr', 'hash', 'help', 'hex', 'id', ..... # 定义hello函数,该函数无参数,无返回值def hello(): print("hello boy") # 调用hello函数 hello() # 输出 hello boy 举例1: # 定义hello1函数,该函数有参数,无返回值def hello1(name): print("hello",name) # 调用hello1函数 hello1('xiaoming') # 输出 hello xiaoming 举例2: # 定义hello2函数,该函数无参数,有返回值 def hello2(): str="hello boy" return str # 返回值 # 调用hello2函数 print(hello2() ) # 输出 hello boy 举例3: # 定义hello3函数,该函数有参数,有返回值 def hello3(name): str="hello"+name return str # 调用hello3函数 x=hello3("小明") print(x) # 输出 hello 小明 举例4: 【例题】定义一个函数cfb,功能为输出n以内的乘法口诀表,无返回值 【例题】定义一个函数cfb,功能为输出n以内的乘法口诀表,无返回值 def cfb(n): for i in range(1, n+1): for j in range(1, i + 1): print("%d*%d=%d" % (i, j, i * j),end='\t') print() n=int(input("请输入n值:")) cfb(n) # 函数调用 函数的调用及参数传递 安徽省计算机类高考技能教学 18 参数类型 分类 描述 位置参数 在进行调用函数时,传递的参数必须与函数定义的参数一一对应 默认参数 在函数定义的时候,为参数设置默认值,当在调用函数的时候,没有给该参数传值时,该参数自动选择默认值 关键字参数 在进行调用的时候,采用“参数名=值”的方式,可以无需考虑函数定义中参数的位置顺序 不定长参数 在调用函数的时候,有的参数个数是不固定的,因此我们在定义函数的时候,可引入不定长参数 传递任意数量参数值的参数格式为:函数名([参数,]*参数)元组不定长参数 传递任意数量键值对的参数格式为:函数名([参数,] **参数)字典不定长参数 位置参数 在进行调用函数时,传递的参数必须与函数定义的参数一一对应,(也是默认的参数调用方式) def hello(name,age): print(f‘大家好,我的名字叫{name},我的年龄{age}岁’) hello(“张三”,18) # 由于有两个参数,所以调用函数时必须传入两个参数 def gethobby(name="小明",hobby="编程"): print(name + "喜欢:" + hobby) gethobby() # 小明喜欢:编程 gethobby("小王") # 小王喜欢:编程 gethobby("小王","数学") # 小王喜欢:数学 注意:默认参数必须放在位置参数的右端 默认参数 在函数定义的时候,为参数设置默认值,当在调用函数的时候,没有给该参数传值时,该参数自动选择默认值 def gethobby(name="小明",hobby="编程"): print(name + "喜欢:" + hobby) gethobby(hobby="看书",name="张三") # 关键字参数可以不按照参数的位置来传递 关键字参数 在进行调用的时候,采用“参数名=值”的方式,可以无需考虑函数定义中参数的位置顺序 def gethobby(name=“小明”,hobby=“编程”,*hobbys): print(name + “喜欢:” + hobby) print(hobbys) # 将多出的参数封装成了元组 if hobbys: print("除此之外,还喜欢:",end='') for i in hobbys: print(i,end=',’) gethobby("张三","唱歌","看书","篮球") 运行结果: 张三喜欢:唱歌 ('看书', '篮球') 除此之外,还喜欢:看书,篮球, 不定长参数 *args 在调用函数的时候,有的参数个数是不固定的,因此我们在定义函数的时候,可引入不定长参数 传递任意数量参数值的参数格式为:函数名([参数,]*参数)又称元组不定长参数 def gethobby(name="小明",hobby="编程",*hobbys,**other): print(name + "喜欢:" + hobby) print(hobbys) # 将多出的参数封装成了元组 if hobbys: print("除此之外,还喜欢:",end='') for i in hobbys: print(i,end=',') if other: print(" 其他个人信息:") print(other) # 将'键=值'形式的参数封装成字典 gethobby("张三","唱歌","看书","篮球",height=180,weight=90) """ 运行结果: 张三喜欢:唱歌 ('看书', '篮球') 除此之外,还喜欢:看书,篮球, 其他个人信息: {'height': 180, 'weight': 90} """ 不定长参数 **kwargs 在调用函数的时候,有的参数个数是不固定的,因此我们在定义函数的时候,可引入不定长参数 传递任意数量键值对的参数格式为:函数名([参数,] **参数)字典不定长参数 变量作用域 安徽省计算机类高考技能教学 25 全局作用域和局部作用域 变量 作用域 访问情况 局部变量 局部作用域 局部变量只能在被定义的函数内访问 离开函数局部变量会被回收 全局变量 全局作用域 (整个模块) 自定义赋值之后,可供后续的代码进行访问 示例1 a=1 # 全局变量 定义在函数之外的 def test(): global a # 这里声明全局变量,则下面使用的变量a就是全局变量 a=2 # 局部变量定义在函数内的,虽然命名一样但是互不干扰。 test() print(a) # a:2 # 由于在函数内部被修改,因此值变为2 a=1 # 全局变量 定义在函数之外的 def test(): a=2 # 局部变量定义在函数内的,虽然命名一样但是互不干扰。 test() print(a) # a:1 这里打印出来的是全局变量 如果不加global,则无法修改,同学们不妨一试 示例2 def changename(): global name name="李四" name="张三" print(name) changename() print(name) 张三 李四 如果不加global则无法修改name 谢 谢 观 看 29 $$

资源预览图

第三讲 自定义函数 教学课件《Python 结构化程序设计调试》
1
第三讲 自定义函数 教学课件《Python 结构化程序设计调试》
2
第三讲 自定义函数 教学课件《Python 结构化程序设计调试》
3
第三讲 自定义函数 教学课件《Python 结构化程序设计调试》
4
第三讲 自定义函数 教学课件《Python 结构化程序设计调试》
5
第三讲 自定义函数 教学课件《Python 结构化程序设计调试》
6
所属专辑
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。