最近更新:Python零基础教程第十课 认识新朋友 模块和包
2025-12-26
最近更新:Python零基础教程第九课:犯错了怎么办?——错误处理
2025-12-26
2025-12-26
2025-12-26
最近更新:Python零基础教程第七课:我的第一个工具箱——函数
2025-12-26
浏览量:19 次 发布时间:2025-12-26 19:54 作者:明扬工控商城 下载docx
最近更新:Python零基础教程第十课 认识新朋友 模块和包
2025-12-26
最近更新:Python零基础教程第九课:犯错了怎么办?——错误处理
2025-12-26
2025-12-26
2025-12-26
最近更新:Python零基础教程第七课:我的第一个工具箱——函数
2025-12-26
欢迎来到第七课。前面我们学会了处理数据和让程序做选择、重复执行,但有时候我们会发现有些代码需要反复使用。今天我们要学习一个非常重要的概念,函数。函数就像工具箱里的工具,把常用的功能打包起来,需要的时候随时拿出来用。
想象一下,你每天都要做同样的事情:
1. 早上:起床、刷牙、洗脸、吃早餐
2. 晚上:写作业、刷牙、洗脸、睡觉
你会发现"刷牙、洗脸"这个动作每天都要做两次。与其每次都详细描述,不如把它打包成一个叫做"洗漱"的动作,然后说"早上要洗漱"、"晚上要洗漱"。
在编程中也是如此。函数就是把常用的代码打包成一个工具。
没有函数的痛苦
代码部分:
假设我们要多次计算圆的面积
第一次计算
半径1 = 5
面积1 = 3.14 * 半径1 * 半径1
print("第一个圆的面积:", 面积1)
第二次计算
半径2 = 10
面积2 = 3.14 * 半径2 * 半径2
print("第二个圆的面积:", 面积2)
第三次计算
半径3 = 7
面积3 = 3.14 * 半径3 * 半径3
print("第三个圆的面积:", 面积3)
每次都要写相同的公式,很麻烦对吧?
定义一个简单的函数
打开IDLE,新建一个文件:
代码部分:
第一个函数:打招呼
def 打招呼():
print("你好!")
print("欢迎来到Python世界!")
print("很高兴认识你!")
这个函数定义好了,但还没有使用。要使用函数,需要"调用"它。
调用函数
代码部分:
定义函数
def 打招呼():
print("你好!")
print("欢迎来到Python世界!")
print("很高兴认识你!")
调用函数
print("第一次调用:")
打招呼()
print("\n第二次调用:")
打招呼()
print("\n第三次调用:")
打招呼()
运行结果:
第一次调用:
你好!
欢迎来到Python世界!
很高兴认识你!
第二次调用:
你好!
欢迎来到Python世界!
很高兴认识你!
第三次调用:
你好!
欢迎来到Python世界!
很高兴认识你!
看到了吗?同样的代码,我们只写了一次,却可以多次使用!
参数就是函数需要的信息,就像榨汁机需要水果才能工作一样。
单个参数的函数
代码部分:
带参数的函数:个性化打招呼
def 个性化打招呼(名字):
print("你好,", 名字, "!")
print("欢迎来到Python世界!")
print("很高兴认识你!")
使用不同的参数调用函数
个性化打招呼("小明")
print()
个性化打招呼("小红")
print()
个性化打招呼("小刚")
多个参数的函数
代码部分:
多个参数的函数
def 介绍自己(姓名, 年龄, 城市):
print("大家好!")
print("我叫", 姓名)
print("我今年", 年龄, "岁")
print("我来自", 城市)
print("请多多关照!")
调用函数
介绍自己("小明", 18, "北京")
print()
介绍自己("小红", 20, "上海")
计算圆面积的函数
回到我们开头的问题,现在用函数来解决:
代码部分:
计算圆面积的函数
def 计算圆面积(半径):
面积 = 3.14 * 半径 * 半径
return 面积
使用函数
面积1 = 计算圆面积(5)
面积2 = 计算圆面积(10)
面积3 = 计算圆面积(7)
print("第一个圆的面积:", 面积1)
print("第二个圆的面积:", 面积2)
print("第三个圆的面积:", 面积3)
函数可以通过return语句返回一个值,就像自动售货机给你饮料一样。
有返回值的函数
代码部分:
有返回值的函数
def 加法计算器(数字1, 数字2):
和 = 数字1 + 数字2
return 和
def 乘法计算器(数字1, 数字2):
积 = 数字1 * 数字2
return 积
使用函数
结果1 = 加法计算器(10, 20)
结果2 = 乘法计算器(5, 6)
print("10 + 20 =", 结果1)
print("5 × 6 =", 结果2)
函数结果可以继续使用
最终结果 = 加法计算器(结果1, 结果2)
print("(10+20) + (5×6) =", 最终结果)
返回多个值
代码部分:
返回多个值
def 计算成绩(平时分, 考试分):
总评 = 平时分 * 0.3 + 考试分 * 0.7
等级 = ""
text
等级 = "优秀"
elif 总评 >= 80:
等级 = "良好"
elif 总评 >= 60:
等级 = "及格"
else:
等级 = "不及格"
return 总评, 等级
使用函数
分数, 评级 = 计算成绩(85, 90)
print("总评分数:", 分数)
print("成绩等级:", 评级)
有时候我们希望参数有默认值,这样调用函数时可以少传一些参数。
代码部分:
带默认参数的函数
def 个人信息(姓名, 年龄=18, 城市="未知"):
print("姓名:", 姓名)
print("年龄:", 年龄)
print("城市:", 城市)
print()
可以只传必要参数
个人信息("小明")
可以覆盖默认值
个人信息("小红", 20, "上海")
可以只覆盖部分默认值
个人信息("小刚", 城市="广州")
变量的作用域指的是变量在哪些地方可以被访问。
局部变量和全局变量
代码部分:
变量作用域示例
全局变量 = "我是全局的"
def 测试函数():
局部变量 = "我是函数内部的"
print("函数内部:")
print(" 可以看到全局变量:", 全局变量)
print(" 可以看到局部变量:", 局部变量)
print()
调用函数
测试函数()
print("函数外部:")
print(" 可以看到全局变量:", 全局变量)
print(" 不能看到局部变量:", 局部变量) 错误!局部变量在外面看不到
在函数内部修改全局变量
代码部分:
在函数内部修改全局变量
计数器 = 0
def 增加计数器():
global 计数器
计数器 = 计数器 + 1
print("当前计数器:", 计数器)
调用函数
增加计数器() 1
增加计数器() 2
增加计数器() 3
让我们用函数做一个有趣的心情问候生成器。
第一步:创建新文件
新建文件,保存为"心情问候.py"
第二步:基础版心情问候
代码部分:
心情问候生成器1.0
def 问候语(姓名, 心情):
根据心情生成问候语
text
if 心情 == "开心":
问候 = "今天天气真好,愿你开心一整天!"
elif 心情 == "难过":
问候 = "虽然今天有点阴霾,但明天会更好!"
elif 心情 == "兴奋":
问候 = "哇!有什么好消息要分享吗?"
elif 心情 == "平静":
问候 = "平和的一天也是美好的。"
elif 心情 == "疲惫":
问候 = "辛苦了,好好休息一下。"
else:
问候 = "愿你今天一切顺利!"
return f"亲爱的{姓名},{问候}"
def 显示分隔线(长度=30):
显示分隔线
print("=" * 长度)
主程序
显示分隔线()
print("心情问候生成器")
显示分隔线()
获取用户输入
名字 = input("请输入你的名字:")
心情 = input("请输入你的心情(开心/难过/兴奋/平静/疲惫):")
生成问候
消息 = 问候语(名字, 心情)
显示分隔线()
print(消息)
显示分隔线()
第三步:增强版心情问候
代码部分:
心情问候生成器2.0
定义各种功能函数
def 显示标题():
显示程序标题
print("=" * 40)
print(" 心情问候生成器 2.0")
print("=" * 40)
def 获取用户信息():
获取用户的姓名和心情
姓名 = input("请输入你的名字:")
text
print("1. 开心")
print("2. 难过")
print("3. 兴奋")
print("4. 平静")
print("5. 疲惫")
print("6. 自定义")
选择 = input("\n请选择(1-6):")
根据选择获取心情
心情选项 = {
"1": "开心",
"2": "难过",
"3": "兴奋",
"4": "平静",
"5": "疲惫"
}
if 选择 in 心情选项:
心情 = 心情选项[选择]
elif 选择 == "6":
心情 = input("请输入你的心情:")
else:
心情 = "未知"
print("无效选择,使用默认心情")
return 姓名, 心情
def 生成问候语(姓名, 心情):
根据心情生成问候语
text
问候库 = {
"开心": [
"今天天气真好,愿你开心一整天!",
"笑容是最好的化妆品,继续保持!",
"快乐会传染,把好心情带给身边的人吧!"
],
"难过": [
"虽然今天有点阴霾,但明天会更好!",
"难过的时候,记得有人关心你。",
"所有的坏心情都会过去,彩虹总在风雨后。"
],
"兴奋": [
"哇!有什么好消息要分享吗?",
"兴奋的感觉真好,享受这一刻吧!",
"带着这份兴奋,去征服世界吧!"
],
"平静": [
"平和的一天也是美好的。",
"内心平静是最难得的财富。",
"享受这份宁静的时光。"
],
"疲惫": [
"辛苦了,好好休息一下。",
"累了就休息,明天又是新的一天。",
"适当放慢脚步,是为了走得更远。"
]
}
import random
if 心情 in 问候库:
问候列表 = 问候库[心情]
问候 = random.choice(问候列表)
else:
问候 = f"无论你现在心情如何,都愿你今天一切顺利!"
return f"亲爱的{姓名},{问候}"
def 生成建议(心情):
根据心情给出建议
建议 = ""
text
建议 = "建议:把你的快乐分享给朋友吧!"
elif 心情 == "难过":
建议 = "建议:听听音乐或者出去走走。"
elif 心情 == "兴奋":
建议 = "建议:把能量用在有意义的事情上!"
elif 心情 == "平静":
建议 = "建议:保持这种状态,读一本好书。"
elif 心情 == "疲惫":
建议 = "建议:好好休息,泡个热水澡。"
else:
建议 = "建议:做点自己喜欢的事情。"
return 建议
def 显示结果(问候语, 建议):
显示最终结果
print("\n" + "=" * 40)
print("你的专属问候")
print("-" * 40)
print(问候语)
print()
print(建议)
print("=" * 40)
主程序
def 主函数():
程序的主函数
显示标题()
text
姓名, 心情 = 获取用户信息()
生成问候语和建议
问候 = 生成问候语(姓名, 心情)
建议 = 生成建议(心情)
显示结果
显示结果(问候, 建议)
询问是否继续
继续 = input("\n是否继续生成问候语?(y/n): ")
if 继续.lower() == "y":
主函数()
else:
print("\n谢谢使用,再见!")
启动程序
if name == "main":
主函数()
错误1:函数定义在调用之后
代码部分:
错误示例
打招呼() 错误!函数还没有定义
def 打招呼():
print("你好")
正确示例:先定义,后调用
def 打招呼():
print("你好")
打招呼() 正确!
错误2:忘记return语句
代码部分:
错误示例
def 加法(a, b):
结果 = a + b
忘记写 return 结果
x = 加法(1, 2)
print(x) 输出:None
错误3:参数数量不匹配
代码部分:
错误示例
def 介绍(姓名, 年龄):
print("姓名:", 姓名)
print("年龄:", 年龄)
介绍("小明") 错误!缺少一个参数
介绍("小明", 18, "北京") 错误!多了一个参数
正确调用
介绍("小明", 18) 正确!
递归函数
函数可以调用自己,这叫做递归。
代码部分:
递归函数:计算阶乘
def 阶乘(n):
if n == 1:
return 1
else:
return n * 阶乘(n - 1)
print("5的阶乘:", 阶乘(5))
print("3的阶乘:", 阶乘(3))
lambda匿名函数
有时候我们需要简短的函数,可以用lambda。
代码部分:
lambda匿名函数
加法 = lambda x, y: x + y
print(加法(5, 3))
通常用于简单操作
数字列表 = [1, 2, 3, 4, 5]
平方列表 = list(map(lambda x: x**2, 数字列表))
print("平方列表:", 平方列表)
今天的内容非常强大,我们学会了:
1. 创建函数:用def定义函数
2. 函数参数:传递信息给函数
3. 返回值:函数返回结果
4. 作用域:局部变量和全局变量
5. 默认参数:给参数默认值
6. 实际应用:制作心情问候生成器
任务1:计算器程序
编写一个计算器程序,包含以下函数:
· 加法
· 减法
· 乘法
· 除法
· 幂运算
让用户选择运算类型,然后计算。
任务2:温度转换工具
编写温度转换工具,包含以下函数:
· 摄氏度转华氏度
· 华氏度转摄氏度
· 摄氏度转开尔文
· 开尔文转摄氏度
让用户可以反复转换不同单位。
任务3:学生成绩统计器
编写函数统计学生成绩:
· 计算平均分
· 找出最高分
· 找出最低分
· 统计及格人数
· 按分数排序
任务4:密码强度检测器
编写密码强度检测函数:
· 检查密码长度(至少8位)
· 检查是否包含数字
· 检查是否包含字母
· 检查是否包含特殊字符
· 根据规则给出密码强度评分
下节课我们要学习如何处理文件。学了文件操作后,我们可以:
· 读取和写入文本文件
· 保存程序数据
· 读取配置文件
· 制作日记本程序
· 处理CSV或Excel数据
函数是编程中的核心概念,建议你:
1. 多练习函数的定义和调用
2. 尝试把重复的代码封装成函数
3. 给函数起有意义的名称
4. 每个函数只做一个明确的任务
5. 多写注释,说明函数的功能
记住,函数是构建大型程序的基石。掌握了函数,你就掌握了模块化编程的关键。
你已经学会了如何创建和使用函数,这是编程中非常重要的一步。继续加油,我们下节课再见!
将本文的Word文档下载到电脑
推荐度: