第7篇功能——打造你的工具箱 python中文编程

作者: 中文编程倡导者------ 李金雨
联系方式: wbtm2718@qq.com
系列: python中文编程入门教程

** 核心理念: AI时代必须使用中文编程,母语编程阅读效率极高"

第7篇:功能------打造你的工具箱

开篇引入

本课目标

  • 理解什么是功能(函数)
  • 掌握如何定义功能
  • 掌握如何使用输入项(参数)
  • 掌握如何使用输出结果(返回值)
  • 理解默认参数值的使用
  • 理解多个输入项的处理
  • 理解功能调用功能
  • 了解常用的内置功能

生活场景引入

同学们,在日常生活中,我们经常使用各种工具来完成特定的任务:

  • 使用锤子来钉钉子
  • 使用螺丝刀来拧螺丝
  • 使用计算器来进行计算
  • 使用洗衣机来洗衣服

在Python中,函数就像这些工具一样,是用来完成特定任务的代码块。通过函数,我们可以将代码组织成可重用的模块,提高代码的可读性和复用性。

预期成果展示

在本课结束时,你将能够:

  • 定义自己的函数
  • 给函数传递参数
  • 从函数获取返回值
  • 使用默认参数
  • 编写接受多个参数的函数
  • 让函数调用其他函数
  • 使用内置函数
  • 编写一个数学工具箱程序

概念讲解

1. 什么是功能(函数)

函数是一段完成特定任务的代码块,它可以接受输入参数,执行特定的操作,然后返回结果。

生活例子

  • 函数就像工具:锤子、螺丝刀、计算器
  • 输入项:给工具的原材料
  • 输出结果:工具加工后的成品
  • 内置功能:工具箱里自带的常用工具

代码示例

python 复制代码
# 定义一个简单的函数
def 打招呼():
    """打招呼功能"""
    print("你好,欢迎学习Python!")

# 调用函数
打招呼()

2. 定义功能(def)

在Python中,我们使用def关键字来定义函数。

基本结构

python 复制代码
def 函数名(参数1, 参数2, ...):
    """函数的说明文档"""
    # 函数体
    # 执行的代码
    return 返回值

生活例子

  • 定义一个计算面积的函数
  • 定义一个打印问候语的函数
  • 定义一个判断是否为质数的函数

代码示例

python 复制代码
# 定义一个计算面积的函数
def 计算面积(长, 宽):
    """计算长方形的面积"""
    面积 = 长 * 宽
    return 面积

# 定义一个打印问候语的函数
def 问候(姓名):
    """向指定的人打招呼"""
    print(f"你好,{姓名}!")

# 调用函数
面积 = 计算面积(5, 3)
print("长方形的面积是:", 面积)

问候("小明")

3. 输入项(参数)

参数是函数接收的输入值,它们在函数定义时被指定,在函数调用时被传递。

生活例子

  • 计算面积时需要长和宽
  • 打印问候语时需要姓名
  • 计算BMI时需要身高和体重

代码示例

python 复制代码
# 带参数的函数
def 计算BMI(身高, 体重):
    """计算BMI指数"""
    bmi = 体重 / (身高 ** 2)
    return bmi

# 调用函数
身高 = 1.65
体重 = 55
bmi值 = 计算BMI(身高, 体重)
print(f"你的BMI指数是:{bmi值:.2f}")

4. 输出结果(return)

return语句用于从函数中返回值,结束函数的执行。

生活例子

  • 计算面积后返回面积值
  • 计算BMI后返回BMI值
  • 判断是否为质数后返回布尔值

代码示例

python 复制代码
# 带返回值的函数
def 判断质数(数字):
    """判断一个数是否是质数"""
    if 数字 <= 1:
        return False
    for i in range(2, int(数字 ** 0.5) + 1):
        if 数字 % i == 0:
            return False
    return True

# 调用函数
数字 = 17
结果 = 判断质数(数字)
if 结果:
    print(f"{数字}是质数")
