上节课我们吃透了数学算法里的整除、质数、最大公约数这些硬核知识,今天咱们解锁编程里的“效率神器”——函数!函数就像提前打包好的“工具包”:内置函数是现成的实用工具,拿过来就能用;自定义函数能按自己的需求“量身定制”工具,学会了能少写超多重复代码,编程效率直接翻倍~,从概念到实操,一步步把函数玩转!📌 温故知新:上节课重点回顾
先快速复习下之前的核心内容,帮大家无缝衔接新知识点:常用内置数学函数:pow(求幂)、abs(绝对值)、sum(求和)、round(四舍五入),不用自己写逻辑,直接调用就行;辗转相除法:求两个数的最大公约数时,用大数除以小数取余数,再用除数除以余数,直到余数为0,最后那个除数就是结果。比如求12和8的最大公约数,12%8=4,再用8%4=0,所以4就是它们的最大公约数~🔍 一、函数的概念、作用和分类
1. 什么是函数?
函数就是一段封装好的代码块,专门用来实现某个特定功能,就像手机能打电话、计算器能算账一样,每个函数都有自己的“专属技能”,调用起来特别方便。2. 函数的两大分类
Python里的函数主要分两类,用表格一看就清晰:类型 | 特点 | 例子 |
|---|
系统内置函数 | Python自带,无需自己编写,直接调用 | max()、min()、abs()、len() |
用户自定义函数 | 按自己的需求编写,满足特定场景 | 比如自己写一个“自我介绍”“计算长方形面积”的函数 |
3. 函数的核心作用——代码重用
这是函数最厉害的地方!一旦写好一个函数,想用时直接调用就行,不用重复写相同代码。比如abs函数,不管是求-5、7、-10的绝对值,只要调用abs(),就能快速得到结果,不用每次都写判断正负的代码:多次调用abs函数,实现代码重用
# 多次调用abs函数,实现代码重用print(abs(-5)) # 输出:5print(abs(7)) # 输出:7print(abs(-10)) # 输出:10print(abs(12)) # 输出:12
🔍 二、常用内置函数实操
之前学过一些数学函数,今天重点讲几个日常编程超实用的内置函数,每个都带具体用法和例子,照着敲就能会!1. bool函数——判断“真”与“假”的小能手
这个函数的结果只有两种:True(真,成立)和False(假,不成立),用法特别灵活,不同类型数据有不同规则,记好这3条就行:规则1:数字类型——只有0返回False,其他数字(正数、负数、小数)都返回True;规则2:字符串类型——空字符串("")或None返回False,有内容(包括空格)返回True;规则3:列表/元组/字典——空容器返回False,非空返回True。# 数字类型测试print(bool(0)) # 输出:Falseprint(bool(30)) # 输出:Trueprint(bool(-2)) # 输出:Trueprint(bool(12.56)) # 输出:True# 字符串类型测试print(bool("")) # 输出:Falseprint(bool("hello"))# 输出:Trueprint(bool(" ")) # 输出:True(包含空格,非空)# 列表类型测试print(bool([])) # 输出:False(空列表)print(bool([1,3,5]))# 输出:True(非空列表)
应用场景:判断用户是否输入信息。比如让用户输入年龄,没输入就温馨提示:age = input("请输入你的年龄:")if bool(age): print(f"你的年龄是{age}岁~")else: print("你还没输入年龄哦,记得补充呀!")
2. float函数——类型转换小工具
作用是把字符串或整数转换成浮点数(带小数点的数),和之前学的int()函数是“好搭档”。注意:只有能转成数字的内容才能转换,不然会报错!# 字符串转浮点数num_str = "3.14"num_float = float(num_str)print(num_float) # 输出:3.14print(type(num_float)) # 输出:<class 'float'># 整数转浮点数num_int = 5num_float2 = float(num_int)print(num_float2) # 输出:5.0# 错误示例:不能转换非数字字符串# print(float("hello")) # 报错:ValueError,无法转换
应用场景:计算圆的面积。用户输入的半径是字符串,转成浮点数才能运算:r1 = input("请输入圆的半径:")r2 = float(r1)area = 3.14 * r2 * r2print(f"圆的面积为{area:.2f}平方厘米") # 保留2位小数,结果更整洁
3. len函数——统计长度/个数的神器
能快速统计字符串的长度、列表/元组/字典的元素个数,格式超简单:len(要统计的对象)。# 统计字符串长度s = "hello"print(len(s)) # 输出:5(h、e、l、l、o共5个字符)# 统计列表元素个数lista = [1, 3, 5]print(len(lista)) # 输出:3# 统计元组元素个数tuplea = (1, 2, 3, 4)print(len(tuplea)) # 输出:4
4. del关键字——删除字典键值对
专门用来删除字典里不需要的键值对,格式:del 字典名[键名],删完之后字典里就没有这个键值对啦~# 定义字典dicta = {'name': '张三', 'age': 25}print("删除前:", dicta) # 输出:{'name': '张三', 'age': 25}# 删除name键值对del dicta['name']print("删除后:", dicta) # 输出:{'age': 25}
5. sorted函数——排序小能手
默认按升序排序,返回新列表,不会改变原列表;加个reverse=True就能按降序排,特别实用!# 升序排序lista = [3, 5, 2, 4]listb = sorted(lista)print("原列表:", lista) # 输出:[3, 5, 2, 4](原列表不变)print("升序后:", listb) # 输出:[2, 3, 4, 5]# 降序排序listc = sorted(lista, reverse=True)print("降序后:", listc) # 输出:[5, 4, 3, 2]
🔍 三、自定义函数的初步认识(核心重点)
内置函数虽然好用,但不能满足所有需求,比如想写一个“自我介绍”“计算长方形面积”的功能,内置函数里没有,这时候就可以自己造函数——自定义函数!1. 自定义函数的基本结构
一个完整的自定义函数有三部分:函数名、参数、函数体(可以没有参数和函数体,但必须有函数名),用def关键字定义,格式如下:def 函数名(参数1, 参数2, ...): 函数体(要实现的功能) # 注意:函数体要缩进(4个空格或1个Tab),不然会报错
2. 无参数自定义函数
没有参数的函数,调用时直接写函数名()就行,适合实现固定功能。# 定义无参数函数def my_intro(): print("我来自中国,我是小兔子~") print("我今年3岁了") print("很高兴认识你呀!")# 调用函数(调用几次就执行几次)my_intro()my_intro()
运行结果:
我来自中国,我是小兔子~我今年3岁了很高兴认识你呀!我来自中国,我是小兔子~我今年3岁了很高兴认识你呀!
3. 带参数自定义函数(更灵活)
想让函数适应不同场景,就给它加参数!参数分两种:定义时写的是“形式参数”,调用时传的是“实际参数”,比如让自我介绍能换名字和年龄:# 定义带参数的函数(name和age是形式参数)def my_intro(name, age): print(f"我来自中国,我是{name}!") print(f"我今年{age}岁了") print("很高兴认识你呀!")# 调用函数(传入实际参数)my_intro('猫头鹰', 5)my_intro('小乌龟', 4)
我来自中国,我是猫头鹰!我今年5岁了很高兴认识你呀!我来自奇码星球,我是小乌龟!我今年4岁了很高兴认识你呀!
4. 实战练习:自我介绍函数
新学期到了,用自定义函数实现自我介绍,输入名字和身高就能快速输出:def self_intro(name, height): print(f"大家好,我是{name}~") print(f"我的身高是{height}米")# 调用函数self_intro('小兔子', '1.35')self_intro('小乌龟', '1.15')self_intro('长颈鹿', '1.65')
大家好,我是小兔子~我的身高是1.35米大家好,我是小乌龟~我的身高是1.15米大家好,我是长颈鹿~我的身高是1.65米
📝 课堂练习题(巩固知识点)
选择题1
答案:C(input函数接收的输入,不管看起来是不是数字,本质都是字符串)选择题2
A:[3,1,2,5] B:字符串 C:[5,3,2,1] D:[1,2,3,5]答案:D(sort()函数默认升序排序,会直接修改原列表)选择题3
B:函数能完成特定的功能,调用时不用了解内部实现原理D:Python 使用“del”保留字定义一个函数答案:D(定义函数用def关键字,del是用来删除的)选择题4
A:Int B:_int2 C:str2int D:2_int答案:D(函数名命名规则和变量一致,不能以数字开头)📌 课堂核心总结
函数分类:系统内置函数(直接用)和用户自定义函数(自己写);核心作用:实现代码重用,减少重复编写,提高编程效率;内置函数重点:bool(判断真假)、float(类型转换)、len(统计个数)、del(删除字典键值对)、sorted(排序);自定义函数:用def关键字定义,分无参数和带参数两种,函数体要缩进,调用时传对应参数即可。💬 互动留言
今天的函数基础知识点你学会了吗?有没有成功写出自己的第一个自定义函数?试着用自定义函数实现“计算长方形面积”的功能,在评论区分享你的代码呀~关注我,下节课解锁自定义函数的进阶用法,一起玩转更复杂的编程功能