当前位置:首页>python>Python 第 20 课 函数基础:内置与自定义函数

Python 第 20 课 函数基础:内置与自定义函数

  • 2026-09-02 20:07:28
Python 第 20 课 函数基础:内置与自定义函数
上节课我们吃透了数学算法里的整除、质数、最大公约数这些硬核知识,今天咱们解锁编程里的“效率神器”——函数!
函数就像提前打包好的“工具包”:内置函数是现成的实用工具,拿过来就能用;自定义函数能按自己的需求“量身定制”工具,学会了能少写超多重复代码,编程效率直接翻倍~,从概念到实操,一步步把函数玩转!

📌 温故知新:上节课重点回顾

先快速复习下之前的核心内容,帮大家无缝衔接新知识点:
常用内置数学函数: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

input函数的返回值是什么类型的?(  )
A:整型  B:浮点型  C:字符串  D:列表
答案:C(input函数接收的输入,不管看起来是不是数字,本质都是字符串)

选择题2

有如下代码,输出的结果是(  )
lista = [3,1,2,5]
lista.sort()
print(lista)
A:[3,1,2,5]  B:字符串  C:[5,3,2,1]  D:[1,2,3,5]
答案:D(sort()函数默认升序排序,会直接修改原列表)

选择题3

关于函数,以下选项中描述错误的是?(  )
A:函数是一段具有特定功能的、可重用的语句组
B:函数能完成特定的功能,调用时不用了解内部实现原理
C:使用函数的主要目的是降低编程难度和代码重用
D:Python 使用“del”保留字定义一个函数
答案:D(定义函数用def关键字,del是用来删除的)

选择题4

下列选项中不能作为自定义函数名的是?(  )
A:Int  B:_int2  C:str2int  D:2_int
答案:D(函数名命名规则和变量一致,不能以数字开头)

📌 课堂核心总结

函数分类:系统内置函数(直接用)和用户自定义函数(自己写);
核心作用:实现代码重用,减少重复编写,提高编程效率;
内置函数重点:bool(判断真假)、float(类型转换)、len(统计个数)、del(删除字典键值对)、sorted(排序);
自定义函数:用def关键字定义,分无参数和带参数两种,函数体要缩进,调用时传对应参数即可。

💬 互动留言

今天的函数基础知识点你学会了吗?有没有成功写出自己的第一个自定义函数?试着用自定义函数实现“计算长方形面积”的功能,在评论区分享你的代码呀~
关注我,下节课解锁自定义函数的进阶用法,一起玩转更复杂的编程功能

最新文章

随机文章