“Python函数的返回值”的版本间的差异

来自CloudWiki
跳转至: 导航搜索
(创建页面,内容为“===函数的返回值=== return语句用来结束函数,并将程序返回到函数被调用的位置,继续执行。return语句可以出现在函数中的任…”)
 
return语句返回多个值
 
(未显示同一用户的3个中间版本)
第1行: 第1行:
===函数的返回值===
 
return语句用来结束函数,并将程序返回到函数被调用的位置,继续执行。return语句可以出现在函数中的任何部分。同时可以将零个、一个或多个函数运算的结果返回给函数被调用处的变量。
 
  
<nowiki>def multiply(x,y = 10):
+
==函数返回==
    return x*y
+
函数执行结束后,根据return保留字的指示决 定是否返回结果,如果返回结果,则结果将被放置到函数被调用的位置,函数使用完毕,程序继续运行。
 
 
s = multiply(99,2)
 
print(s)
 
</nowiki>
 
 
 
函数可以没有return,此时函数并不返回值;当return返回多个值时,这些值形成了一个元组数据类型,有小括号和逗号分隔。
 
  
<nowiki>def multiply(x,y = 10):
+
关于return语句:
    return x*y ,x+y
 
  
s = multiply(99,2)
 
print(s)
 
a,b = multiply(99,2)
 
print(a)
 
print(b)</nowiki>
 
 
函数也可以没有return:
 
 
*例:生日歌
 
<nowiki>def happy():
 
    print("Happy birthday to you!")
 
 
happy( )   
 
</nowiki>
 
 
===函数返回===
 
函数执行结束后,根据return保留字的指示决 定是否返回结果,如果返回结果,则结果将被放置到函数被调用的位置,函数使用完毕,程序继续运行。
 
 
<p>'''关于return语句'''</p>
 
 
*在Python中,定义函数时也不需要声明函数的返回值类型,而是使用return语句结束函数执行的同时返回任意类型的值,函数返回值类型与return语句返回表达式的类型一致。
 
*在Python中,定义函数时也不需要声明函数的返回值类型,而是使用return语句结束函数执行的同时返回任意类型的值,函数返回值类型与return语句返回表达式的类型一致。
 
*不论return语句出现在函数的什么位置,一旦得到执行将直接结束函数的执行。
 
*不论return语句出现在函数的什么位置,一旦得到执行将直接结束函数的执行。
  
===一个return语句==
+
===一个return语句===
 
函数中可以存在一个return语句。
 
函数中可以存在一个return语句。
  
第101行: 第73行:
  
 
原来返回值是一个tuple!但是,在语法上,返回一个tuple可以省略括号,而多个变量可以同时接收一个tuple,按位置赋给对应的值,所以,Python的函数返回多值其实就是返回一个tuple,但写起来更方便。
 
原来返回值是一个tuple!但是,在语法上,返回一个tuple可以省略括号,而多个变量可以同时接收一个tuple,按位置赋给对应的值,所以,Python的函数返回多值其实就是返回一个tuple,但写起来更方便。
 +
 +
上面的也可以这么写:
 +
 +
<nowiki>ressult = move(100, 100, 60, math.pi / 6)
 +
print(type(result))
 +
print(result[0],result[1])</nowiki>
 +
 +
===在try-except异常中的使用===
 +
 +
<nowiki>def manyret(x):
 +
    try:
 +
        if x>0:
 +
            return x+1
 +
        else:
 +
            return x-1
 +
    except:
 +
        return0</nowiki>
 +
   
  
 
参考文档:https://www.liaoxuefeng.com/wiki/1016959663602400/1017106984190464
 
参考文档:https://www.liaoxuefeng.com/wiki/1016959663602400/1017106984190464

2023年3月27日 (一) 02:07的最新版本

函数返回

函数执行结束后,根据return保留字的指示决 定是否返回结果,如果返回结果,则结果将被放置到函数被调用的位置,函数使用完毕,程序继续运行。

关于return语句:

  • 在Python中,定义函数时也不需要声明函数的返回值类型,而是使用return语句结束函数执行的同时返回任意类型的值,函数返回值类型与return语句返回表达式的类型一致。
  • 不论return语句出现在函数的什么位置,一旦得到执行将直接结束函数的执行。

一个return语句

函数中可以存在一个return语句。

例如:

def mul(x,y):
    s= x*y
    return s

print(mul(2.5,3))

注:在Python中,定义函数时也不需要声明函数的返回值类型,而是使用return语句结束函数执行的同时返回任意类型的值,函数返回值类型与return语句返回表达式的类型一致。

多个return语句

函数中可以也存在多个return语句。,例如:

例:求绝对值

def my_abs(x):
    if x >= 0:
        return x
    else:
        return -x
  • 不论return语句出现在函数的什么位置,一旦得到执行将直接结束函数的执行。

没有return语句

函数中可以也可以没有return语句:

例如:

def mul(x,y):
    s= x*y
    print(x)

mul(2,3)

return语句返回多个值

  • 如果函数没有return语句、有return语句但是没有执行到或者执行了不返回任何值的return语句,解释器都会认为该函数以return None结束,即返回空值。

函数可以返回多个值吗?答案是肯定的。

比如在游戏中经常需要从一个点移动到另一个点,给出坐标、位移和角度,就可以计算出新的坐标:

import math

def move(x, y, step, angle=0):
    nx = x + step * math.cos(angle)
    ny = y - step * math.sin(angle)
    return nx, ny

import math语句表示导入math包,并允许后续代码引用math包里的sin、cos等函数。

然后,我们就可以同时获得返回值:

>>> x, y = move(100, 100, 60, math.pi / 6)
>>> print(x, y)
151.96152422706632 70.0

但其实这只是一种假象,Python函数返回的仍然是单一值:

>>> r = move(100, 100, 60, math.pi / 6)
>>> print(r)
(151.96152422706632, 70.0)

原来返回值是一个tuple!但是,在语法上,返回一个tuple可以省略括号,而多个变量可以同时接收一个tuple,按位置赋给对应的值,所以,Python的函数返回多值其实就是返回一个tuple,但写起来更方便。

上面的也可以这么写:

ressult = move(100, 100, 60, math.pi / 6)
print(type(result))
print(result[0],result[1])

在try-except异常中的使用

def manyret(x):
    try:
        if x>0:
            return x+1
        else:
            return x-1
    except:
        return0
   

参考文档:https://www.liaoxuefeng.com/wiki/1016959663602400/1017106984190464