精华内容
下载资源
问答
  • 在定义函数时,函数名后面括号中的参数列表是用户在调用函数时用来将数据传递到函数内部的接口,而函数的返回值则将函数执行后的结果返回给调用者。如果函数没有返回值,就只能算一个执行过程。只依靠函数做一些事情...

    在定义函数时,函数名后面括号中的参数列表是用户在调用函数时用来将数据传递到函数内部的接口,而函数的返回值则将函数执行后的结果返回给调用者。如果函数没有返回值,就只能算一个执行过程。只依靠函数做一些事情还不够,有时更需要在脚本程序中使用函数执行后的结果。由于变量的作用域的差异,调用函数的脚本程序不能直接使用函数体里面的信息。前面讲解了php自定义函数的参数在函数间传递的三种方式,这里我们主要讲解php自定义函数的返回值。通常,函数将返回值传递给调用者的方式是使用关键字 return 或 return()函数。

    return 的作用是将函数的值返回给函数的调用者,即将程序控制权返回到调用者的作用域。如果在全局作用域内使用 return 关键字,那么将终止脚本的执行。return 语句在函数体中使用时,有一下两个作用:

    1. return 语句可以向函数调用者返回函数体中任意确定的值。

    2. 将程序控制权返回到调用者的作用域,即退出函数。在函数体中如果执行了 return 语句,它后面的语句就不会被执行。

    使用 table()函数,把该函数单纯的输出表格的功能修改成创建表格的功能。table()函数只要被调用,就必须输出用通过传递参数指定表名、行数和列数的表格。如果将函数体中所有输出内容都放到一个字符串里,并使用 return 语句 返回这个存有表格数据的字符串。用户不仅可以将获取字符串直接输出显示表格,还可以将获取道德表格存储到数据库或者文件中,或者有其他的字符串处理方式。

    其代码如下面所示:<?php

    function table($table_name, $rows, $cols){

    $str_table = "";

    $str_table .= "

    $str_table .= "

    $table_name

    ";

    for($i=0; $i

    $color = $i%2 == 0?"#ffffff":"#dddddd";

    $str_table .= "

    ";

    for($j=0; $j

    $str_table .= "

    ".($i*$cols+$j)."";

    }

    $str_table .= "

    ";

    }

    $str_table .= "

    ";

    return $str_table;

    }

    $str = table("3行4列的表格",3,4);

    echo table("4行5列的表格",4,5);

    echo $str;

    ?>

    以上会输出如下的图:

    6b97741a2726077044b068b66304e7b3.png

    说明:上面的实例中将 table()函数中所有输出的内容都累加到了一个字符串 $str_table 中,并在函数的最后使用 return 语句将 $str_table 返回。这样,在调用函数 table() 时,不仅将一些数据以参输的形式传到了函数的内部,还执行了函数,并且在调用函数处还可以使用 return 语句返回的值,而且这个从函数返回的值可以再脚本中像使用其他值一样使用。比如,将其赋给一个变量、直接输出或是参与运算等。

    注意:return 语句只能返回一个操作数,即只能返回一个值,不能一次返回多个值。如果要返回多个值,就要在函数中定义一个数组,将返回值存储在数组中返回。

    【相关教程推荐】

    1. 《php.cn独孤九贱(4)-php视频教程》

    2. php编程从入门到精通全套视频教程

    3. php实战视频教程

    展开全文
  • 在本篇中,我们将学习自定义函数的返回值,并介绍返回值的应用。 我们已经知道,自定义函数是一个以关键字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爱好者的学习分享园地

     

    展开全文
  • 在定义函数时,函数名后面括号中的参数列表是用户在调用函数时用来将数据传递到函数内部的接口,而函数的返回值则将函数执行后的结果返回给调用者。如果函数没有返回值,就只能算一个执行过程。只依靠函数做一些事情...

    在定义函数时,函数名后面括号中的参数列表是用户在调用函数时用来将数据传递到函数内部的接口,而函数的返回值则将函数执行后的结果返回给调用者。如果函数没有返回值,就只能算一个执行过程。只依靠函数做一些事情还不够,有时更需要在脚本程序中使用函数执行后的结果。由于变量的作用域的差异,调用函数的脚本程序不能直接使用函数体里面的信息。前面讲解了php自定义函数的参数在函数间传递的三种方式,这里我们主要讲解php自定义函数的返回值。通常,函数将返回值传递给调用者的方式是使用关键字 return 或 return()函数。

    return 的作用是将函数的值返回给函数的调用者,即将程序控制权返回到调用者的作用域。如果在全局作用域内使用 return 关键字,那么将终止脚本的执行。return 语句在函数体中使用时,有一下两个作用:

    1. return 语句可以向函数调用者返回函数体中任意确定的值。

    2. 将程序控制权返回到调用者的作用域,即退出函数。在函数体中如果执行了 return 语句,它后面的语句就不会被执行。

    使用 table()函数,把该函数单纯的输出表格的功能修改成创建表格的功能。table()函数只要被调用,就必须输出用通过传递参数指定表名、行数和列数的表格。如果将函数体中所有输出内容都放到一个字符串里,并使用 return 语句 返回这个存有表格数据的字符串。用户不仅可以将获取字符串直接输出显示表格,还可以将获取道德表格存储到数据库或者文件中,或者有其他的字符串处理方式。

    其代码如下面所示:<?php

    function table($table_name, $rows, $cols){

    $str_table = "";

    $str_table .= "

    $str_table .= "

    $table_name

    ";

    for($i=0; $i

    $color = $i%2 == 0?"#ffffff":"#dddddd";

    $str_table .= "

    ";

    for($j=0; $j

    $str_table .= "

    ".($i*$cols+$j)."";

    }

    $str_table .= "

    ";

    }

    $str_table .= "

    ";

    return $str_table;

    }

    $str = table("3行4列的表格",3,4);

    echo table("4行5列的表格",4,5);

    echo $str;

    ?>

    以上会输出如下的图:

    f0fb8e93080f98237607b9ba7b9ee72f.png

    说明:上面的实例中将 table()函数中所有输出的内容都累加到了一个字符串 $str_table 中,并在函数的最后使用 return 语句将 $str_table 返回。这样,在调用函数 table() 时,不仅将一些数据以参输的形式传到了函数的内部,还执行了函数,并且在调用函数处还可以使用 return 语句返回的值,而且这个从函数返回的值可以再脚本中像使用其他值一样使用。比如,将其赋给一个变量、直接输出或是参与运算等。

    注意:return 语句只能返回一个操作数,即只能返回一个值,不能一次返回多个值。如果要返回多个值,就要在函数中定义一个数组,将返回值存储在数组中返回。

    【相关教程推荐】

    展开全文
  • # def my_sum(): ...但是我把它放在一个自定义函数里面时候,由于要返回n_tem,当第一次输入q 以及 一直没有输入数字时,程序报错。 请问改如何正确定义这么一个函数呢?[/color][size=24px][/size]
  • 我正在尝试在TensorFlow中建立这样模型。该模型在损失函数(a)内或之前(B)有...使用这些估计参数“A函数”将重新创建矩形并将其发送到“距离”(A)/“损失”(B)函数,以便输出可以用于更新神经网络中权重。我做了...

    我正在尝试在TensorFlow中建立这样的模型。

    该模型在损失函数(a)内或之前(B)有一个函数,该函数应使用CNN(CNN+Dens layers)估计某些参数来生成图像。

    想象输入图像是一些大小和坐标不同的矩形。神经网络假设提取这些参数(矩形的重量、高度、X和Y)。使用这些估计参数“A函数”将重新创建矩形并将其发送到“距离”(A)/“损失”(B)函数,以便输出可以用于更新神经网络中的权重。

    545788c14d28e3f92901bb057a8936ad.png

    我做了网络的每一个部分,但当我试图获得CNN估计的参数来生成图像并将其发送到损失/距离函数时,我无法访问真实的数值数据。相反,CNN的输出是Tensor。我试图使用一个新的tf.Session来评估output,但是发生了这样的情况:FailedPreconditionError: Attempting to use uninitialized value conv2d/kernel

    [[Node: conv2d/kernel/read = Identity[T=DT_FLOAT, _class=["loc:@conv2d/kernel"], _device="/job:localhost/replica:0/task:0/device:GPU:0"](conv2d/kernel)]]

    [[Node: dense_2/BiasAdd/_11 = _Recv[client_terminated=false, recv_device="/job:localhost/replica:0/task:0/device:CPU:0", send_device="/job:localhost/replica:0/task:0/device:GPU:0", send_device_incarnation=1, tensor_name="edge_80_dense_2/BiasAdd", tensor_type=DT_FLOAT, _device="/job:localhost/replica:0/task:0/device:CPU:0"]()]]

    我应该如何在TensorFlow中建立这样的模型?

    我的示例代码如下:

    美国有线电视新闻网:

    ^{pr2}$

    “功能”是指:

    ^{3}$

    我也试过了,同样的错误发生了:def AFunction(y_pred):

    _sess = tf.Session()

    with _sess.as_default():

    y_pred = y_pred.eval()

    return rectangle(y_pred)

    距离函数是tf.损失功能(应该测试哪个功能最好)

    谢谢。在

    展开全文
  • 例如:function a() d的返回值是 username 然后查询的时候 select u.id,u.sex ,username from user u; 将里面的username 换成 a()的返回值
  • Private Sub Command1__Click() Print test("abc") End Sub Function test(s As String) As String For i = 1 To 3 ...输出结果是“cba”,变成字符串拼接操作了,不是很理解里面原理。求解释
  • 如下表a,根据Score_sum...自定义一个函数,根据传入参数@Score_sum来计算成绩等级grade,返回成绩等级,并且将grade插入到原表中。 [img=https://img-bbs.csdn.net/upload/201401/13/1389603062_547386.png][/img]
  • 自定义函数(user-define function, UDF)作用就像是MySQL固有函数一样去创建一个新函数去扩展MySQL,也就是说UDF是MySQL功能一个扩展语法创建create function 函数名称(参数列表)returns 返回值类型函数体...
  • 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中需要定义一个新变量去接收子...
  • 上次写了一篇在自定义函数中定义一个数组,再用一个指针来指向该数组首地址,最后返回该指针给主函数里面一个指针,最后在主函数里输出该指针值,有时候存在很大隐患。相对自顶函数中返回值的问题,做一些...
  • 返回值用户空间函数利用return关键字向它调用空间回传信息, 这一点和C语言语法相同.例如:function sample_long() {return 42;}$bar = sample_long();当sample_long()被调用时, 返回42并设置到$bar变量中. 在...
  • PostgreSQL update returning NEW|OLD column value 在对账|购票|防纂改|原子操作中妙用标签PostgreSQL , update , returning , NEW , OLD背景在数据库中更新记录时,有时为了对账,或者防纂改目的,需要在更新...
  • 前几天做课设时候写了两个测试函数,发现了很奇怪问题。通过最近查阅资料,总结了问题所在。 第一次测试代码 #include #include #include char *fanhui() { char name1[300]="李四/student.txt"; char *p = ...
  • 自定义函数简介自定义函数:用户自定义函数(user-defined function,UDF)是一种对MySQL扩展的途径,其用法与内置函数相同自定义函数的两个必要条件:(1)参数 (2)返回值自定义函数:创建自定义函数...
  • 在python中,想要调用自定义函数必须先声明,然后才能调用。使用函数时,只要按照函数定义形式,向函数传递必需参数,就可以调用函数完成相应功能或者获得函数返回处理结果。(1)声明函数python中使用 def ...
  • 本质:mysql内置函数的一种扩展,本质上与mysql内置函数一样。函数必要条件:@1:参数(非必备);@2:返回值;模板:create function function_namereturns{string|integer|real|decimal}routine_body(函数体)关于...
  • 函数 - PHP手册笔记原文:函数 - PHP手册笔记用户自定义函数函数无需在调用前被定义,除非是有条件定义。PHP中所有函数和类都具有全局作用域。PHP不支持函数重载,也不可能取消定义或者重定义已声明函数。特意...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 4,350
精华内容 1,740
关键字:

自定义函数的返回值