Python学习之路-函数进阶

Python学习之路-函数进阶

参数和返回值的作用

函数根据有没有参数以及有没有返回值,可以相互组合,一共有4 种组合形式:无参数,无返回值;无参数,有返回值;有参数,无返回值;有参数,有返回值。

{ {< admonition tip “提示” true >}}

定义函数时,是否接收参数,或者是否返回结果,是根据实际的功能需求来决定的!如果函数内部处理的数据不确定,就可以将外界的数据以参数传递到函数内部。如果希望一个函数执行完成后,向外界汇报执行结果,就可以增加函数的返回值

{ {< /admonition >}}

不可变和可变的参数

无论传递的参数是可变还是不可变只要针对参数使用赋值语句,会在函数内部修改局部变量的引用**,**不会影响到 外部变量的引用。如果传递的参数是可变类型,在函数内部,使用方法修改了数据的内容,同样会影响到外部的数据

缺省参数

定义函数时,可以给某个参数指定一个默认值,具有默认值的参数就叫做缺省参数调用函数时,如果没有传入缺省参数的值,则在函数内部使用定义函数时指定的参数默认值。函数的缺省参数,将常见的值设置为参数的缺省值,从而简化函数的调用

{ {< admonition tip “提示” true >}}

缺省参数需要使用最常见的值作为默认值!如果一个参数的值不能确定,则不应该设置默认值,具体的数值在调用函数时,由外界传递!

{ {< /admonition >}}

缺省参数的注意事项

缺省参数的定义位置

必须保证带有默认值的缺省参数在参数列表末尾

调用带有多个缺省参数的函数

在调用函数时,如果有多个缺省参数,需要指定参数名,这样解释器才能够知道参数的对应关系!

多值参数

定义支持多值参数的函数,有时可能需要一个函数能够处理的参数个数是不确定的,这个时候就可以使用多值参数。python中有两种多值参数:

  • 参数名前增加 一个 * 可以接收元组
  • 参数名前增加 两个* 可以接收字典

一般在给多值参数命名时,习惯使用以下两个名字:

  • *args —— 存放 元组 参数,前面有一个 *

  • **kwargs —— 存放 字典 参数,前面有两个 *

{ {< admonition tip “提示” true >}}

argsarguments的缩写,有变量的含义,kwkeyword 的缩写,kwargs 可以记忆键值对参数

{ {< /admonition >}}

元组和字典的拆包

在调用带有多值参数的函数时,如果希望:将一个元组变量,直接传递给 args将一个 字典变量,直接传递给 kwargs就可以使用拆包,简化参数的传递,拆包的方式是:在元组变量前,增加一个*在字典变量前,增加两个 *

递归

简介

函数调用自身的编程技巧称为递归

特点

一个函数内部调用自己。函数内部可以调用其他函数,当然在函数内部也可以调用自己

代码特点

  1. 函数内部的代码是相同的,只是针对参数不同,处理的结果不同
  2. 当参数满足一个条件时,函数不再执行

{ {< admonition warning “警告” true >}}

这个非常重要,通常被称为递归的出口,否则会出现死循环!

{ {< /admonition >}}

{ {< admonition tip “提示” true >}}

初次接触递归会感觉有些吃力!在处理不确定的循环条件时,格外的有用,例如:遍历整个文件目录的结构

{ {< /admonition >}}

内置函数

Python 解释器内置了很多函数,可以在任何时候使用,在这里查看具体包含哪些与使用方法。

相关推荐

  1. Python学习-函数

    2024-01-13 22:04:04       65 阅读
  2. Python学习-MySQL

    2024-01-13 22:04:04       44 阅读
  3. Python学习-爬虫:爬虫框架

    2024-01-13 22:04:04       57 阅读
  4. python学习笔记----函数(七)

    2024-01-13 22:04:04       33 阅读
  5. Python函数-柯里化

    2024-01-13 22:04:04       37 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-01-13 22:04:04       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-13 22:04:04       100 阅读
  3. 在Django里面运行非项目文件

    2024-01-13 22:04:04       82 阅读
  4. Python语言-面向对象

    2024-01-13 22:04:04       91 阅读

热门阅读

  1. springboot 注解+AOP实现接口方法出入参打印

    2024-01-13 22:04:04       67 阅读
  2. 力扣labuladong——一刷day91

    2024-01-13 22:04:04       64 阅读
  3. apply、call、bind的区别 如何实现一个bind

    2024-01-13 22:04:04       66 阅读
  4. PC-lint Plus在安全系统中的应用

    2024-01-13 22:04:04       45 阅读
  5. C语言版数据结构与算法pta合集:7-3 括号匹配

    2024-01-13 22:04:04       58 阅读
  6. 【已解决】C语言如何使用宽字符输出中文

    2024-01-13 22:04:04       63 阅读
  7. mysql修复VIEWRESIDENTHIST 数据

    2024-01-13 22:04:04       57 阅读
  8. Linux数据处理的几个命令

    2024-01-13 22:04:04       93 阅读
  9. 教师如何开发期末考试成绩的查询系统

    2024-01-13 22:04:04       65 阅读
  10. xtu oj 1522 格子

    2024-01-13 22:04:04       57 阅读
  11. 标准 C++ 数据类型和 C++/WinRT

    2024-01-13 22:04:04       56 阅读
  12. Android studio GridView应用设计

    2024-01-13 22:04:04       62 阅读