创建一个函数

创建函数也称为定义函数,可以理解为创建一个具有某种用途的工具。使用def关键字实现,具体的语法格式如下:

def functionname([parameterlist]):['''comments'''][functionbody]

functionname:函数名称,在调用函数时使用。
parameterlist:可选参数,用于指定向函数中传递的参数。

调用函数

调用函数也就是执行函数。调用函数的基本语法格式如下:

functionname([parametersvalue])

functionname:函数名称,在调用的函数名称必须是已经创建好的。
parameterlist:可选参数,用于指定向函数中传递的参数。

参数传递

def fun_bmi(person,height,weight):'''功能:根据身高和体重计算BMI指数person:姓名height:身高,单位:米weight:体重,单位:千克'''print(person + "的身高:" +str(height) + "米 \t 体重:" + str(weight) + "千克")bmi=weight/(height*height)print(person + "的BMI指数为:"+str(bmi))if bmi<18.5:print("您的体重过轻 ~@_@~\n")if bmi>=18.5 and bmi<24.9:print("正常范围,注意保持 (-_-)\n")if bmi>=24.9 and bmi<29.9:print("您的体重过重 ~@_@~\n")if bmi>=29.9:rint("肥胖 ^@_@^\n")fun_bmi("路人甲",1.80,87)
fun_bmi("路人乙",1.80,67)

输出:

路人甲的身高:1.8米    体重:87千克
路人甲的BMI指数为:26.85185185185185
您的体重过重 ~@_@~路人乙的身高:1.8米     体重:67千克
路人乙的BMI指数为:20.679012345679013
正常范围,注意保持 (-_-)

位置参数

位置参数称为必备参数,是必须按照正确的顺序传到函数中,即调用时的数量和位置必须和定义时是一样的。
1.数量必须与定义时一致
在调用函数时,指定的实际参数的数量必须与形式参数的数量一致,否则将抛出TypeError异常,提示缺少必要的位置参数。
2.位置必须与定义时一致
在调用函数时,指定的实际参数的位置必须与形式参数的位置一致,否则将产生以下两种结果。
(1)抛出TypeError异常
(2)产生结果与预期不符

可变参数

在python中,还可以定义可变参数。可变参数也称不定长参数,即传入函数中的实际参数可以是任意多个。
定义可变参数时,主要有两种形式:一种是*parameter,另一种是**parameter
1.*parameter
这种形式表示接收任意多个实际参数并将其放到一个元组中。

>>> def printcoffee(*coffeename):print('\n我喜欢的咖啡有:')for item in coffeename:print(item)>>> printcoffee('蓝山','卡布奇诺','摩卡')我喜欢的咖啡有:
蓝山
卡布奇诺
摩卡

如果想要使用一个已经存在的列表作为函数的可变参数,可以在列表的名称前加“*”。

>>> param = ['蓝山','卡布奇诺','土耳其']
>>> printcoffee(*param)我喜欢的咖啡有:
蓝山
卡布奇诺
土耳其

2.**parameter
这种形式表示接收任意多个类似关键字参数一样显示赋值的实际参数,并将其放到一个字典中。

>>> def printsign(**sign):print()for key,value in sign.items():print("["+ key +"]的星座是:"+ value)>>> printsign(香凝='双鱼座',黛蓝='双子座',冷凝一='射手座')[香凝]的星座是:双鱼座
[黛蓝]的星座是:双子座
[冷凝一]的星座是:射手座

如果想要使用一个已经存在的字典作为函数的可变参数,可以在字典的名称前加“**”。

>>> dict1={'绮梦':'水瓶座','冷伊一':'射手座','香凝':'双鱼座'}
>>> printsign(**dict1)[绮梦]的星座是:水瓶座
[冷伊一]的星座是:射手座
[香凝]的星座是:双鱼座

返回值

在python中,可以在函数体内使用return语句为函数指定返回值,该返回值可以是任意类型,并且无论return语句出现在函数的什么位置,只要得到执行,就会直接结束函数的执行。

