精华内容
下载资源
问答
  • 无返回值的自定义函数
    2022-01-12 11:21:56

    python自定义函数,在返回值之前,不能print该值,否则会返回null。

    更多相关内容
  • 在本篇中,我们将学习自定义函数返回值,并介绍返回值的应用。 我们已经知道,自定义函数是一个以关键字def开头、关键字return结尾的代码块。其中的return就是返回返回值的关键字。 在前两篇文章中,虽然没有...

    在上一篇《手把手陪您学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爱好者的学习分享园地

     

    展开全文
  • 自定义函数,基本规则3.语法4.参数4.1必备参数4.2默认参数4.3不定长参数4.4匿名参数5.函数举例代码 1.函数定义 函数是组织好的,可重复使用的,用来实现功能的代码段。 2.自定义函数,基本规则 1.以 def 关键词开头...
  • SQL Server 2000 允许用户创建自定义函数自定义函数可以有返回值自定义函数分为:标量值函数或表值函数 如果 RETURNS 子句指定一种标量数据类型,则函数为标量值函数。可以使用多条 Transact-SQL 语句定义标量...
  • linux shell 可以用户定义函数,然后在shell脚本中可以随便调用。下面说说它的定义方法,以及调用需要注意那些事项
  • 函数(有返回值) 和 存储过程(一定不能有返回值)的区别是:有无返回值! 查看所有存储过程和函数: select name from mysql.proc where db=‘stu’ and type=‘function’ select name from mysql.proc where ...

    函数(有返回值)   和   存储过程(一定不能有返回值)的区别是:有无返回值!

    查看所有存储过程和函数:

    select name  from  mysql.proc where  db=‘stu’  and type=‘function’

    select name  from  mysql.proc where  db=‘stu’  and type=‘procedure’

     

    查看存储过程和定义的函数:

    show create function  函数名;

    show procedure  存储过程名;

     

    查看存储过程和函数的信息:

    show function  status   [like   '  '];

    show procedure   status   [like   '  '];

     

    删除 : drop  function/procedure  if exists   函数名;

    一、函数

    1.1   没有形参的函数

    delimiter  $$          (将函数语句中的分隔符先由‘;’改为‘$$’)

    create function  函数名( ) returns  返回值类型  (不是return)

    begin

            函数体;               (函数语句集,使用@  定义变量)                              

            return  val;                                                                              (只能是一个值)    

    end  $$

    delimiter  ;                                                                                     (将函数语句中的分隔符再改回‘;’)

     

    select   函数名( );                                                                         -------------------直接调用函数 即可得到返回值

     

    变量定义:

    用户变量(相当于全局变量),在函数外边定义;例如   set  @s=1;set表示赋值的意思。

    局部变量在函数内部定义,例如  declare a[变量名] int[变量类型];

     局部变量的赋值方式有 2 种:set s=(select  语句)    或者      select 语句 into a[变量名];

     

    查看变量:select  @s;(相当于print)

    1.2 包含形参的函数

    create function  函数名(形参名1   类型1,形参名2   类型2) returns  返回值类型 

    函数体中使用的函数语句集,例如:

                   select age from table91 where id= 形参名1          

     

    调用:函数名(实参1,实参2);

    二、存储过程(用的比函数多)

    2.1 无参数存储过程

    将函数中function改为procedure 即可,且无返回值!

    调用:call 存储过程名();

    2.2 有参数的存储过程

    存储过程的参数分为三类(输入in;输出 out;即可输入有可以输出 inout)

    in(只能进去):          外部传递给形参的值在存储过程内部可以直接使用;

                                          存储过程函数的内部对形参的修改不影响外部的实参值。

     

    out(只能出来):        外部实参传递给形参的值在存储过程内部不可用;

                                         外部调用函数时 ,必须传入变量,传常量会报错!

                                         存储过程函数的内部对形参的修改会影响(修改)外部的实参值。

     

        例如 create procedure proc_name (out   age    int)

     

     

    展开全文
  • python 自定义函数返回值

    千次阅读 2022-01-11 11:06:14
    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是扩展(多个)。

    展开全文
  • 返回值类型 函数名 (参数列表) { 函数体语句 return表达式 } 例子,实现一个加法函数,功能 传入两个整型数据,计算数据相加的结果,并返回 返回值类型 int 函数名 add 参数列表 (int num1, int num2) ...
  • 自定义函数简介自定义函数:用户自定义函数(user-defined function,UDF)是一种对MySQL扩展的途径,其用法与内置函数相同自定义函数的两个必要条件:(1)参数 (2)返回值自定义函数:创建自定义函数...
  • C++自定义函数返回值

    2020-10-31 17:05:11
    #include <iostream> #include <string> #include <Windows.h> using namespace std; double light_year(double w ) { w = w * 63240; return w; } int main(void) { ... light_year
  • 本文实例讲述了Python学习笔记之自定义函数用法。分享给大家供大家参考,具体如下: 函数能提高应用的模块性,和代码的重复利用率。Python提供了许多内建函数,比如print()等。也可以创建用户自定义函数。 函数定义 ...
  • PL/SQL中的过程和函数(通常称为子程序)是PL/SQL块的一种特殊的类型,这种类型的子程序可以以编译的形式存放在数据库中,并为后续的程序块调用。 相同点: 完成特定功能的程序 不同点:是否用return语句返回值。 ...
  • shell中的自定义函数返回值

    千次阅读 2018-12-05 04:19:20
    shell中的自定义函数 直接看截图和代码吧,一目了然! #!/bin/bash #如下语句会报错,因为在调用test1函数之前要先声明test1函数 #也就是说,函数的调用语句要放在函数的声明的后面(调用函数语句的位置要...
  • C/C++自定义函数返回值

    千次阅读 2019-04-04 08:45:11
    2、调用的子函数没有返回值,用void,否则会报错子函数没有返回值。 ①有返回值 根据返回值类型来定义为int,并且在子函数结尾一定要写上return result(需要返回的值) int main中需要定义一个新的变量去接收子...
  • Python自定义函数需要注意的问题

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

    千次阅读 2021-01-19 01:07:50
    函数含义和存储过程基本一致函数和存储...对于存储过程来说可以返回参数,如记录集,而函数只能返回值或者表对象。函数只能返回一个变量;而存储过程可以返回多个。存储过程的参数可以有IN,OUT,INOUT三种类型,而...
  • linux shell 可以用户定义函数,然后在shell脚本中可以随便调用。下面说说它的定义方法,以及调用需要注意那些事项
  • Oracle自定义函数记录

    千次阅读 2021-04-30 10:33:51
    用户自定义函数是存储在数据库中的代码块,可以把值返回到调用程序。函数的语法:Create [or replace] function function_name [in datatype,out datatype, in out datatype]Return datatypeIs|as……..函数:1、...
  • 在定义函数时,函数名后面括号中的参数列表是用户在调用函数时用来将数据传递到函数内部的接口,而函数的返回值则将函数执行后的结果...前面讲解了php自定义函数的参数在函数间传递的三种方式,这里我们主要讲解ph...
  • 注意自定义函数:统一文件内函数名称不能相同。单返回值语法结构:def function_name([para1,para2...]):code...code......return value--------------可以返回一个值eg:def test_c(n1,n2):-------------函数定义n=...
  • javaScript中函数无返回值时,函数默认返回undefined
  • 本文实例讲述了mysql自定义函数原理与用法。分享给大家供大家参考,具体如下: 本文内容: 什么是函数 函数的创建 函数的调用 函数的查看 函数的修改 函数的删除 首发日期:2018-04-18 什么是函数: 函数...
  • 自定义函数(user-define function, UDF)作用就像是MySQL固有的函数一样去创建一个新的函数去扩展MySQL,也就是说UDF是MySQL功能的一个扩展语法创建create function 函数名称(参数列表)returns 返回值类型函数体...
  • C语言自定义函数

    千次阅读 2021-05-18 09:40:58
    C语言自定义函数C语言一共只有32个关键字,9种控制语句,程序书写自由。那么大家知道C语言自定义函数是什么呢?下面一起来看看!函数是一段可以重复使用的代码,用来独立地完成某个功能,它可以接收用户传递的数据,也...
  • 在python中,想要调用自定义函数必须先声明,然后才能调用。使用函数时,只要按照函数定义的形式,向函数传递必需的参数,就可以调用函数完成相应的功能或者获得函数返回的处理结果。 (1)声明函数 python中使用 ...
  • 微信小程序,自定义函数,带两个参数,每次传递都是not defined,另外返回的值怎么调用? 自定义了一个函数,用来比较两个日期的前后,后一个大于前一个时“未逾期”,反馈true,否则“已逾期”,反馈false。 ...
  • linux shell 可以用户定义函数,然后在shell脚本中可以随便调用。下面说说它的定义方法,以及调用需要注意那些事项。一、定义shell函数(define function)语法:[ function ] funname [()]{action;[return int;]}说明...
  • //返回值可以根据函数的需要 } 函数名是函数自身的一个引用。此种方式创立的函数引用是独立存在的,无法删除。 1、调用函数函数名(参数列表)。 传递的参数不必与函数定义的参数个数一致,并且可以设定函数参数的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 333,907
精华内容 133,562
热门标签
关键字:

无返回值的自定义函数