else:
    print(f"{数字}不是质数")

5. 默认参数值

默认参数值允许我们在函数调用时不提供某些参数,使用预定义的默认值。

生活例子

  • 计算折扣时,默认折扣率为0.9
  • 打印问候语时,默认称呼为"先生"
  • 计算面积时,默认宽为1

代码示例

python 复制代码
# 带默认参数的函数
def 计算折扣价(原价, 折扣率=0.9):
    """计算折扣后的价格"""
    折扣价 = 原价 * 折扣率
    return 折扣价

# 调用函数(使用默认折扣率)
价格1 = 计算折扣价(100)
print("使用默认折扣率:", 价格1)

# 调用函数(指定折扣率)
价格2 = 计算折扣价(100, 0.8)
print("使用指定折扣率:", 价格2)

6. 多个输入项

函数可以接受多个参数,参数之间用逗号分隔。

生活例子

  • 计算长方形面积需要长和宽
  • 计算三角形面积需要底和高
  • 计算加权平均分需要多个分数和对应的权重

代码示例

python 复制代码
# 多个参数的函数
def 计算三角形面积(底, 高):
    """计算三角形的面积"""
    面积 = 底 * 高 / 2
    return 面积

def 计算加权平均分(语文, 数学, 英语, 语文权重=0.3, 数学权重=0.4, 英语权重=0.3):
    """计算加权平均分"""
    平均分 = 语文 * 语文权重 + 数学 * 数学权重 + 英语 * 英语权重
    return 平均分

# 调用函数
面积 = 计算三角形面积(10, 5)
print("三角形的面积是:", 面积)

平均分 = 计算加权平均分(85, 92, 88)
print("加权平均分是:", 平均分)

7. 功能调用功能

函数可以调用其他函数,这样可以将复杂的任务分解为更小的子任务。

生活例子

  • 计算BMI指数时调用计算体重的函数
  • 计算总价格时调用计算折扣价的函数
  • 生成报告时调用多个数据处理函数

代码示例

python 复制代码
# 函数调用函数
def 计算面积(长, 宽):
    """计算长方形的面积"""
    return 长 * 宽

def 计算体积(长, 宽, 高):
    """计算长方体的体积"""
    底面积 = 计算面积(长, 宽)
    体积 = 底面积 * 高
    return 体积

# 调用函数
体积 = 计算体积(5, 3, 2)
print("长方体的体积是:", 体积)

8. 内置功能

Python提供了许多内置函数,这些函数可以直接使用,不需要定义。

常用内置函数

  • print():打印输出
  • input():获取用户输入
  • len():获取长度
  • range():生成数字序列
  • sum():计算和
  • max():获取最大值
  • min():获取最小值
  • abs():获取绝对值
  • round():四舍五入
  • type():获取类型
  • str():转换为字符串
  • int():转换为整数
  • float():转换为浮点数

代码示例

python 复制代码
# 使用内置函数
# print():打印输出
print("Hello, Python!")

# input():获取用户输入
姓名 = input("请输入你的姓名:")
print("你好," + 姓名 + "!")

# len():获取长度
字符串 = "Python"
print("字符串长度:", len(字符串))

# sum():计算和
数字列表 = [1, 2, 3, 4, 5]
print("列表和:", sum(数字列表))

# max():获取最大值
print("最大值:", max(数字列表))

# min():获取最小值
print("最小值:", min(数字列表))

# abs():获取绝对值
print("绝对值:", abs(-10))

# round():四舍五入
print("四舍五入:", round(3.14159, 2))

# type():获取类型
print("类型:", type(数字列表))

# str():转换为字符串
数字 = 123
print("数字转字符串:", str(数字))

# int():转换为整数
字符串数字 = "123"
print("字符串转整数:", int(字符串数字))

# float():转换为浮点数
print("整数转浮点数:", float(数字))

动手实践

