3.md 1.5 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11
# 三、函数返回值 #

通过上面的学习,可以知道通过 return [表达式] 语句用于退出函数,选择性地向调用方返回一个表达式。不带参数值的 return 语句返回 None。

具体示例:

```python
# -*- coding: UTF-8 -*-

def sum(num1,num2):
	# 两数之和
D
dingchaofei 已提交
12
	if not (isinstance (num1,(int ,float)) and isinstance (num2,(int ,float))):
13 14 15 16 17 18 19 20 21 22 23 24 25 26
		raise TypeError('参数类型错误')
	return num1+num2

print(sum(1,2))
```

返回结果:

```txt
3
```

这个示例,还通过内置函数`isinstance()`进行数据类型检查,检查调用函数时参数是否是整形和浮点型。如果参数类型不对,会报错,提示 `参数类型错误`,如图:

3
347073565@qq.com 已提交
27
![检查函数参数是否正确](http://upload-images.jianshu.io/upload_images/2136918-cfe5907d67e912d8?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
28 29 30 31 32 33 34 35 36 37

当然,函数也可以返回多个值,具体实例如下:

```python
# -*- coding: UTF-8 -*-

def  division ( num1, num2 ):
	# 求商与余数
         a = num1 % num2
         b = (num1-a) / num2
3
347073565@qq.com 已提交
38
         return b , a
39 40 41 42 43 44 45 46 47 48 49 50 51 52 53

num1 , num2 = division(9,4)
tuple1 = division(9,4)

print (num1,num2)
print (tuple1)
```

输出的值:

```txt
2.0 1
(2.0, 1)
```

3
347073565@qq.com 已提交
54
认真观察就可以发现,尽管从第一个输出值来看,返回了多个值,实际上是先创建了一个元组然后返回的。回忆一下,元组是可以直接用逗号来创建的,观察例子中的 ruturn ,可以发现实际上我们使用的是逗号来生成一个元组。