《零基础学python》---第六章 函数相关推荐

  1. 零基础学Python(第九章 循环控制【break】与【continue】)

    本套学习内容共计[22]个章节,每个章节都会有对应的从0-1的学习过程详细讲解,希望可以给更多的人提供帮助. 开发环境:[Win10] 开发工具:[Visual Studio 2019] 本章为循环控 ...

  2. 零基础学Python(第二章 中文编码)

    本套学习内容共计[22]个章节,每个章节都会有对应的从0-1的学习过程详细讲解,希望可以给更多的人提供帮助. 开发环境:[Win10] 开发工具:[Visual Studio 2019] 1.修改编码 ...

  3. 零基础学Python(第一章 开发工具·最简易的环境·无需配置环境变量)

    本文优点:让初学人员远离繁琐的各种环境配置,让你可以直接上手敲代码(下载的时候网络得好一些,总计1.15G左右大小). 本套学习内容共计[22]个章节,每个章节都会有对应的从0-1的学习过程详细讲解, ...

  4. 零基础学Python课后实战第六章

    零基础学Python课后实战第六章 tips 实战一:导演为剧本选主角 实战二:模拟美团外卖商家的套餐 实战三:根据生日判断星座 实战四:将美元转换为人民币 tips 格式化字符串: {:0>9 ...

  5. 零基础学Python课后实战第四章

    零基础学Python课后实战第四章 实战一:输出王者荣耀的游戏角色 实战二:模拟火车订票系统 实战三:电视剧的收视率排行榜 tips 实战一:输出王者荣耀的游戏角色 列表的创建.遍历列表 代码 pri ...

  6. pythonfor循环100次_【零基础学Python】For循环和RANGE()函数

    while循环不断循环,而其条件是True.那如果要限制循环代码块的次数,就可以使用for循环语句和range()函数来执行. 在代码中,一条for语句始终包含以下内容:for关键字 变量名 in关键 ...

  7. 【第五章】零基础学Python实战练习(明日科技书配套)

    [第五章]零基础学Python实战练习(明日科技书配套) 实战一: 代码: 输出: 实战二: 代码: 输出: 实战三: 代码: 输出: 实战四: 代码: 输出: 优化一下代码,让输出对齐: 新输出 实 ...

  8. 【零基础学Python】Day13 Python函数

    昨天跟大家一起学习了Python循环语句,没学的兄弟姐妹们看这里零基础学Python,今天让我们开始学习Python函数吧. 需注意的是,[零基础学Python]此系列都使用Python3. 函数 P ...

  9. 零基础学Python课后实战第三章

    零基础学Python课后实战第三章 实战一:模拟支付宝蚂蚁森林的能量产生过程 实战二:猜数字游戏 实战三:模拟跳一跳小游戏的加分块 实战四:模拟10086查询功能 实战一:模拟支付宝蚂蚁森林的能量产生 ...

  10. 【第四章】零基础学Python实战练习(明日科技书本配套)

    零基础学Python实战练习 第四章 序列的应用 实战一 代码 输出: 实战二 代码 输出 实战三 代码 输出 实战四 代码 输出 第四章 序列的应用 实战一 代码 tank = ["苏烈& ...

最新文章

  1. 更换主版之后远程管理卡恢复操作
  2. javascript基础(幼兔、小兔成兔数量等典型例题)
  3. C#中修改文件或文件夹的权限,为指定用户、用户组添加完全控制权限
  4. 分析java中文乱码的原因
  5. MySQL删除数据库
  6. android 仿携程选择城市,类似携程商旅的城市选择器 CityPicker
  7. Hibernate学习笔记--第二篇 关联关系映射 many –to –one
  8. ftk学习记(对话框篇)
  9. 【less-2】sqli-labs靶场第二关
  10. 【100题】第十八题(约瑟夫循环)
  11. etcd3 安装与运维
  12. 2020美赛F奖论文(一):摘要、绪论和模型准备
  13. 在mini2440上面搞定CC2500物理层驱动
  14. python3-欢乐斗牛-实战
  15. Unable to preventDefault inside passive event listener due to target being treated as passive 怎么办?
  16. c语言访问mysql,C语言访问mysql数据库
  17. numpy block创建分块矩阵
  18. 在 Kubernetes 中使用 Keycloak OIDC Provider 对用户进行身份验证
  19. java毕业设计宝马官网Mybatis+系统+数据库+调试部署
  20. NFT Insider #52:元宇宙游戏Gotchiverse上线,The Sandbox入选《时代》榜单

热门文章

  1. 郑州大学远程教育计算机专业英语,郑州大学远程教育专业英语1考试.doc
  2. 我的Android面试;OPPO外包+百度,flutter登录过期
  3. 张掖市科迪计算机学校,甘肃张掖金安园学校校网
  4. 2021-08-10校网比赛B题
  5. 将maven依赖一并打入jar包
  6. 用pandas实现固定区间的数据频数统计(pd.cut,pd.Series)
  7. LINXU——命令的使用
  8. BCC(Borland C++ Compiler)编译 ISAPI 扩展或者用MinGW也行
  9. 提网速亟须普及光纤宽带 究竟是谁“偷”走了网速
  10. 计算机继承意义,计算机的发明事实上是对人脑智力的继承和延伸