47.函数返回值(二)

47.函数返回值(二)

函数返回值(二)

在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岁