博客
关于我
Python函数
阅读量:140 次
发布时间:2019-02-27

本文共 1595 字,大约阅读时间需要 5 分钟。

Python函数语法

函数定义

函数在Python中通过 def 关键字定义。函数名后面跟着括号内的参数列表,参数之间用逗号分隔。函数体内可以包含任意数目的可执行语句,或者只包含 pass 语句(表示函数为空)。函数可以返回一个值,也可以返回多个值(通过返回多个表达式,结果为元组)。

函数文档注释

为了让函数更易于理解,可以在函数定义时添加文档注释。用三重单引号 ''' 或者 '''' 包围注释内容。

函数体内的返回语句

  • return 语句可以返回一个值或多个值。
  • 如果返回多个值,直接用逗号分隔,返回的值组成一个元组。
  • 返回值可以是变量、表达式或多个操作的结果。

递归函数

递归函数就是在函数体内调用自身。递归需要注意:

  • 递归方向要明确,避免死循环。
  • 递归必须有退出条件,否则会导致无限递归错误。

例如:

def fn(n):      if n == 5:          return fn(n + 1)      elif n == 6:          return fn(n - 1)      else:          return fn(n + 2) - 2 * fn(n + 1)

参数传递

  • 位置参数:函数调用时按照定义顺序传递参数。
  • 关键字参数:函数调用时根据参数名传递值,无需遵循顺序。
  • 混合使用位置参数和关键字参数:关键字参数必须放在位置参数之后。

例如:

def fn(n1, n2, n3):      pass  # 正确调用方式:  x = fn(n1=1, n2=3, n3=6)  y = fn(1, 3, 6)  z = fn(n1=1, n2=3, 6)  # 错误:位置参数和关键字参数混用时,关键字参数必须在位置参数之后  w = fn(1, n2=3, 6)

参数默认值

函数定义时可以为某些参数设置默认值。调用函数时可以选择传递参数值,也可以不传递,系统会使用默认值。

例如:

def say_hello(name="大佬", message="欢迎来到我的博客"):      print(f"{name}, 您好!")      print(f"消息是:{message}")  # 调用方式:  say_hello()  # 所有参数使用默认值  say_hello(name="大佬")  # 只修改name参数  say_hello("小姐姐", "欢迎一起讨论学习")  # 所有参数都传递  say_hello(message="欢迎一起学习Hadoop")  # 只修改message参数  错误示例:  ```python  say_hello(name="哼、妖怪,", message="学习Python")  say_hello("欢迎学习Python", name="妖怪")
  • 第一个错误:关键字参数必须放在位置参数之后。
  • 第二个错误:如果不全部使用关键字参数,则必须按定义顺序传递参数。

局部函数

在函数内部可以定义局部函数。局部函数可以作为常量或变量使用,或者直接调用。

函数递归

除了调用自身之外,函数还可以调用自身的不同版本。

lambda 表达式

lambda 是一个简洁的表达方式,可以定义一个返回值的函数。

ls = [2, 4, 6, 8]  s = lambda a: a ** a  print(s)  # 输出:2^2=4, 4^4=256, 6^6=46656, 8^8=16777216

注意事项:

  • 在 lambda 表达式中,参数列表和返回值之间用冒号分隔。
  • 如果有多个参数,参数之间用逗号分隔。

总结:

Python 的函数语法简单易学,但在实际开发中需要注意参数传递、递归的正确使用以及文档注释的规范性。通过合理使用函数、递归和 lambda,可以提升代码的可读性和效率。

转载地址:http://outb.baihongyu.com/

你可能感兴趣的文章
python基于flask搭建http服务(四)—— Docker容器化部署
查看>>
Python块键盘/鼠标输入
查看>>
python在使用HTMLTestRunner时,报告为空,错误提示<_io.TextIOWrapper name='<stderr>' mode='w' encoding='utf_8'>...
查看>>
python在gpu上运行_【python】python开启GPU加速
查看>>
Python在def函数中使用for循环
查看>>
Python在def函数中使用for循环
查看>>
Python在Conda环境中,但在Windows虚拟环境中没有激活
查看>>
python系列【仅供参考】:python pip 错误 ModuleNotFoundError: No module named pip._internal 解决办法
查看>>
python图像条状状噪声,使用PYTHON PIL从验证码图像中删除背景嘈杂的线条
查看>>
Python图像处理:从内存加载jpeg
查看>>
python固定后缀(名物化词汇)词频统计:抽取+统计+可视化
查看>>
python商品评论数据采集与分析可视化系统 Flask框架 requests爬虫 NLP情感分析 毕业设计 源码
查看>>
python商品数据分析可视化系统(带爬虫)京东销售数据分析 计算机毕业设计 源码下载
查看>>
python商品库存管理系统 django框架 商品网站 MySQL数据库 源码下载 计算机毕业设计
查看>>
Python哪个版本最稳定好用2023.10.19
查看>>
Python和黑客技术的渊源
查看>>
Python和RF编写接口自动化
查看>>
python和js哪个难_【Python】记一次学习,Python 与 js 在实现闭包时的差异
查看>>
python和java哪个更值得学——来自知乎高赞回答
查看>>
python和c混合编程 github_在pycharm中使用git版本管理以及同步github的方法
查看>>