函数进阶

三级等保网络拓扑图实战:从零搭建符合标准的医院安全架构 本文详细阐述了如何从零开始设计并搭建符合三级等保标准的医院网络安全架构。文章基于“一个中心,三重防护”的核心框架,深入解析了医院网络分区设计、安全域划分、关键安全设备选型与配置等实战要点,并提供了绘制专业网络拓扑图的技巧与等保测评准备指南,旨在帮助医院IT人员系统化地构建既合规又实用的纵深防御体系。 阅读详情

1.函数的参数传递

参数定义与传递的基本顺序

   位置函数 -> 关键字参数 -> 可变数量参数
         *args --> **args
对于*args和**args在函数中我们称之为参数组,但是这两个还是有区别的
  1.*args的功能:接收N个位置参数,转换成元组tuple形式
  2.**args的功能:接收N个关键字参数,转换成字典dict形式
  3.位置参数一定要在关键字参数之前,也就是(*args,**args)

>>> def fun1(a,b=6,*c,**d):
        print("a =",a,",b = ",b,",c =",c,",d =",d)

>>> fun1(1)
a = 1 ,b =  6 ,c = () ,d = {}
>>> fun1(1,2)
a = 1 ,b =  2 ,c = () ,d = {}
>>> fun1(1,2,3)
a = 1 ,b =  2 ,c = (3,) ,d = {}
>>> fun1(1,2,3,4)
a = 1 ,b =  2 ,c = (3, 4) ,d = {}
>>> fun1(1,2,3,4,5)
a = 1 ,b =  2 ,c = (3, 4, 5) ,d = {}

>>> fun1(a=1)
a = 1 ,b =  6 ,c = () ,d = {}
>>> fun1(a=1,b=3)
a = 1 ,b =  3 ,c = () ,d = {}
>>> fun1(a=1,b=3,c=3)
a = 1 ,b =  3 ,c = () ,d = {'c': 3}
>>> fun1(a=1,b=3,d=3)
a = 1 ,b =  3 ,c = () ,d = {'d': 3}
>>> fun1(a=1,b=3,c=3,d=5)
a = 1 ,b =  3 ,c = () ,d = {'c': 3, 'd': 5}

>>> fun1(1,2,3,4,x=5)
a = 1 ,b =  2 ,c = (3, 4) ,d = {'x': 5}

>>> fun1(1,2,3,4,5,b=3,c=3)
Traceback (most recent call last):
  File "<pyshell#29>", line 1, in <module>
    fun1(1,2,3,4,5,b=3,c=3)
TypeError: fun1() got multiple values for argument 'b'
>>> fun1(1,2,3,4,5,b=3)
Traceback (most recent call last):
  File "<pyshell#30>", line 1, in <module>
    fun1(1,2,3,4,5,b=3)
TypeError: fun1() got multiple values for argument 'b'

#位置参数与关键字参数位置颠倒后的结果如下
>>> fun1(c=2,d=12,1,2,3)
SyntaxError: positional argument follows keyword argument

2.函数文档

  函数文档是用来查看当前函数相关信息介绍的一个特定格式。

定义函数文档方法:

def 函数名([参数列表]):
    '''注释'''
    函数体

查看函数文档方法:

help(函数名)
    此方法会直接输出函数文档的内容
 
函数名.__doc__
    直接输出显示函数文档的内容元字符串(可以使用print(函数名.__doc__)来解决无格式问题)

3.lambda匿名函数

lambda表达式

(1) lambda表达式可以用来声明匿名函数,也就是没有函数名称的临时使用的小函数,尤其适合需要一个函数作为另一个函数参数的场合。也可以定义具名函数。
(2) lambda表达式只可以包含一个表达式,该表达式的计算结果可以看作是函数的返回值,不允许包含重复语句,但在表达式中可以调用其他函数。

lambda函数

lambda函数返回函数名作为结果
(1) lambda函数是一种匿名函数,即没有名字的函数。
(2) 使用lambda保留字定义,函数名是返回结果。
(3) lambda函数用于定义简单的、能够在一行内表示的函数。
语法形式如下:
     <函数名> = lambda <参数>:<表达式>
等价于

def <函数名>(<参数>):
    <函数体>
    return <返回值>

例

>>> f = lambda x,y,z:x+y+z        #可以给lambda表达式起名字
>>> f(2,5,8)                      #像函数一样调用
15
>>> g = lambda x,y=2,z=7:x+y+z    #参数默认值
>>> g(1)
10
>>> g(2,z=7,y=9)                  #关键参数
18

4.map 函数

map() 会根据提供的函数对指定序列做映射。
第一个参数function以参数序列中的每一个元素调用function函数,返回包含每次function函数返回值的新列表。
语法为:map(function,iterable,...)
参数:function — 函数;iterable — 一个或多个序列
返回值:Python 2.x 返回列表
        Python 3.x 返回迭代器