基础练习(必做)

  1. 制作数学工具箱 :编写一个程序,包含多个数学相关的函数

    python 复制代码
    # 数学工具箱
    def 求和(*数字们):
        """计算多个数字的和"""
        return sum(数字们)
    
    def 求平均(数字列表):
        """计算列表中数字的平均值"""
        if not 数字列表:
            return 0
        return sum(数字列表) / len(数字列表)
    
    def 求最大(数字列表):
        """找出列表中的最大值"""
        if not 数字列表:
            return None
        return max(数字列表)
    
    def 求最小(数字列表):
        """找出列表中的最小值"""
        if not 数字列表:
            return None
        return min(数字列表)
    
    # 测试函数
    成绩列表 = [85, 92, 78, 88, 95]
    print("成绩列表:", 成绩列表)
    print("总分:", 求和(*成绩列表))
    print("平均分:", 求平均(成绩列表))
    print("最高分:", 求最大(成绩列表))
    print("最低分:", 求最小(成绩列表))
  2. 制作字符串工具箱 :编写一个程序,包含多个字符串处理函数

    python 复制代码
    # 字符串工具箱
    def 统计字数(文本):
        """统计文本的字数"""
        return len(文本)
    
    def 反转文字(文本):
        """将文字反转"""
        return 文本[::-1]
    
    def 替换文字(文本, 旧内容, 新内容):
        """替换文本中的内容"""
        return 文本.replace(旧内容, 新内容)
    
    def 转换大写(文本):
        """将文本转换为大写"""
        return 文本.upper()
    
    def 转换小写(文本):
        """将文本转换为小写"""
        return 文本.lower()
    
    # 测试函数
    文本 = "Hello, Python!"
    print("原文本:", 文本)
    print("字数:", 统计字数(文本))
    print("反转:", 反转文字(文本))
    print("替换:", 替换文字(文本, "Python", "World"))
    print("大写:", 转换大写(文本))
    print("小写:", 转换小写(文本))

进阶练习(选做)

  1. 制作单位转换器 :编写一个程序,包含长度、重量、温度等单位转换函数

    python 复制代码
    # 单位转换器
    def 厘米转英寸(厘米):
        """将厘米转换为英寸"""
        return 厘米 / 2.54
    
    def 公斤转磅(公斤):
        """将公斤转换为磅"""
        return 公斤 * 2.20462
    
    def 摄氏度转华氏度(摄氏度):
        """将摄氏度转换为华氏度"""
        return 摄氏度 * 9/5 + 32
    
    def 华氏度转摄氏度(华氏度):
        """将华氏度转换为摄氏度"""
        return (华氏度 - 32) * 5/9
    
    # 测试函数
    print("100厘米 =", 厘米转英寸(100), "英寸")
    print("50公斤 =", 公斤转磅(50), "磅")
    print("25摄氏度 =", 摄氏度转华氏度(25), "华氏度")
    print("77华氏度 =", 华氏度转摄氏度(77), "摄氏度")
  2. 制作计算器 :编写一个程序,包含加、减、乘、除等运算函数

    python 复制代码
    # 计算器
    def 加法(a, b):
        """加法运算"""
        return a + b
    
    def 减法(a, b):
        """减法运算"""
        return a - b
    
    def 乘法(a, b):
        """乘法运算"""
        return a * b
    
    def 除法(a, b):
        """除法运算"""
        if b == 0:
            return "除数不能为零"
        return a / b
    
    # 测试函数
    print("10 + 5 =", 加法(10, 5))
    print("10 - 5 =", 减法(10, 5))
    print("10 * 5 =", 乘法(10, 5))
    print("10 / 5 =", 除法(10, 5))
    print("10 / 0 =", 除法(10, 0))

