精华内容
下载资源
问答
  • python自定义函数多个返回值
    千次阅读
    2021-02-04 12:01:40

    注意自定义函数:统一文件内函数名称不能相同。

    单返回值

    语法结构:

    def function_name([para1,para2...]):

    code...

    code...

    ...

    return value--------------可以返回一个值

    eg:

    def test_c(n1,n2):-------------函数定义

    n=n1+n2

    return n

    sum1=test_c(100,102)----------函数调用同时传入实参----最好不要用sum,因为sum为关键字

    print 'sum1=',sum1

    sun1用于接受函数的返回值。自定义函数有返回值,在调用的时候要有变量来存放or接受返回值

    多返回值

    eg:

    语法结构:

    def function_name([para1,para2...]):

    code...

    code...

    ...

    return value1,value2,value3...--------------可以返回多个值,逗号间隔

    eg:

    def test_d(n1,n2):

    n=n1+n2

    m=n1*n2

    p=n1-n2

    e=n1**n2

    return n,m,p,e

    sum1,multi,plus,pow=test_d(2,10)-----------最好用这种形式

    print sum1,multi,plus,pow

    必须有相同个数的变量来存放函数的返回值。

    如果主调函数只有一个变量,则改变量存放的是元组。

    eg:

    re=test_d(2,10)

    print re

    得到的结果为:

    (12,20,-8,1024)-----括号包围的是元组

    print re[0],re[1],re[2],re[3]---------------用来打印元组的元素

    更多相关内容
  • python中自定义的函数,有的有返回值,有的没有返回值,且返回值的类型也需注意。 1、无返回值 例如 list 的 append 操作就是无返回值的,换句话说就是不能...自定义函数返回值是 list/tuple,或者单个变量, ...

    python中自定义的函数,有的有返回值,有的没有返回值,且返回值的类型也需注意。

    1、无返回值
    例如 list 的 append 操作就是无返回值的,换句话说就是不能进行如下的连续操作:
    list = []
    list.append(1).append(2)

    2、返回值的类型
    自定义函数的返回值是 list/tuple,或者单个变量,或者返回生成器、map类型,有时候需要转化为list、tuple等使用。
    例如 plt.plot(…) 就返回一个 plot 对象的 list。
    很多函数可能需要返回多个值,所以就会返回 tuple 作为数据类型,但很多时候其返回的 tuple 中又只有一个元素,此时就加逗号,
    line, = ax.plot(Data[0, 0], Data[0, 1],color = ‘red’,lw = 1.5, label = ‘Pos’)

    3、python 连接数据库后,读取的数据用fetchall()获取得到的是tuple,在语法上,返回一个tuple是可以省略括号的,而多个变量可以同时接收一个tuple,按位置赋给对应的值。
    元组tuple的好处,相对于 list 而言,tuple 是不可变的,这使得它可以作为 dict 的 key,或者扔进 set 里,而 list 则不行。tuple 放弃了对元素的增删(内存结构设计上变的更精简),换取的是性能上的提升:创建 tuple 比 list 要快,存储空间比 list 占用更小。所以就出现了“能用 tuple 的地方就不用 list”的说法。多线程并发的时候,tuple 是不需要加锁的,不用担心安全问题,编写也简单多了。
    创建和访问一个元组如果创建一个空元组,直接使用小括号即可;如果要创建的元组中只有一个元素,要在它的后面加上一个逗号‘,’。
    直接在同一个元组上更新是不可行的,但是可以通过拷贝现有的元组片段构造一个新的元组的方式解决。
    通过分片的方法让元组拆分成两部分,然后再使用连接操作符(+)合并成一个新元组,最后将原来的变量名(temp)指向连接好的新元组。在这里就要注意了,逗号是必须的,小括号也是必须的!
    如下示例:
    temp = (“龙猫”,“泰迪”,“叮当猫”)
    temp = temp[:2] + (“小猪佩奇”,)+temp[2:]
    print(temp)
    (‘龙猫’, ‘泰迪’, ‘小猪佩奇’, ‘叮当猫’)
    删除元组中的元素:对于元组是不可变的原则来说,单独删除一个元素是不可能的,当然你可以利用切片的方式更新元组,间接的删除一个元素。如下示例:
    temp = (‘龙猫’, ‘泰迪’, ‘小猪佩奇’, ‘叮当猫’)
    temp = temp[:2] + temp[3:]
    print(temp)
    (‘龙猫’, ‘泰迪’, ‘叮当猫’)
    在日常中很少用del去删除整个元组,因为Python的回收机制会在这个元组不再被使用的时候自动删除。成员关系操作符 in 和 not in 也可以直接应用在元组上,这跟列表是一样的。

    4、list的特点如下:
    1.可以用list()函数或者方括号[]创建,元素之间用逗号’,‘’分隔。
    2.列表的元素不需要具有相同的类型
    3.使用索引来访问元素
    4.可切片
    在这里插入图片描述
    元组tuple和列表list可以互相转化,分别用tuple(seq)和list(seq)实现。
    行列增加:list=[1,2,3]
    df=df.append(list) 表现出的是列增加,list.append()方法仅适用于向后面添加元素,参数可以是任何东西,将作为元素添加到列表尾部;而list.extend()可以适用多个元素在一个列表的方法进行扩展原列表,参数是序列,序列中的元素将逐项添加到列表的尾部。我们从字面的意思也可以看出来。append是添加(一个),extend是扩展(多个)。

    展开全文
  • 在上一篇《手把手陪您学Python》27——自定义函数的参数中,我们学习了自定义函数参数的几种类型。在本篇中,我们将学习自定义函数返回值,并介绍返回值的应用。 我们已经知道,自定义函数是一以关键字def开头...

    在上一篇《手把手陪您学Python》27——自定义函数的参数中,我们学习了自定义函数参数的几种类型。在本篇中,我们将学习自定义函数的返回值,并介绍返回值的应用。

    我们已经知道,自定义函数是一个以关键字def开头、关键字return结尾的代码块。其中的return就是返回返回值的关键字。

    在前两篇文章中,虽然没有重点讲解,但其实在实例中已经列举了几个使用return返回值的情况,比如返回投骰子的结果,返回胜利者的名字,返回求和或者面积计算的结果等等。

    但我们也发现,并不是每一个自定义函数都有返回值的,比如上篇文章中不定长参数的几个实例中,自定义函数就只有def关键字,而没有return关键字。这时,自定义函数只会执行到函数的最后一个命令行(如不定长参数实例中的打印)就结束了,不会再给主程序返回任何结果,或者说只返回控制None。

    由于上面两种情况,一种比较简单,只有一个返回值,之前也有实例介绍;另一种不涉及返回值和return语句,也不过多介绍了。今天,我们重点要讲解的是如何返回多个值,这也是我们在后面数据分析中经常需要使用到的一种Python特性。

    有一个非常简单的实例可以展示如何返回多个值:

    In [1]: def f(): 
                a = 1
                b = 2
                c = 3
                return a, b, c
    
            a, b, c = f()
            print(a, b, c)
    
    Out[1]: 1 2 3

    在这个实例中,自定义函数f()实现了两个目的,一个是定义abc的值,另一个是将abc的值进行返回。

    主程序中最重要的一行命令是将abc赋值,并且是与函数的返回值按照顺序一一对应地进行赋值。虽然这里使用的变量名称是一样的,实际上,赋值的过程并不是按照变量名称进行赋值的,关键还是顺序。比如我们可以将变量名称及顺序稍微修改一下,看看会发生什么?

    In [2]: def f():
                a = 1
                b = 2
                c = 3
                return a, b, c
    
            b, a, d = f()
            print(b, a, d)
    
    Out[2]: 1 2 3

    我们可以看到,虽然变量名称和顺序发生了改变,但结果仍然是按照返回值的顺序赋值并打印出来的,而没有受到变量名称或者位置的调整而进行改变。

    那么,从返回值的这一个特性,不知道大家是否可以联想到我们之前学习过的一种数据结构?没错,就是元组,一种固定长度且不可变的数据结构。

    所以,看起来函数返回的是多个值,但实际上返回的只是一个对象,这个对象就是元组。于是,上面的实例中的返回值就可以用一个变量名来接收了。赋值后的变量就是一个元组了,也就具备了元组的所有特性为我们所用了。

    In [3]: def f():
                a = 1
                b = 2
                c = 3
                return a, b, c
    
            tup = f()
            print(tup)
    
    Out[3]: (1, 2, 3)

    除了元组,自定义函数还可以通过字典的方式返回多个值。

    In [4]: def f():
                a = 1
                b = 2
                c = 3
                return {'A': a, 'B': b, 'C': c}
    
            dic = f()
            print(dic)
            print(dic['C'])   # 可以应用字典的各类特性
    
    Out[4]: {'A': 1, 'B': 2, 'C': 3}
            3

    返回多个值的方法当然也少不了列表了。

    In [5]: def f():
                a = 1
                b = 2
                c = 3
                return [a, b, c]
    
            lst = f()
            print(lst)
    
    Out[5]: [1, 2, 3]

    目前,我们已经介绍了通过元组、字典、列表等形式返回值的几种情况,在我们所学习过的数据结构中,还缺少一种形式,那就是集合。我们已经知道,集合与其他集中数据结构最大的不同就是不包含重复值。所以,让我们看一下,如果函数以集合的方式返回值,并且返回值中包括重复元素时会发生什么?

    In [6]: def f():
                a = 1
                b = 1
                c = 3
                return {a, b, c}
    
            set = f()
            print(set)
    
    Out[6]: {1, 3}

    正如我们所想的,如果自定义函数的结果中包括重复元素,再以集合的方式返回值,那么重复的元素就会被剔除,返回不包含重复元素的集合。

    以上就是自定义函数返回多个返回值的几种情况。

    其实,除了第一个实例中是按照顺序给多个不同的变量赋值以外,其他返回多个值的方式,就是在return语句中,通过不同的数据结构,将多个返回值“打包”而已。

    如果将这个过程换个方式进行展示,大家就更好理解了。同样还是通过字典返回多个值的实例。

    In [7]: def f():
                a = 1
                b = 2
                c = 3
                dic = {'A': a, 'B': b, 'C': c}
                return dic
    
            dic = f()
            print(dic)
    
    Out[7]: {'A': 1, 'B': 2, 'C': 3}

    通过将多个返回值提前“打包”的方式,多个返回值最后就变成了一个返回值的情况。

    所以,知道了这个道理,多个返回值就没有什么神秘的了,只不过是少了一行语句,显得更炫酷罢了。

    以上就是我们对自定义函数返回值的介绍,虽然形式多样,但关键还是要找到我们最为适合的方式,将一个或者多个值从自定义函数中返回到我们需要的代码行中。

    至此,关于自定义函数部分的介绍就告一段落了。

    因为函数实在是太重要了,虽然自定义函数介绍完了,但我们还不能离开函数,下一篇,我们将会介绍一种特殊的函数,叫做“匿名函数”,敬请关注。

     

     


    感谢阅读本文!如有任何问题,欢迎留言,一起交流讨论^_^

    要阅读《手把手陪您学Python》系列文章的其他篇目,请关注公众号点击菜单选择,或点击下方链接直达。

    《手把手陪您学Python》1——为什么要学Python?

    《手把手陪您学Python》2——Python的安装

    《手把手陪您学Python》3——PyCharm的安装和配置

    《手把手陪您学Python》4——Hello World!

    《手把手陪您学Python》5——Jupyter Notebook

    《手把手陪您学Python》6——字符串的标识

    《手把手陪您学Python》7——字符串的索引

    《手把手陪您学Python》8——字符串的切片

    《手把手陪您学Python》9——字符串的运算

    《手把手陪您学Python》10——字符串的函数

    《手把手陪您学Python》11——字符串的格式化输出

    《手把手陪您学Python》12——数字

    《手把手陪您学Python》13——运算

    《手把手陪您学Python》14——交互式输入

    《手把手陪您学Python》15——判断语句if

    《手把手陪您学Python》16——循环语句while

    《手把手陪您学Python》17——循环的终止

    《手把手陪您学Python》18——循环语句for

    《手把手陪您学Python》19——第一阶段小结

    《手把手陪您学Python》20——列表

    《手把手陪您学Python》21——元组

    《手把手陪您学Python》22——字典

    《手把手陪您学Python》23——内置序列函数

    《手把手陪您学Python》24——集合

    《手把手陪您学Python》25——列表推导式

    《手把手陪您学Python》26——自定义函数

    《手把手陪您学Python》27——自定义函数的参数

    For Fans:关注“亦说Python”公众号,回复“手28”,即可免费下载本篇文章所用示例语句。

    亦说Python——Python爱好者的学习分享园地

     

    展开全文
  • Python自定义函数需要注意的问题

    千次阅读 2020-12-16 15:23:23
    Python自定义函数需要注意的问题:1.缩进。一语句块要用相同的缩进,两缩进相同的逻辑行可以看做可以并列的关系,不可能是所属关系。return需要跟for对齐,否则 2.遍历。range(n) 代表的是从0开始,遍历到n-1,...

    Python自定义函数需要注意的问题:

    1.缩进。一个语句块要用相同的缩进,两个缩进相同的逻辑行可以看做可以并列的关系,不可能是所属关系。

    return需要跟for对齐,否则

    2.遍历。range(n) 代表的是从0开始,遍历到n-1,步长为1

    range(1,n+1) 代表从1开始,遍历到n 步长为1

    range(1,n+1,2)代表从1开始,遍历到n 步长为2、

    3.自定义函数后可以返回一个值(return)

    return保留字用来传递返回值

    函数可以有返回值也可以没有

    可以有return 也可以没有

    4.双参数 可变参数传递 B表达不确定的因素

    如果 for j in n

    #加上代表不确定给的数值,但是不加会返回错误,会把n看做int类型

    如果for range in(1,n)

    则不需要加,示例如下

    HR0cHM6Ly9ibG9nLmNzZG4ubmV0L3N1cGVyX2hvbmc=,size_16,color_FFFFFF,t_70)

    定义了2个参数 但是给了3个值????不确定怎么处理

    6.局部变量与全局变量

    基本数据变量

    规则一:局部变量和全局变量是不同的变量

    局部变量是函数内部的占位符 与全局变量可能重名但不同

    函数运算结算后 局部变量被释放

    用global在局部变量中使用全局变量—声明

    n,s=10,100 =====— ns为全局变量

    def fact(n): =====— 局部变量

    s=1 =====—局部变量

    for i in range(1,10): 局部变量

    s*=I =====— 局部变量

    return s =====—局部变量

    print(fact(n),s) =====— 此时S是全局变量

    》》》362880 100

    注意:fact(n) 只有被return才能被传递

    如果不return print(fact(n))为None

    如果在函数内部使用全局变量 用global

    n,s=10,100 =====— ns为全局变量

    def fact(n): =====— 局部变量

    *global s =====—全局变量*

    for i in range(1,10): 局部变量

    s*=I =====— 局部变量

    return s =====—局部变量

    print(fact(n),s) =====— 此时S是全局变量

    》》》36288000 36288000

    规则二:局部变量是组合数据类型并且未创建,等同于全局变量

    ls=[“f”,“F”]

    def func(s):

    ls.append(s) append 指的是ls新增一个s

    return

    func(1)

    print(ls)

    》》》[‘f’, ‘F’, 1]

    因为ls在函数中没有真实创建 所以 在函数中的ls等于全局变量

    但是如果在函数中真实创建了ls 则返回的是全局变量 见下例

    ls=[“f”,“F”]

    def func(s):

    ls=[] 真实创建了ls

    ls.append(s)

    return

    func(1)

    print(ls)

    》》》[‘f’, ‘F’]

    总结:如果组合数据类型在函数中被真是创建 则不同于全局变量 如果函数结束 局部变量即被释放。如果组合类型没有真实创建 则等同于全局变量

    7、Lambda函数

    能够返回函数名作为结果

    Lamda 保留自定义 函数名是返回结果

    Lamda 参数:表达式

    f=lamda x,y:x+y

    f(1,2)

    3

    应用:一般使用 def return 谨慎使用lambda 主要用于特定函数或方法的参数

    有固定使用方式

    单元小结:

    Def 定义函数 lambda定义匿名函数

    可选参数 注意 定义时要赋予初值 名称的参数传递

    Return 返回多个结果

    保留字global声明全局变量

    基本数据类型和组合数据类型的规则

    Python-lambda匿名函数,以及filter、map、reduce、apply函数

    转载自链接:

    http://www.360kuai.com/pc/97528ae9851744087?cota=4&kuai_so=1&sign=360_a9931de8&refer_scene=so_1

    lambda 匿名函数

    lambda 函数的语法比较简单,形式为:lambda 参数列表: 表达式

    sum = lambda x,y:x+y

    sum(6+9)

    filter 函数

    功能: filter的功能是过滤掉序列中不符合函数条件的元素,当序列中要删减的元素可以用某些函数描述时,就应该想起filter函数。

    调用: filter(function,sequence),function可以是匿名函数或者自定义函数,它会对后面的sequence序列的每个元素判定是否符合函数条件,返回True或者False,从而只留下True 的元素;sequence可以是列表、元组或者字符串。

    例子:

    x = [1,2,3,4,5]

    list(filter(lambda x:x%2==0,x)) # 找出偶数。python3.*之后filter函数返回的不再是列表而是迭代器,所以需要用list转换。

    输出:

    [2, 4]

    map 函数

    功能: 求一个序列或者多个序列进行函数映射之后的值,就该想到map这个函数,它是python自带的函数,在python3.*之后返回的是迭代器,同filter,需要进行列表转换。

    调用: map(function,iterable1,iterable2),function中的参数值不一定是一个x,也可以是x和y,甚至多个;后面的iterable表示需要参与function运算中的参数值,有几个参数值就传入几个iterable。

    例子:

    x = [1,2,3,4,5]

    y = [2,3,4,5,6]

    list(map(lambda x,y:(x*y)+2,x,y))

    输出:

    [4, 8, 14, 22, 32]

    reduce 函数

    功能: 对一个序列进行压缩运算,得到一个值。但是reduce在python2的时候是内置函数,到了python3移到了functools模块,所以使用之前需要 from functools import reduce

    调用: reduce(function,iterable),其中function必须传入两个参数,iterable可以是列表或者元组

    例子:

    x=[1,2,3,4,5]

    from functools import reduce

    reduce(lambda x,y: x+y, x)

    apply 函数

    功能: 是pandas中的函数,应用对象为pandas中的DataFrame或者Series。大致有两个方面的功能:一是直接对DataFrame或者Series应用函数,二是对pandas中的groupby之后的聚合对象apply函数

    调用: apply(function,axis),function表明所使用的函数,axis表明对行或者列做运算

    例子:

    import numpy as np

    import pandas as pd

    a = np.random.randint(low=0,high=4,size=(2,4))

    data = pd.DataFrame(a)

    data.apply(lambda x:x*10)

    简而言之,filter和map都是python内置的函数,可以直接调用,reduce在functools模块,apply在pandas模块。

    想知道当前程序或是进程运行到某个地方时,内存里有哪些变量,获取他们的name 列表:

    dir()

    删除单个变量

    del x # 删除变量 x

    展开全文
  • python 自定义函数

    千次阅读 2022-02-17 10:27:09
    python自定义函数一、函数定义二、函数参数三、函数嵌套四、函数变量作用域五、闭包 一、函数定义 # 定义一函数 def my_func(input_text): print(input_text) my_func('hello world') # hello world # 其中 ...
  • Python函数 返回多个

    千次阅读 2022-02-06 18:49:48
    Python函数 返回多个
  • Python入门之十:自定义函数2年前阅读 5675评论 0喜欢 0### 一、函数的定义语法如下,依赖上下文缩进对齐:```def 函数名(参数列表):函数体```例如下面的代码:```python#!/usr/bin/envdef demo(num):print(num)demo...
  • Python自定义函数学习

    2022-02-09 20:12:50
    python学习之自定义函数
  • 版权声明:版权声明:本文为博主原创文章,未经博主允许不得转载。...我们使用python开发时,自定义函数 有时候需要返回多个值,可能是多个数值、字符串也有可能是多个列表,那么如何返回;返回之后 在调...
  • 这里是三岁,来和大家唠唠自定义函数,这一神奇的东西,带大家白话玩转自定义函数 自定义函数,编程里面的精髓! def 自定义函数的必要函数:def 使用方法: def 函数名(参数1,参数2,参数…): 函数体(语句...
  • python函数返回值

    2022-06-20 18:56:56
      实际开发过程中,经常会遇到很完全相同或者非常相似的操作,这时,可以将实现类似操作的代码封装为函数,然后在需要的地方调用该函数。...下面我们来介绍一下python函数返回值相关内容。 ...
  • 函数返回值简介1、简单介绍print和return的区别,print仅仅是打印在控制台,而return则是将return后面的...如果一个函数没有reutrn语句,其实它有一隐含的return语句,返回值是None,类型也是'NoneType'。.def fu...
  • 17.python自定义函数

    千次阅读 2020-12-05 13:49:35
    标签:什么是函数,函数说白了就是将一系列代码封装起来,实现代码的重用。...自定义函数知道了函数是干什么用的之后,我们就开始学习自定义函数,也就是动手来造这神奇的机器。看代码示例:defd...
  • Python自定义函数

    2020-11-20 18:29:05
    1定义阶段只检测语法,不执行代码2函数返回值return返回值没有任何类型限制,返回多个数据需要用元组包上return({'a':1,1,'a',[1,2]})return的效果有终止函数的执行,只能返回一次值3形参与实参def func(x,y): 形参func...
  • 这里写目录标题怎么调用定义def()函数多个返回值的其中一个返回值 怎么调用定义def()函数多个返回值的其中一个返回值 下面展示一些 内联代码片。 def data(): a=10 b=20 return a,b if __name__ == '__main__...
  • python自定义函数 用法总结
  • 引荐教程:《python视频教程》python自定义函数实例有哪些?python自定义函数实例有:1、什么是函数?函数是构造好的,可反复使用的,用来完成单一,或相干联功用的代码段。函数能进步运用的模块性,和代码的反复...
  • 函数返回值

    2020-11-24 09:17:24
    然后被调用的函数中的内容会依次被执行,但是我们有的时候需要的不只是执行的步骤,我们还需要获取到函数中的一些变量,因此我们在使用函数的时候还可以增添一个返回值来获取函数中的一些数据。1. 语法结构Python中...
  • Python 自定义函数和参数类型

    千次阅读 2021-08-27 10:36:38
    Python 提供了很内置函数如 set(), print() 等,用户也可以自己创建函数,这类函数被称为自定义函数。 函数由关键字 def 开头,函数名字后面在括号里面传入参数,函数里面用 return 关键字返回值,如果没有 ...
  • python中如何定义函数返回值

    千次阅读 2020-11-29 14:00:28
    返回值简介:简单介绍print和return的区别,print仅仅是打印在控制台,而return则是将...如果一个函数没有reutrn语句,其实它有一隐含的return语句,返回值是None,类型也是'NoneType'。return语句的作用:结...
  • Python函数能返回多个值吗

    千次阅读 2020-11-22 16:58:45
    函数体内部的语句在执行时,一旦执行到...Python中的函数是可以返回多个值的。比如在游戏中经常需要从一个点移动到另一个点,给出坐标、位移和角度,就可以计算出新的新的坐标:import mathdef move(x, y, step, an...
  • python中,想要调用自定义函数必须先声明,然后才能调用。使用函数时,只要按照函数定义的形式,向函数传递必需的参数,就可以调用函数完成相应的功能或者获得函数返回的处理结果。(1)声明函数python中使用 def ...
  • return 自定义返回值 作用: 将函数内部的数据返回到函数的外部,返回到函数的调用处; 语法: return 定义在函数的内部...5.函数/return可以返回0个或多个结果 return 可以接6大标准数据类型 , 还可以接函数和类对象
  • 主要介绍了Python自定义函数定义,参数,调用代码解析,具有一定借鉴价值,需要的朋友可以参考下。
  • python在回调函数中获取返回值的方法python中有用到回调函数的时候,而回调函数又需要返回数值的时候,就需要先将所被传为回调函数函数先赋值给一变量,然后等回调结束之后,将这变量取值回来就可以了。...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 49,441
精华内容 19,776
关键字:

python自定义函数多个返回值