例:

>>> def square(x):
	return x ** 2

>>> map(square,[1,2,3,4,5,6])
<map object at 0x03C0AC10>
>>> list(map(square,[1,2,3,4,5,6]))
[1, 4, 9, 16, 25, 36]

#使用lambda匿名函数
>>> map(lambda x:x ** 2,[1,2,3,4,5,6,])
<map object at 0x03C0AC10>
>>> list(map(lambda x:x ** 2,[1,2,3,4,5,6,]))
[1, 4, 9, 16, 25, 36]

#提供两个列表,对相同位置的列表数据进行相加
>>> list(map(lambda x,y:x + y,[1,3,5,7,9],[2,4,6,8,10]))
[3, 7, 11, 15, 19]

5.filter 函数

filter() 函数用于过滤序列,过滤掉不符合条件的元素,返回由符合条件元素组成的新列表。
  该函数接收两个参数,第一个为函数,第二个为序列,序列中的每个元素作为参数传递给函数进行判断,然后返回 True 或 False ,最后将返回 True 的元素放到新列表中。
语法为:filter(function,iterable)
参数:function — 函数,只能接收一个参数,且返回值是 True 或 False
   iterable — 可迭代对象
返回值:Python 2.7 返回列表
        Python 3.x 返回迭代器对象
例:

>>> def is_odd(n):
	return n % 2 == 1

>>> newlist = filter(is_odd,[1,2,3,4,5,6,7,8,9,10])
>>> print(newlist)
<filter object at 0x03C0AF70>
>>> print(list(newlist))
[1, 3, 5, 7, 9]

6.zip 函数

zip() 函数用于将可迭代对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表。如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同,利用*号操作符,可以将元组解压为列表。
语法为:zip([iterable,...])
参数:iterable — 一个或多个迭代器
返回值:返回元组、列表
例:

>>> a = [1,2,3] 
>>> b = [4,5,6]
>>> zip(a,b)
<zip object at 0x009A0698>
>>> list(zip(a,b))
[(1, 4), (2, 5), (3, 6)]

#与 zip 相反,*zipped 可理解为解压,返回二维矩阵式
>>> a = [1,2,3]	 
>>> b = [4,5,6]
>>> zipped = zip(a,b)
>>> list(zip(*zipped))
[(1, 2, 3), (4, 5, 6)]

7.enumerate 函数

enumerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环中。
Python 2.3.以上版本可用,Python2.6 添加 start 参数。
语法为:enumerate(sequence,[start=0])
参数:sequence — 一个序列、迭代器或其他支持迭代对象
   start — 下标起始位置
返回值:返回enumerate(枚举) 对象
例:

>>> seasons = ['Spring','Summer','Fall','Winter']	 
>>> list(enumerate(seasons))		 
[(0, 'Spring'), (1, 'Summer'), (2, 'Fall'), (3, 'Winter')]

>>> list(enumerate(seasons,start=1))
[(1, 'Spring'), (2, 'Summer'), (3, 'Fall'), (4, 'Winter')]

8.reduce 函数

reduce() 函数会对参数序列中元素进行积累。
函数将一个数据集合(链表,元组等)中的所有数据进行下列操作:
  用传给 reduce 中的函数 function (有两个参数)先对集合中的第1、2个元素进行操作,得到的结果再与第3个数据用 function 函数运算,最后得到一个结果。
语法为:reduce(function,iterable[,initializer])
参数:function — 函数,有两个参数
   iterable — 可迭代对象
   initializer — 可选,初始参数
返回值:返回函数计算结果
*在Python3 中,reduce() 函数已经被从全局名字空间里移除了,它现在被放置在 functools 模块里,如果你想使用它,则需要通过引入 functools 模块来调用reduce() 函数:
      from functools import reduce
例:

>>> from functools import reduce
>>> def add(x,y):
	return x + y

>>> reduce(add,[1,2,3,4,5])
15

>>> from functools import reduce
>>> reduce(lambda x,y: x+y,[1,2,3,4,5])
15

>>> from functools import reduce
>>> def add(x,y):
	return x + y

>>> print(reduce(add,range(1,100)))
4950

相关内容有来自于:1.python基础–参数组*args和**kwargs的区别
         2.python 函数文档

AI之KE:Knowledge Engineering知识工程的简介、发展、应用案例之详细攻略 AI之KE:Knowledge Engineering知识工程的简介、发展、应用案例之详细攻略 目录 Knowledge Engineering知识工程的简介 0.1、What 0.2、How 0.3、Why 1、知识工程过程的5个活动 2、知识图谱的应用 Knowledge Engineering知识工程的发展 1、前知识工程时期——1950-1970时期:图... 阅读详情

相关推荐

