PYTHON基础-函数的参数和返回值

函数参数和返回值的作用

在这里插入图片描述

函数的返回值

return 返回值
调用函数的一方,可使用变量接收返回结果

温度和湿度测量(多个返回值)

def measure():
    """测量温度和湿度"""

    print("测量开始!")
    temp = 39
    wetness = 50
    print("测量结束!")

    # 元组 - 可以包含多个数据,因此可以用元组让函数返回多个值
    # 如果函数返回的类型是元组,小括号可以省略
    return temp, wetness

# 元组
result = measure()
print(result)

# 需要单独处理温度和湿度
print(result[0])
print(result[1])

# 如果函数返回的类型是元组,同时希望单独的处理元组中的元素
# 可以使用多个变量,依次接收函数的返回结果
gl_temp, gl_wetness = measure()

print(gl_temp)
print(gl_wetness)

交换两个数字(面试题)

a = 6
b = 100

# 解法1:使用其他变量
c = a
a = b
b = c

# 解法2:不使用其他变量
a = a + b
b = a - b
a = a - b

# 解法3:python专用
a, b = (b, a)
#提示:等号右边是一个元组,只是把小括号省略了
a, b = b, a


print(a)
print(b)

函数的参数

不可变和可变的参数

在这里插入图片描述

def demo(num, num_list):

    print("函数内部的代码")

    # 在函数内部,针对参数使用赋值语句,不会修改到外部的实参变量
    num = 100
    num_list = [1, 2, 3]

    print(num)
    print(num_list)
    print("函数执行完成")


gl_num = 99
gl_list = [4, 5, 6]
demo(gl_num, gl_list)
print(gl_num)
print(gl_list)

在这里插入图片描述

在这里插入图片描述

def demo(num_list):

    print("函数内部的代码")

    # 使用方法修改列表的内容
    num_list.append(9)

    print(num_list)

    print("函数执行完成")


gl_list = [1, 2, 3]
demo(gl_list)
print(gl_list)

在这里插入图片描述

列表+=等价于.extend(面试题)

def demo(num, num_list):

    print("函数开始")

    # num = num + num
    num += num

    # 列表变量使用 += 不会做相加赋值操作 num_list = num_list + num_list!
    # 本质上是在调用列表的 extend 方法 num_list.extend(num_list)
    num_list += num_list

    print(num)

    print("函数完成")


gl_num = 9
gl_list = [1, 2, 3]
demo(gl_num, gl_list)
print(gl_num)
print(gl_list)

在这里插入图片描述

缺省参数

在这里插入图片描述

gl_list = [6, 3, 9]

# 默认按照升序排序
# gl_list.sort()

# 如果需要降序排序,需要执行reverse参数
gl_list.sort(reverse=True)

print(gl_list)

在参数后使用赋值语句,可以指定参数的缺省值

带有默认值的缺省参数,必须在参数列表的末尾
在这里插入图片描述

def print_info(name, gender = True):
    """

    :param name: 班上同学的姓名
    :param gender: True 男生 False 女生
    """

    gender_text = "男生"

    if not gender:
        gender_text = "女生"

    print("%s 是 %s" % (name, gender_text))

# 假设班上的同学,男生居多!
# 提示:在指定缺省参数的默认值时,应该使用最常见的值作为默认值
print_info("小明")
print_info("老王", False)

调用函数有多个缺省参数时,需要指定参数名

def print_info(name, title = "", gender = True):
    """

    :param title: 职位
    :param name: 班上同学的姓名
    :param gender: True 男生 False 女生
    """

    gender_text = "男生"

    if not gender:
        gender_text = "女生"

    print("【%s】%s 是 %s" % (title, name, gender_text))

# 假设班上的同学,男生居多!
# 提示:在指定缺省参数的默认值时,应该使用最常见的值作为默认值
print_info("小明")
print_info("老王", gender = False)

多值参数

在这里插入图片描述

def demo(num, *nums, **person):

    print(num)
    print(nums)
    print(person)


demo(1, 2, 3, 4, 5, name = "小明", age = 18)

在这里插入图片描述

多值参数案例-计算任意多个数字的和

# def sum_numbers(arg):
def sum_numbers(*args):

    num = 0

    print(args)
    # 循环遍历
    for n in args:
        num += n

    return num

# result = sum_numbers((1, 2, 3))
result = sum_numbers(1, 2, 3)
print(result)

在这里插入图片描述

元组和字典的拆包

在这里插入图片描述

def demo(*args,  **kwargs):

    print(args)
    print(kwargs)


# 元组变量/字典变量
gl_nums = (1, 2, 3)
gl_dict = {"name": "小明", "age": 18}

# 拆包语法:简化元组变量/字典变量的传递
demo(*gl_nums, **gl_dict)
demo(1, 2, 3, name = "小明", age = 18)

在这里插入图片描述

函数的递归

函数调用自身的技巧称为函数的递归

递归函数的特点

在这里插入图片描述

def sum_number(num):

    print(num)
    # 递归的出口,当参数满足某个条件时,不再执行函数
    if num ==1:
        return
    # 自己调用自己
    sum_number(num - 1)

sum_number(3)

在这里插入图片描述
在这里插入图片描述

函数递归案列-计算数字累加

在这里插入图片描述

def sum_numbers(num):

    # 1、出口
    if num == 1:
        return 1

    # 2、数字的累加 num + (1...num - 1)
    # 假设 sum_numbers 能够正确的处理 1...num - 1
    temp = sum_numbers(num - 1)

    # 两个数字的相加
    return num + temp

result = sum_numbers(3)
print(result)

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值