第7篇功能——打造你的工具箱 python中文编程
作者中文编程倡导者—— 李金雨联系方式wbtm2718qq.com系列python中文编程入门教程** 核心理念 AI时代必须使用中文编程母语编程阅读效率极高第7篇功能——打造你的工具箱开篇引入本课目标理解什么是功能函数掌握如何定义功能掌握如何使用输入项参数掌握如何使用输出结果返回值理解默认参数值的使用理解多个输入项的处理理解功能调用功能了解常用的内置功能生活场景引入同学们在日常生活中我们经常使用各种工具来完成特定的任务使用锤子来钉钉子使用螺丝刀来拧螺丝使用计算器来进行计算使用洗衣机来洗衣服在Python中函数就像这些工具一样是用来完成特定任务的代码块。通过函数我们可以将代码组织成可重用的模块提高代码的可读性和复用性。预期成果展示在本课结束时你将能够定义自己的函数给函数传递参数从函数获取返回值使用默认参数编写接受多个参数的函数让函数调用其他函数使用内置函数编写一个数学工具箱程序概念讲解1. 什么是功能函数函数是一段完成特定任务的代码块它可以接受输入参数执行特定的操作然后返回结果。生活例子函数就像工具锤子、螺丝刀、计算器输入项给工具的原材料输出结果工具加工后的成品内置功能工具箱里自带的常用工具代码示例# 定义一个简单的函数def打招呼():打招呼功能print(你好欢迎学习Python)# 调用函数打招呼()2. 定义功能def在Python中我们使用def关键字来定义函数。基本结构def函数名(参数1,参数2,...):函数的说明文档# 函数体# 执行的代码return返回值生活例子定义一个计算面积的函数定义一个打印问候语的函数定义一个判断是否为质数的函数代码示例# 定义一个计算面积的函数def计算面积(长,宽):计算长方形的面积面积长*宽return面积# 定义一个打印问候语的函数def问候(姓名):向指定的人打招呼print(f你好{姓名})# 调用函数面积计算面积(5,3)print(长方形的面积是,面积)问候(小明)3. 输入项参数参数是函数接收的输入值它们在函数定义时被指定在函数调用时被传递。生活例子计算面积时需要长和宽打印问候语时需要姓名计算BMI时需要身高和体重代码示例# 带参数的函数def计算BMI(身高,体重):计算BMI指数bmi体重/(身高**2)returnbmi# 调用函数身高1.65体重55bmi值计算BMI(身高,体重)print(f你的BMI指数是{bmi值:.2f})4. 输出结果returnreturn语句用于从函数中返回值结束函数的执行。生活例子计算面积后返回面积值计算BMI后返回BMI值判断是否为质数后返回布尔值代码示例# 带返回值的函数def判断质数(数字):判断一个数是否是质数if数字1:returnFalseforiinrange(2,int(数字**0.5)1):if数字%i0:returnFalsereturnTrue# 调用函数数字17结果判断质数(数字)if结果:print(f{数字}是质数)else:print(f{数字}不是质数)5. 默认参数值默认参数值允许我们在函数调用时不提供某些参数使用预定义的默认值。生活例子计算折扣时默认折扣率为0.9打印问候语时默认称呼为先生计算面积时默认宽为1代码示例# 带默认参数的函数def计算折扣价(原价,折扣率0.9):计算折扣后的价格折扣价原价*折扣率return折扣价# 调用函数使用默认折扣率价格1计算折扣价(100)print(使用默认折扣率,价格1)# 调用函数指定折扣率价格2计算折扣价(100,0.8)print(使用指定折扣率,价格2)6. 多个输入项函数可以接受多个参数参数之间用逗号分隔。生活例子计算长方形面积需要长和宽计算三角形面积需要底和高计算加权平均分需要多个分数和对应的权重代码示例# 多个参数的函数def计算三角形面积(底,高):计算三角形的面积面积底*高/2return面积def计算加权平均分(语文,数学,英语,语文权重0.3,数学权重0.4,英语权重0.3):计算加权平均分平均分语文*语文权重数学*数学权重英语*英语权重return平均分# 调用函数面积计算三角形面积(10,5)print(三角形的面积是,面积)平均分计算加权平均分(85,92,88)print(加权平均分是,平均分)7. 功能调用功能函数可以调用其他函数这样可以将复杂的任务分解为更小的子任务。生活例子计算BMI指数时调用计算体重的函数计算总价格时调用计算折扣价的函数生成报告时调用多个数据处理函数代码示例# 函数调用函数def计算面积(长,宽):计算长方形的面积return长*宽def计算体积(长,宽,高):计算长方体的体积底面积计算面积(长,宽)体积底面积*高return体积# 调用函数体积计算体积(5,3,2)print(长方体的体积是,体积)8. 内置功能Python提供了许多内置函数这些函数可以直接使用不需要定义。常用内置函数print()打印输出input()获取用户输入len()获取长度range()生成数字序列sum()计算和max()获取最大值min()获取最小值abs()获取绝对值round()四舍五入type()获取类型str()转换为字符串int()转换为整数float()转换为浮点数代码示例# 使用内置函数# print()打印输出print(Hello, Python!)# input()获取用户输入姓名input(请输入你的姓名)print(你好姓名)# len()获取长度字符串Pythonprint(字符串长度,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()转换为字符串数字123print(数字转字符串,str(数字))# int()转换为整数字符串数字123print(字符串转整数,int(字符串数字))# float()转换为浮点数print(整数转浮点数,float(数字))动手实践基础练习必做制作数学工具箱编写一个程序包含多个数学相关的函数# 数学工具箱def求和(*数字们):计算多个数字的和returnsum(数字们)def求平均(数字列表):计算列表中数字的平均值ifnot数字列表:return0returnsum(数字列表)/len(数字列表)def求最大(数字列表):找出列表中的最大值ifnot数字列表:returnNonereturnmax(数字列表)def求最小(数字列表):找出列表中的最小值ifnot数字列表:returnNonereturnmin(数字列表)# 测试函数成绩列表[85,92,78,88,95]print(成绩列表,成绩列表)print(总分,求和(*成绩列表))print(平均分,求平均(成绩列表))print(最高分,求最大(成绩列表))print(最低分,求最小(成绩列表))制作字符串工具箱编写一个程序包含多个字符串处理函数# 字符串工具箱def统计字数(文本):统计文本的字数returnlen(文本)def反转文字(文本):将文字反转return文本[::-1]def替换文字(文本,旧内容,新内容):替换文本中的内容return文本.replace(旧内容,新内容)def转换大写(文本):将文本转换为大写return文本.upper()def转换小写(文本):将文本转换为小写return文本.lower()# 测试函数文本Hello, Python!print(原文本,文本)print(字数,统计字数(文本))print(反转,反转文字(文本))print(替换,替换文字(文本,Python,World))print(大写,转换大写(文本))print(小写,转换小写(文本))进阶练习选做制作单位转换器编写一个程序包含长度、重量、温度等单位转换函数# 单位转换器def厘米转英寸(厘米):将厘米转换为英寸return厘米/2.54def公斤转磅(公斤):将公斤转换为磅return公斤*2.20462def摄氏度转华氏度(摄氏度):将摄氏度转换为华氏度return摄氏度*9/532def华氏度转摄氏度(华氏度):将华氏度转换为摄氏度return(华氏度-32)*5/9# 测试函数print(100厘米 ,厘米转英寸(100),英寸)print(50公斤 ,公斤转磅(50),磅)print(25摄氏度 ,摄氏度转华氏度(25),华氏度)print(77华氏度 ,华氏度转摄氏度(77),摄氏度)制作计算器编写一个程序包含加、减、乘、除等运算函数# 计算器def加法(a,b):加法运算returnabdef减法(a,b):减法运算returna-bdef乘法(a,b):乘法运算returna*bdef除法(a,b):除法运算ifb0:return除数不能为零returna/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))挑战练习拓展制作高级数学工具箱编写一个程序包含更复杂的数学函数# 高级数学工具箱importmathdef计算圆面积(半径):计算圆的面积returnmath.pi*半径**2def计算圆周长(半径):计算圆的周长return2*math.pi*半径def计算阶乘(n):计算阶乘ifn0:return阶乘不能为负数returnmath.factorial(n)def计算平方根(x):计算平方根ifx0:return平方根不能为负数returnmath.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提供的预定义函数常见错误提醒缩进错误函数体的缩进不正确参数错误调用函数时参数数量或类型不匹配返回值错误函数没有返回预期的值命名错误函数名或变量名拼写错误作用域错误在函数外部访问函数内部的变量课后作业巩固练习题编写一个函数判断一个年份是否是闰年编写一个函数计算两个数的最大公约数创意编程题编写一个函数生成指定长度的随机密码编写一个函数将阿拉伯数字转换为中文数字下篇预习提示在下一篇中我们将学习面向对象编程了解如何使用类和对象来组织代码。请思考生活中有哪些可以被抽象为类的事物如何使用类来模拟现实世界的对象学习交流如果你在学习过程中遇到任何问题欢迎联系我** 视频号“时空系”邮箱wbtm2718qq.com其他提示本人正在开发纯中文编程语言和编译器有兴趣的可以交流本人正在写一本基于中国母语思维习惯的数学教材可以让你一年内学完从初中到研究生的数学而且可以让你快速掌握人工智能的关键数学知识有兴趣的可以交流祝你学习愉快