美文网首页
Python函数进阶

Python函数进阶

作者: Biomamba生信基地 | 来源:发表于2023-07-12 17:35 被阅读0次

写在前面

此前我们已经对Python函数进行了初步介绍(Python函数与方法),这里我们再补充一些内容,能够帮助大家构建更复杂的函数。

一、多返回值函数

在特定场景与功能下的函数需要返回多个结果变量的值,可以如下定义:

def multi_return():
    return 'Value1','Value2','Value3'
multi_return()
## ('Value1', 'Value2', 'Value3')
# 返回值也可以用多个变量去接收
my_x, my_y, my_z = multi_return()
print(my_x)# 变量值会被分别接收
## Value1

二、参数

10.2.1 关键字参数

我们之前在第八讲中所写的函数都需要参数有一个对应的顺序(即位置参数),如果通过关键字参数键=值的形式让关键字与参数一一对应,这样即使参数的顺序打乱,也不会相互混淆。

def my_return(value1,value2):
    print(f"第一个参数{value1}比第二个参数{value2}要小")
# 正常使用:
my_return(1,2)

## 第一个参数1比第二个参数2要小
# 倒过来使用就不对了
my_return(2,1)

## 第一个参数2比第二个参数1要小
# 通过关键字参数的使用,可以保证输入顺序打乱的同时结果不乱
my_return(value2 = 2,value1 = 1)

## 第一个参数1比第二个参数2要小

10.2.2 缺省参数

即函数中的一些参数可以具有预设值,当用户没有给定值时,该参数也有对应值而不会报错

def my_return(value1=1,value2=2,value3=3):
    print(f"第一个参数为{value1}。第二个参数为{value2}。第三个参数为{value3}")
my_return(value1=5) #可以看到我们并没有给函数后面两个参数,但后面两个参数仍可正常输出
## 第一个参数为5。第二个参数为2。第三个参数为3

需要注意的是,缺省参数必须 在定义时放在最后,否则会有如下报错:

def my_return(value1=1,value2=2,value3): 
   print(f"第一个参数为{value1}。第二个参数为{value2}。第三个参数为{value3}")

SyntaxError: unexpected EOF while parsing (, line 1) IndentationError: unexpected indent (, line 1)

10.2.3 不定长参数

这种情况下传入参数的数量不确定,可以用*来代表这类参数:

# 位置不定长参数:
def my_return(*my_arg):
    print(my_arg)
my_return("Biomamba")
## ('Biomamba',)
my_return("Biomamba_0","Biomamba_1","Biomamba_2") #可以接受任意长度的参数值

## ('Biomamba_0', 'Biomamba_1', 'Biomamba_2')
mytype = type(my_return("Biomamba_0","Biomamba_1","Biomamba_2"))

## ('Biomamba_0', 'Biomamba_1', 'Biomamba_2')
print(mytype) # 不定长参数返回的数据格式是元组
## <class 'NoneType'>
# 关键字不定长参数:
def my_return(**my_arg):
    return my_arg
# 输入时需要关键字与值一一对应
print(my_return(my_arg_1 = "Biomamba_0",my_arg_2 ="Biomamba_1",my_arg_3 ="Biomamba_2"))
# 返回的数据类型自然也就是字典
## {'my_arg_1': 'Biomamba_0', 'my_arg_2': 'Biomamba_1', 'my_arg_3': 'Biomamba_2'}
my_type = type(my_return(my_arg_1 = "Biomamba_0",my_arg_2 ="Biomamba_1",my_arg_3 ="Biomamba_2"))
print(my_type)
## <class 'dict'>

三、匿名函数

10.3.1 将函数作为参数传递

# 定义主函数,其中sub_func为一个子函数
def my_func(sub_func,value1,value2):
    my_result = sub_func(value1,value2)
    return my_result

# 定义两个子函数
# 求和子函数
def my_add(value1,value2):
    temp_add = value1 + value2
    return temp_add
# 求积子函数
def my_mult(value1,value2):
    temp_mult = value1 * value2
    return temp_mult
# 可以看出我们可以通过主函数分别调用两个子函数实现特定功能
print(my_func(sub_func = my_add,value1 = 2,value2= 5))
## 7
print(my_func(sub_func = my_mult,value1 = 2,value2= 5))

## 10

10.3.2 lambda匿名函数

之前我们对函数的介绍均通过def进行定义,这类函数具有名称,可通过名称重复性使用。而lambda关键字可以定义没有名称的函数,匿名函数只可临时使用一次,定义时可省略return
定义形式为:
lambda 传入参数: 函数体(单行代码)

# 定义示例:
lambda value1, value2: value1+value2
# 只可以写一行
## <function <lambda> at 0x000001AFE8C35400>
# 将其应用于我们上面写的myfunc()中
def my_func(sub_func,value1,value2):
    my_result = sub_func(value1,value2)
    return my_result

my_func(sub_func = lambda value1, value2: value1+value2,
       value1 = 2, value2 = 5)
#可以看到my_func成功执行了匿名函数的功能
## 7

往期回顾

生信Python速查手册

Python安装(Windows+Linux)

Python的"Rstudio"——Pycharm

码Python神器:jupyter notebook

一文了解Python基础:字面量、注释、变量、类型、运算符

Python判断语句

Python循环语句

Python函数与方法

一文掌握Python数据容器

如何联系我们

公众号后台消息更新不及时,超过48h便不允许回复读者消息,这里给大家留一下领取资料、免费服务器(有root权限的共享服务器,注册即送200¥)的微信号,方便各位随时交流、提建议(科研任务繁重,回复不及时请见谅)。此外呼声一直很高的交流群也建好了,欢迎大家入群讨论:永久免费的千人生信、科研交流群

大家可以阅读完这几篇之后添加
给生信入门初学者的小贴士
如何搜索公众号过往发布内容

相关文章

  • python进阶

    教程地址:python进阶 - 慕课网 python函数式编程 变量可以指向函数: f = absprint(f)...

  • 三、Python函数基础

    字符串进阶 格式化输出 列表进阶 函数 变量的作用域和global变量 lambda匿名函数 python 使用 ...

  • 诺,你们要的Python进阶来咯!我还没见过比这全面的!

    一、Python进阶初体验——内置函数 Python 中内置有很多常用的函数,这些函数无需从模块中导入,可直接使用...

  • Python进阶语法——函数式编程、模块,面向对象

    一、 Python进阶学习 一、函数式编程 1.1函数式编程 1.2高阶函数 1.2.1 import mathd...

  • Python从入门到精通

    Python语法的三个阶段 Python基础语法函数是编程 Python进阶语法面向对象编程 Python高级语法...

  • python 总结

    python 随笔 关键字 基础 内建函数 技巧 模块 进阶

  • python进阶函数

    文章里的内容出自阅读廖雪峰的python教程总结而得 变量可以指向函数 函数名也可以指向变量 函数作为参数 内建函...

  • python 函数进阶

    函数进阶 目标 函数参数和返回值的作用 函数的返回值 进阶 函数的参数 进阶 递归函数 01. 函数参数和返回值的...

  • python 函数进阶

    函数进阶 目标 函数参数和返回值的作用 函数的返回值 进阶 函数的参数 进阶 递归函数 01. 函数参数和返回值的...

  • Python函数进阶

    一、函数返回值 先看下几个例子: 总结: python函数使用return语句返回 "返回值" 所有函数都有返回值...

网友评论

      本文标题:Python函数进阶

      本文链接:https://www.haomeiwen.com/subject/slepudtx.html