1. python函数

1.1 函数的作用

  • 函数是组织好的,可重复使用的,用来实现单一或相关联功能的代码段
  • 函数能提高应用的模块性代码的重复利用率
  • python 内置函数:https://docs.python.org/zh-cn/3.10/library/functions.html

1.2 函数定义

  • def:函数定义关键词
  • function_name:函数名称
  • ():参数列表放置的位置,可以为空
  • parameter_list:可选,指定向函数中传递的参数
  • comments:可选,为函数指定注释
  • function_body:可选,指定函数体
def function_name([parameter_list]):
    [''' comments ''']
    [function_body]

定义函数的注意事项:

  • 缩进:python 是通过严格的缩进来判断代码块儿

    • 函数体和注释相对于 def 关键字必须保持一定的缩进,一般都是 4 个空格
    • pycharm 自动格式化快捷键:ctrl alt L
  • 定义空函数

    • 使用 pass 语句占位
    • 写函数注释 comments、

1.3 函数调用

  • function_name:函数名称
  • parameter_value:可选,指定各个参数的值
function_name([parameter_value])

1.4 函数的参数

1.4.1 参数的传递

  • 形式参数:定义函数时,函数名称后面括号中的参数
  • 实际参数:调用函数时,函数名称后面括号中的参数
# a, b, c 为形式参数
def demo_func(a, b, c):
    print(a, b, c)

# 1, 2, 3 为实际参数
demo_func(1, 2, 3)

1.4.2 参数类型

1.4.2.1 位置参数(必备参数)

  • 数量必须与定义时一致
  • 位置必须与定义时一致
def demo_func(a, b, c):
    print(a, b, c)

# 1 赋值给 a, 2 赋值给 b, 3 赋值给 c
demo_func(1, 2, 3)

1.4.2.2 关键字参数

  • 使用形式参数的名字确定输入的参数值
  • 不需要与形式参数的位置完全一致
def demo_func(a, b, c):
    print(a, b, c)

demo_func(a=1, b=2, c=3)

1.4.2.3可变参数

  • 可变参数也称为不定长参数
  • 传入函数中实际参数可以是任意多个
  • 常见形式
    • *args
    • **kwargs
1.4.2.3.1 *args
  • 接收任意多个实际参数,并将其放到一个元组
  • 使用已经存在的列表元组作为函数的可变参数,可以在列表的名称前加*
def print_language(*args):
    print(args)

print_language("python", "java", "php", "go")

params = ["python", "java", "php", "go"]
print_language(*params)
1.4.2.3.2 **kwargs
  • 接收任意多个类似关键字参数一样显式赋值的实际参数,并将其放到一个字典
  • 使用已经存在字典作为函数的可变参数,可以在字典的名称前加**
def print_info(**kwargs):
    print(kwargs)

print_info(Tom=18, Jim=20, Lily=12)

params = {'Tom':18, 'Jim':20, 'Lily':12}
print_language(**params)

1.4.5 为参数设置默认值

  • 定义函数时可以指定形式参数的默认值
  • 指定默认值的形式参数必须放在所有参数的最后,否则会产生语法错误
  • param=default_value:可选,指定参数并且为该参数设置默认值为 default_value
  • 设置默认值必须要使用不可用对象,可变对象不可以用,如:列表,字典。
def function_name(..., [param=default_value]):
    [function_body]

1.5 函数返回值

value:可选,指定要返回的值

def function_name([parameter_list]):
    [''' comments ''']
    [function_body]
    return [value]

2. python lambda表达式

2.1 匿名函数

  • 没有名字的函数
  • 用 lambda 表达式创建匿名函数

2.2 使用场景

  • 需要一个函数,但是又不想费神去命名这个函数
  • 通常在这个函数只使用一次的场景下
  • 可以指定短小的回调函数

2.3 语法

  • result:调用 lambda 表达式
  • [arg1 [, arg2, …. , argn]]:可选,指定要传递的参数列表
  • expression:必选,指定一个实现具体功能的表达式
result = lambda [arg1 [, arg2, .... , argn]]: expression

2.4 实例

L=[('b',2),('a',1),('c',3),('d',4)]

# 2、利用参数 cmp 排序
sorted(L, cmp=lambda x,y:cmp(x[1],y[1]))
# 结果:
[('a', 1), ('b', 2), ('c', 3), ('d', 4)]
# 3、利用参数 key 排序
sorted(L, key=lambda x:x[1])
# 结果:
[('a', 1), ('b', 2), ('c', 3), ('d', 4)]

到此这篇关于python函数和python匿名函数lambda的文章就介绍到这了,更多相关python匿名函数lambda内容请搜索Devmax以前的文章或继续浏览下面的相关文章希望大家以后多多支持Devmax!

