五分钟了解Python中的函数

函数:函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。

函数的定义

定是函数使用def关键字

def myfunc(x):if x >= 0:return x    else:return -x

空函数

def emptyfunc():pass

参数检查

def checkfunc(x):if not isinstance(x,(int,float)):raise TypeError("must be int or float type!")if x >= 0:return xelse:return -x

返回多个值

def price(x):apple=x*2banana=x*2.5return apple,banana
a,b=price(1)

函数的参数

必选参数parameter

def printdetail1(name,age,telephone):print("姓名:",name)print("年龄:",age)print("电话:",telephone)
printdetail1("Jack",12,12356435678)

默认参数parameter=value

def printdetail2(name,age,telephone,gender='fale'):print("姓名:",name)print("性别:",gender)print("年龄:",age)print("电话:",telephone)
printdetail2("Jack",12,12356435678,gender='female')

可变参数*

1.不定长传参

def fun1(*number):for i in number:print(i)fun1(1,2,3,4,5,6,7,8)

2.元组和列表的压包

def fun2(*number):s=0for i in number:s+=iprint(s)
fun2(*[1,2,3,4,5])
fun2(*(1,2,3,4,5))

关键参数**

使用方法一

def fun(id,name,**kargs):print("id:",id)print("name:",name)print("others:",kargs)
fun(2,"xiaohua",sex="man",age='12')

使用方法二

extra={'sex': 'man', 'age': 12}
def fun(id,name,**kargs):print("id:",id)print("name:",name)print("others:",kargs)
fun(2,"xiaohua",sex=extra['sex'],age=extra['age'])

使用方法三

extra={'sex': 'man', 'age': 12}
def fun(id,name,**kargs):print("id:",id)print("name:",name)print("others:",kargs)
fun(2,"xiaohua",**extra)

关键字参数*

def fun(name,age,*,city,job,completion):print("name:",name)print("age:",age)print("city:",city)print("job:",job)print("completion:",completion)
fun('Jack',12,city='shanghai',job='teacher',completion=True)

命名关键字参数需要一个特殊分隔符*,后面的参数被视为命名关键字参数

如果函数定义中已经有了一个可变参数,后面跟着的命名关键字参数就不再需要一个特殊分隔符*了

参数组合

def fun(parameter,*args,keyparameter,**kargs):print(parameter)print(args)print(keyparameter)print(kargs)
fun(1,*(1,2,3,4),keyparameter=True,**{'id':2})

参数定义的顺序必须是:必选参数、默认参数、可变参数、命名关键字参数和关键字参数

函数的递归

#阶乘计算
def fact(n):if n == 1:return 1return n * fact(n-1)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/485449.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2024 Sora来了!“手机Agent智能体”也来了!

近日,Open AI发布了能够根据文本生成超现实视频的工具Sora,多款震撼视频引爆科技圈刷屏,热度持续发酵占据AI领域话题中心,被认为是AGI实现过程里的重大里程碑事件。新一轮的人工智能浪潮给人类未来的生产和生活方式带来巨大而深远…

05 类和对象 3

目录 再谈构造函数static成员友元内部类匿名对象拷贝对象时一些编译器优化再次理解封装 1. 再谈构造函数 1.1 构造函数赋值 在创建对象时,编译器调用构造函数,给对象中各个成员变量一个合适的初始值 class Date { public: Date(int year, int month,…

DTV的LCN功能介绍

文章目录 LCN简介LCN获取LCN Conflict LCN简介 Logical Channel Number(LCN)是数字电视系统中用于标识和组织频道的逻辑编号。LCN的目的是为了方便用户浏览和选择频道,使得数字电视接收设备能够根据这些逻辑编号对频道进行排序和显示。 LCN…

什么情况会发生Full GC?如何避免频繁Full GC?

Minor GC、Major GC 和 Full GC区别? Minor GC、Major GC和Full GC是垃圾回收中的三个重要概念,它们描述了垃圾回收的不同阶段和范围: Minor GC(新生代GC): Minor GC主要关注清理年轻代(Young …

【最新Dubbo3深入理解】Dubbo3中的SPI机制以及IOC、AOP

欢迎关注公众号(通过文章导读关注:【11来了】),及时收到 AI 前沿项目工具及新技术的推送! 在我后台回复 「资料」 可领取编程高频电子书! 在我后台回复「面试」可领取硬核面试笔记! 文章导读地址…

QT-串口工具

一、演示效果 二、关键程序 &#xff1a; #include "mainwindow.h" #include "ui_mainwindow.h"#include <QMessageBox>MainWindow::MainWindow(QWidget *parent) :QMainWindow(parent),ui(new Ui::MainWindow),listPlugins(QList<TabPluginInt…

【Git企业实战开发】Git常用开发流操作总结

【Git企业实战开发】Git常用开发流操作总结 大家好 我是寸铁&#x1f44a; 总结了一篇Git常用开发流操作总结的文章✨ 喜欢的小伙伴可以点点关注 &#x1f49d; 现在刚做项目的伙伴&#xff0c;可能你之前学过git&#xff0c;但是一实战发现不熟悉 没关系&#xff0c;看寸铁这篇…

【Maven】介绍、下载及安装、集成IDEA

目录 一、什么是Maven Maven的作用 Maven模型 Maven仓库 二、下载及安装 三、IDEA集成Maven 1、POM配置详解 2、配置Maven环境 局部配置 全局设置 四、创建Maven项目 五、Maven坐标详解 六、导入Maven项目 方式1&#xff1a;使用Maven面板&#xff0c;快速导入项目 …

Oladance、南卡、韶音开放式耳机怎么样?3个月真实对比测评

​哪款开放式耳机好用&#xff1f;我亲自体验并评测了市场上流行的三个品牌的开放式耳机&#xff1a;Oladance、南卡、韶音。通过深入测试多维度性能表现&#xff0c;确保你能够远离劣质产品可能带来的问题。我想提醒大家&#xff0c;如果选错耳机可能会影响到音乐的真实还原和…

嵌入式学习-qt-Day3

嵌入式学习-qt-Day3 一、思维导图 二、作业 完善对话框&#xff0c;点击登录对话框&#xff0c;如果账号和密码匹配&#xff0c;则弹出信息对话框&#xff0c;给出提示”登录成功“&#xff0c;提供一个Ok按钮&#xff0c;用户点击Ok后&#xff0c;关闭登录界面&#xff0c;跳…

放大电路静态工作点的稳定

什么对Q点有影响&#xff1f; 温度、电源&#xff08;VCC&#xff09;的波动、元器件的老化等。 对于电源的波动&#xff0c;可以用好的电源来抑制&#xff0c;使波动变得小&#xff1b;对于元器件的老化&#xff0c;可以在出厂前老化一下&#xff0c;后面可以稳定用很长时间…

协程源码 launch 流程跟踪学习

为了更深入学习协程的底层实现原理&#xff0c;了解协程线程切换的根本本质。也为了以后在工作中可以根据不同的需求场景&#xff0c;更加随心所欲的使用不同的协程。 今天通过 launch 跟踪一下协程的执行流程。 fun getData() {Trace.beginSection("getData");Log.…