一、函数的参数赋值
1. 函数的返回值是 元组,小括号可以省略
return a, b
2. 如果希望单独处理元组中的元素,可以使用多个变量一次接收函数的返回结果
temp, wetness = measure()
注意,变量的个数应和元组中元素的个数保持一致
面试题 -- 交换两个数字
要求:两个整数变量 a = 6, b = 100,不使用其他变量交换两个变量的值
a,b = b,a # 等号右边是元组
面试题 -- +=
【重点】对于数字和字符串,+=相当于先相加再赋值 num = num + num
对于列表, +=相当于调用.extend()函数 num_list = num_list.extend(num_list),调用方法不会修改引用,外部值被修改
def demo(num, num_list): print("函数开始") num += num num_list += num_list print(num) print(num_list) print("函数结束") gl_num = 9 gl_list = [1,2,3] demo(gl_num,gl_list) print(gl_num) print(gl_list) ------------------------------------------------------------------------------------------------- 函数开始 200 [1, 2, 3, 1, 2, 3] 函数结束 100 [1, 2, 3, 1, 2, 3]
二、 缺省参数
将常见的值设置为参数的缺省值,简化函数的调用
1. 缺省参数放在后面
2. 具有多个缺省参数的情况,要指定缺省参数的参数名
def print_info(name, age=18, gender=True): gender_text = "男生" if not gender: gender_text = "女生" print("%s是%s,%d岁" % (name, gender_text, age)) print_info("小明", 22) print_info("小畅", gender=False)
-------------------------------------------------------------------------------------------------------------
小明是男生,22岁
小畅是女生,18岁
三、 多值参数
1. 需求: 一个函数 能够处理的参数 个数 是不确定的,就可以使用 多值参数
2. Python 中有 两种 多值参数
> 参数名前增加一个 * 可以接收 元组
> 参数名前增加两个 * 可以接收 字典
3. 一般在给多值参数命名时,习惯使用以下两个名字
> *args -- 存放 元组 参数,前面有一个 *
> **kwargs -- 存放 字典 参数,前面有两个 *
(args是arguments的缩写,有 变量 的含义,kw是keyword的缩写,kwargs可以记忆 键值对参数)
def demo(num, *nums, **person): print(num) print(nums) print(person) # demo(1) demo(1, 2, 3, 4, 5, name="小明", age=18)
-----------------------------------------------------------------------------------------------------
1
(2, 3, 4, 5)
{'age': 18, 'name': '小明'}
多值参数案例 --计算任意多个数字的和
def sum_numbers(*args): result = 0 for i in args: result += i return result print(sum_numbers(1,2,3,4)) ------------------------------------------------------------------------------------------------------ 10