python函数和python匿名函数lambda详解的更多相关文章

  1. XCode 3.2 Ruby和Python模板

    在xcode3.2下,我的ObjectiveCPython/Ruby项目仍然可以打开更新和编译,但是你无法创建新项目.鉴于xcode3.2中缺少ruby和python的所有痕迹(即创建项目并添加新的ruby/python文件),是否有一种简单的方法可以再次安装模板?我发现了一些关于将它们复制到某个文件夹的信息,但我似乎无法让它工作,我怀疑文件夹的位置已经改变为3.2.解决方法3.2中的应用程序模板

  2. ios – 如何使用Magical Record创建和更新对象并保存它们而不使用contextForCurrentThread

    解决方法所以,我使用客观C而不是RubyMotion,但你应该能够这样做:编辑如果要稍后保存上下文,您只需要坚持下去:这里的主要思想是,您只需要掌握上下文并在准备就绪时执行您的操作.如果要进行后台保存,请使用以下方法:

  3. Swift基本使用-函数和闭包(三)

    声明函数和其他脚本语言有相似的地方,比较明显的地方是声明函数的关键字swift也出现了Python中的组元,可以通过一个组元返回多个值。传递可变参数,函数以数组的形式获取参数swift中函数可以嵌套,被嵌套的函数可以访问外部函数的变量。可以通过函数的潜逃来重构过长或者太复杂的函数。

  4. 初探swift语言的学习笔记三(闭包-匿名函数)

    很多高级语言都支持匿名函数操作,在OC中的block也为大家所熟悉,然面在swift里好像是被重新作了一个定义,不叫匿名函数,或block了,而叫闭包。下面配合代码来理解一下swift的闭包强大之处。

  5. 10 个Python中Pip的使用技巧分享

    众所周知,pip 可以安装、更新、卸载 Python 的第三方库,非常方便。本文小编为大家总结了Python中Pip的使用技巧,需要的可以参考一下

  6. OC的Block、Swift的Closure及C#的Lambda对比

    Block:代码块、语法糖、对象Closure:闭包、自包含模块、捕获前后变量处理逻辑Lambda:可用于创建委托或表达式目录树类型的匿名函数Lambda运算符=>的左边列出了需要的参数,右边定义了赋予Lambda变量方法的实现代码。

  7. Swift、Go、Julia与R能否挑战 Python 的王者地位

    本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请发送邮件至dio@foxmail.com举报,一经查实,本站将立刻删除。

  8. 红薯因 Swift 重写开源中国失败,貌似欲改用 Python

    本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请发送邮件至dio@foxmail.com举报,一经查实,本站将立刻删除。

  9. 你没看错:Swift可以直接调用Python函数库

    上周Perfect又推出了新一轮服务器端Swift增强函数库:Perfect-Python。对,你没看错,在服务器端Swift其实可以轻松从其他语种的函数库中直接拿来调用,不需要修改任何内容。以如下python脚本为例:Perfect-Python可以用下列方法封装并调用以上函数,您所需要注意的仅仅是其函数名称以及参数。

  10. Swift中的列表解析

    在Swift中完成这个的最简单的方法是什么?我在寻找类似的东西:从Swift2.x开始,有一些与你的Python样式列表解析相当的东西。(在这个意义上,它更像是Python的xrange。如果你想保持集合懒惰一路通过,只是这样说:与Python中的列表解析语法不同,Swift中的这些操作遵循与其他操作相同的语法。

随机推荐

  1. 10 个Python中Pip的使用技巧分享

    众所周知,pip 可以安装、更新、卸载 Python 的第三方库,非常方便。本文小编为大家总结了Python中Pip的使用技巧,需要的可以参考一下

  2. python数学建模之三大模型与十大常用算法详情

    这篇文章主要介绍了python数学建模之三大模型与十大常用算法详情,文章围绕主题展开详细的内容介绍,具有一定的参考价值,感想取得小伙伴可以参考一下

  3. Python爬取奶茶店数据分析哪家最好喝以及性价比

    这篇文章主要介绍了用Python告诉你奶茶哪家最好喝性价比最高,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习吧

  4. 使用pyinstaller打包.exe文件的详细教程

    PyInstaller是一个跨平台的Python应用打包工具,能够把 Python 脚本及其所在的 Python 解释器打包成可执行文件,下面这篇文章主要给大家介绍了关于使用pyinstaller打包.exe文件的相关资料,需要的朋友可以参考下

  5. 基于Python实现射击小游戏的制作

    这篇文章主要介绍了如何利用Python制作一个自己专属的第一人称射击小游戏,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起动手试一试

  6. Python list append方法之给列表追加元素

    这篇文章主要介绍了Python list append方法如何给列表追加元素,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

  7. Pytest+Request+Allure+Jenkins实现接口自动化

    这篇文章介绍了Pytest+Request+Allure+Jenkins实现接口自动化的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

  8. 利用python实现简单的情感分析实例教程

    商品评论挖掘、电影推荐、股市预测……情感分析大有用武之地,下面这篇文章主要给大家介绍了关于利用python实现简单的情感分析的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下

  9. 利用Python上传日志并监控告警的方法详解

    这篇文章将详细为大家介绍如何通过阿里云日志服务搭建一套通过Python上传日志、配置日志告警的监控服务,感兴趣的小伙伴可以了解一下

  10. Pycharm中运行程序在Python console中执行,不是直接Run问题

    这篇文章主要介绍了Pycharm中运行程序在Python console中执行,不是直接Run问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

返回
顶部