Python学习(第七章)

一、函数的参数赋值

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

猜你喜欢

转载自www.cnblogs.com/btschang/p/9645440.html