挑战练习(拓展)

  1. 制作高级数学工具箱 :编写一个程序,包含更复杂的数学函数

    python 复制代码
    # 高级数学工具箱
    import math
    
    def 计算圆面积(半径):
        """计算圆的面积"""
        return math.pi * 半径 ** 2
    
    def 计算圆周长(半径):
        """计算圆的周长"""
        return 2 * math.pi * 半径
    
    def 计算阶乘(n):
        """计算阶乘"""
        if n < 0:
            return "阶乘不能为负数"
        return math.factorial(n)
    
    def 计算平方根(x):
        """计算平方根"""
        if x < 0:
            return "平方根不能为负数"
        return math.sqrt(x)
    
    # 测试函数
    print("半径为5的圆面积:", 计算圆面积(5))
    print("半径为5的圆周长:", 计算圆周长(5))
    print("5的阶乘:", 计算阶乘(5))
    print("16的平方根:", 计算平方根(16))

知识总结

核心概念回顾

  • 函数:完成特定任务的代码块
  • 参数:函数接收的输入值
  • 返回值:函数返回的结果
  • 默认参数:函数参数的默认值
  • 函数调用:执行函数的过程
  • 内置函数:Python提供的预定义函数

关键代码速查

功能 代码 说明
定义函数 def 函数名(参数): 代码块 return 返回值 定义一个函数
调用函数 函数名(参数) 执行函数并获取返回值
默认参数 def 函数名(参数=默认值): 为参数设置默认值
多个参数 def 函数名(参数1, 参数2, ...): 定义接受多个参数的函数
函数调用函数 def 函数1(): 函数2() 在一个函数中调用另一个函数
内置函数 print(), input(), len() Python提供的预定义函数

常见错误提醒

  1. 缩进错误:函数体的缩进不正确
  2. 参数错误:调用函数时参数数量或类型不匹配
  3. 返回值错误:函数没有返回预期的值
  4. 命名错误:函数名或变量名拼写错误
  5. 作用域错误:在函数外部访问函数内部的变量

课后作业

巩固练习题

  1. 编写一个函数,判断一个年份是否是闰年
  2. 编写一个函数,计算两个数的最大公约数

创意编程题

  1. 编写一个函数,生成指定长度的随机密码
  2. 编写一个函数,将阿拉伯数字转换为中文数字

下篇预习提示

在下一篇中,我们将学习面向对象编程,了解如何使用类和对象来组织代码。请思考:

  • 生活中有哪些可以被抽象为类的事物?
  • 如何使用类来模拟现实世界的对象?

学习交流

如果你在学习过程中遇到任何问题,欢迎联系我:

  • ** 视频号,"时空系"
  • 邮箱: wbtm2718@qq.com
  • 其他提示:
  • 本人正在开发纯中文编程语言和编译器,有兴趣的可以交流
  • 本人正在写一本基于中国母语思维习惯的数学教材,可以让你一年内学完从初中到研究生的数学,而且可以让你快速掌握人工智能的关键数学知识,有兴趣的可以交流

祝你学习愉快!

相关推荐
shughui1 小时前
2026最新JDK版本选择及下载安装详细图文教程【windows、mac附安装包】
java·linux·开发语言·windows·jdk·mac
Wenzar_1 小时前
# D3.js实战进阶:从基础图表到交互式数据仪表盘的全流程构建在现代前端开发中,**数据可视化已成为提升用户体验的核心能力之一
java·javascript·python·信息可视化·ux
要不枉此行1 小时前
【Python 实战】一键爬取 HTML 文档并合并为完整 PDF
python·pdf·html
AI玫瑰助手1 小时前
Python基础:集合的定义、去重与交并差运算
开发语言·python·信息可视化
JAVA面经实录9171 小时前
Spring Boot + Spring AI 完整实战手册
人工智能·spring boot·spring·ai编程
无敌秋1 小时前
# C++ 工厂方法模式实战指南
开发语言·c++·设计模式
忡黑梨1 小时前
eNSP_DHCP配置
c语言·网络·c++·python·算法·网络安全·智能路由器
m0_741481782 小时前
Vue.js核心基础之响应式系统与虚拟DOM渲染关联机制
jvm·数据库·python
Magic-Yuan2 小时前
PySpark Debug 总结
人工智能·python·数据平台