函数返回值(二)
在python中我们怎样返回多个值?
<1> 多个return?
def create_nums(): print("---1---") return 1 # 函数中下面的代码不会被执行,因为return除了能够将数据返回之外,还有一个隐藏的功能:结束函数 print("---2---") return 2 print("---3---")
总结1:
- 一个函数中可以有多个return语句,但是只要有一个return语句被执行到,那么这个函数就会结束了,因此后面的return没有什么用处
-
如果程序设计为如下,是可以的因为不同的场景下执行不同的return
def create_nums(num): print("---1---") if num == 100: print("---2---") return num+1 # 函数中下面的代码不会被执行,因为return除了能够将数据返回之外,还有一个隐藏的功能:结束函数 else: print("---3---") return num+2 print("---4---") result1 = create_nums(100) print(result1) # 打印101 result2 = create_nums(200) print(result2) # 打印202
<2> 一个函数返回多个数据的方式
def divid(a, b): shang = a//b yushu = a%b return shang, yushu #默认是元组 result = divid(5, 2) print(result) # 输出(2, 1)
总结2:
return后面可以是元组,列表、字典等,只要是能够存储多个数据的类型,就可以一次性返回多个数据
def function(): # return [1, 2, 3] # return (1, 2, 3) return {"num1": 1, "num2": 2, "num3": 3}
如果return后面有多个数据,那么默认是元组
In [1]: a = 1, 2 In [2]: a Out[2]: (1, 2) In [3]: In [3]: b = (1, 2) In [4]: b Out[4]: (1, 2) In [5]:
例子1:
# return -> 函数(方法) # break -> 循环 # 定义一个函数 def func(): print("11111") # 如果在函数或者方法中 执行了一次return 那么return后面的代码将都不会被执行 # 标识着函数调用结束 return 1 print("22222") return 2 print("33333") return 3 ret = func() print(ret)
运行结果:
11111 1
例子2:
# 需求: 定义一个函数 利用这个函数 -> 名字 年龄 # 通过函数进行数据处理 # 我的名字叫做小明 # 我的年龄为20岁 # 把数据返回 # 定义一个函数 # def deal_info(name, age): # # 定义两个变量 # my_name = "我的名字叫做" + name # my_age = "我的年龄为%d岁" % age # return [my_name, my_age] # ret = deal_info("小明", 20) # print(ret[0]) # print(ret[1]) def deal_info(name, age): # 定义两个变量 my_name = "我的名字叫做" + name my_age = "我的年龄为%d岁" % age # 如果想返回多个数据 我们不需要写列表[] 或者元组() # 我们只需要把进行返回的变量 使用逗号隔开即可 默认就是元组类型 return my_name, my_age ret = deal_info("小明", 20) print(type(ret)) print(ret[0]) print(ret[1])
运行结果:
<class 'tuple'> 我的名字叫做小明 我的年龄为20岁