手持式激光测距仪全套方案

激光测距全套方案,包括原理图、源代码、PCB、BOM、光学部分资料,结构、特殊元件数据手册及供应商联系方式,提供调试技术文档。全套方案已成功打板验证,实现0.05~50m测量范围,精度在+/—1.5mm,激光波长635~650nm,功率《1mW。方案预留了TTL串口、RS485接口,可通过串口助手看到测量数据,可自行DIY或者商业开发。无论是电路小白,还是技术大拿,都能通过方案资料成功做出一套激光测距仪。

Laser01的博客 2055

Python关键字个数可变的位置传参与个数可变的关键字传参

Python的三种可变参数 单个星号表示这个位置接收任意多个非关键字参数,并将其转换为元组 双星号代表这个位置接收任意多个关键字参数,并将其转换为字典 *arg的功能:接收N个位置参数,转换为元组形式 def add(*args): print(args) add(1, 2, 3) (1, 2, 3) **args的功能:接收N个关键字参数,并将其转换为字典格式 def add2(**kwargs): print(kwargs) add2(k1=1,k2=2,k3=3) {'

冰点契约的博客 534

【ChatGPT实战案例】ChatGPT如何帮助产品经理高效工作?

1. 产品经理主要工作方向, 2. 具体工作中,向ChatGPT提问参考

weixin_62909516的博客 1899

JavaScript进阶(四)- 函数进阶

2021.2.6 文章目录JavaScript进阶(四)函数进阶函数的定义和调用函数的定义方式函数的调用方式this函数内this的指向改变函数内部this指向call()、apply()、bind()总结严格模式什么是严格模式开启严格模式严格模式中的变化高阶函数闭包变量作用域什么是闭包闭包案例递归什么是递归利用递归求数学题浅拷贝和深拷贝 JavaScript进阶(四) 函数进阶 函数的定义和调用 函数的定义方式 函数声明方式function()关键字(命名函数) 函数表达式(匿名函数) new Fu.

Ludwig1957的博客 500

Zemax操作33--5倍激光扩束器

5倍扩束

lzy750750的博客 2931

基于粒子群算法的PID控制器优化设计

粒子群算法、PID、寻优

qq_46107700的博客 2万+

内置函数map()

功能:map()会根据提供的函数对指定序列做映射。map()的两个参数一个是函数名,另一个是列表或元组。处理后的结果,是一个列表 元素位置未改动 map函数中第二个传的参数 只要是可迭代对象就行 语法 map() 函数语法: map(function, iterable, ...) 参数 function -- 函数 iterable -- 一个或多个序列 1.需...

weixin_30425949的博客 524

基于51单片机扫地机器人(全套Proteus仿真+原理图+程序+说明书)

(内含源程序代码,原理图,仿真,讲解视频,元件清单等,【精品】值得推荐!!!扫地机器人是以单片机为主控制器。通过单片机控制小车行驶、除尘、蜂鸣。扫地机器人使用双电机驱动,以提高整车运动的平稳性;在智能车进驶过程中,采用双超声波模块实现避障。

2301_76434107的博客 1895

python 中map()函数的使用方法(重点)_python map函数(23)

https://www.xin3721.com/eschool/pythonxin3721/截至到目前为止,其实我们已经接触了不少的python内置函数,而map函数也是其中之一,map函数是根据指定函数对指定序列做映射,在开发中使用map函数也是有效提高程序运行效率的办法之一.一.语法定义'''function:函数名iterable:一个序列或者多个序列,实际上这就是function对应的实参...

weixin_32247455的博客 887

微磁模拟实战指南:从OOMMF安装到首个3D模型运行

本文详细介绍了OOMMF微磁模拟软件的安装与使用,从环境配置到首个3D模型运行的完整教程。涵盖Windows、Linux和macOS平台的安装避坑指南,以及MIF文件编写、并行计算优化等实战技巧,帮助研究人员快速掌握这一开源工具在磁畴壁运动、磁滞回线等微磁学问题中的应用。

weixin_29294597的博客 153

深度解析:LPDDR5 Receiver 的挑战与应对

LPDDR5 的数据速率已经来到Tbit​DataRate1​≈156ps在6400Mbps时也就是说,。👉 这就是为什么成为 LPDDR5 的“标配”。

weixin_43199439的博客 211

诺,你们要的Python进阶来咯!【函数、类进阶必备】

目录 一、Python进阶初体验——内置函数 1、数据类型相关 2、数值计算相关 3、bool 值判断相关 4、IO 相关 5、元数据相关 6、help()函数 7、sorted()函数 8、range()函数 二、给代码安个家——函数进阶 1、位置参数 2、参数默认值 3、关键字参数 4、任意参数列表 5、多返回值 三、让你函数更好用——类进阶 1、类属性和类方法 (1)类属性的定义 (2)类方法的定义 2、静态方法 3、私有属性、方法 4、特殊方法 5、类的

累计发表博客60余万字,优快云 博客专家、Java 领域优质创作者、华为云享专家、阿里云专家博主。专注分享 Java 优质文章,毕设实战项目开发,全网粉丝10W+ 1万+

纳米尺度仿真软件:Quantum Espresso_(13).非线性光学性质计算

通过 Quantum Espresso,可以高效地计算材料的非线性光学性质,包括二阶和三阶非线性极化率。这些性质在许多现代技术中具有重要的应用价值。在准备输入文件时,需要详细描述系统的晶格结构和原子位置,选择合适的基组和赝势,并设置计算参数和微扰设置。通过优化计算参数和使用并行计算,可以提高计算效率和精度。最后,使用适当的工具进行结果分析和可视化,可以更好地理解材料的非线性光学行为。

kkchenjj的博客 1278

Python函数进阶

函数进阶 目标 函数参数和返回值的作用 函数的返回值 进阶 函数的参数 进阶 递归函数 01. 函数参数和返回值的作用 函数根据 有没有参数 以及 有没有返回值,可以 相互组合,一共有 4 种 组合形式 无参数,无返回值 无参数,有返回值 有参数,无返回值 有参数,有返回值 定义函数时,是否接收参数,或者是否返回结果,是根据 实际的功能需求 来决定的! 如果函数 内部处理的数据不确...

新海说 369

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

函数进阶版

必须保证带有默认值的缺省参数在参数列表末尾所以,以下定义是错误的!有时可能需要一个函数能够处理的参数个数是不确定的,这个时候,就可以使用多值参数python中有两种多值参数:参数名前增加一个可以接收元组参数名前增加两个可以接收字典一般在给多值参数命名时,习惯使用以下两个名字*args—— 存放元组参数,前面有一个**kwargs—— 存放字典参数,前面有两个args是arguments的缩写,有变量的含义kw是keyword的缩写,kwargs可以记忆键值对参数print(num)

weixin_58423196的博客 786

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

JavaScript高级 函数进阶篇

相同点:都可以改变函数内部this指向;区别点:(1)、call()和apply()会调用函数,并且改变函数内部this指向;(2)、call()和apply()传递的参数不一样,call()传递参数arg1 、arg2… ,apply()必须是数组形式[arg];(3)、bind()不会调用函数,可以改变函数内部this指向;主要应用场景:(1)、call()经常做继承;(2)、apply()经常跟数组有关系,比如借助于数学对象实现数组最大值最小值;

qq_57162921的博客 1385

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

python函数进阶

1.函数的进阶 *的魔性用法 # *的魔性用法: (函数中) def func(*args,**kwargs): print(args) # (1, 2, 3,'太白', 'wusir', '景女神') print(kwargs) l1 = [1, 2, 3] l2 = ['太白', 'wusir', '景女神'] func(l1,l2) func(*l1,*l2) # ...

weixin_34124651的博客 206

python函数进阶及作业

​return a+b2.定义函数,接受三个参数:姓名、年龄、职业,然后打印出一个介绍信息,如“姓名:张三,年龄:25,职业:工程师”。print(f"姓名:{name},年龄:{age},职业{career}")a ( "张三", 25, "工程师")3.接收一个列表,返回这个列表的最大值 平均值 最小值4.输入一个包含若干整数的列表,输入列表的最大值,列如输入【1,2,3,4,6666】,输出6666。

annsksmd的博客 1051

C++函数进阶

函数进阶 using 指令尽量不要出现在头文件中 因为在预编译的过程中,所有引用该头文件的文件都会再次申明出现这条using指令 顶层const和底层const 由于指针本身是一个对象,所以指针所指向的对象是不是常量和指针变量本身是不是常量是两个问题: 顶层const是指指针本身是一个常量,申明一个常量指针可以通过以下方式: int a = 1; int *const var = &amp;a; //此处报错,表达式必须是可修改的左值 var = 0; 底层const是指指针所指向的对象是一个常量

yp010425的博客 310

09Python函数进阶

函数根据以及,可以,一共有组合形式。

dotnethello的博客 939

函数进阶.

目标:掌握函数相关易错点 & 项目开发必备技能。 今日概要: - 参数的补充 - 函数名,函数名到底是什么? - 返回值和print,傻傻分不清楚。 - 函数的作用域

Blk628lxy的博客 1056

python函数基础及进阶

python函数的基础及进阶分享

qq_52758588的博客 1068

Python 函数 基础及其进阶

初学者Python入门,函数的基础及其进阶的基本语法和知识点

Yean666的博客 1095
上一篇: Python calendar库的使用
下一篇: Python 集合与字典
MuZLL17
博客等级 码龄8年 42粉丝 10原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值