一、昨天内容回顾

​ 1、函数的参数

​ 1)实参角度:位置参数、关键字参数、混合参数

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。

​ 2)形参角度:位置参数、默认参数、仅限关键字参数,万能参数

​ 3)形参角度参数顺序:位置参数,*args,默认参数,仅限关键字参数,**kwargs

​ 2、*的魔性用法:

​ 1)函数的定义时:代表聚合

​ 2)函数的调用时:代表打散

​ 3、python中存在的三个空间:

​ 内置名称空间:存储的内置函数:print, input.....

​ 全局名称空间:py文件,存放的是py文件(除去函数,类内部的)的变量,函数名与函数的内存地址的关系

​ 局部名称空间:存放的函数内部的变量与值的对应关系

​ 4、加载顺序:内置名称空间------->全局名称空间------>局部名称空间(执行函数时候)

​ 5、调取顺序:就近原则。 局部名称空间------>全局名称空间----->内置名称空间

​ 1) 局部作用域只能引用全局变量,不能修改。

​ 6、作用域:

​ 1)全局作用域 :内置名称空间+全局名称空间

​ 2)局部作用域:局部名称空间

二、作业:

1、看代码写结果

def func():
    return 1, 2, 3

val = func()
print(val)
print(type(val) == tuple)
print(type(val) == list)


# 输出结果:True   False

2、看代码写结果

def func(*args, **kwargs):
    print(args)
    print(kwargs)
# a. 请将执行函数,并实现让args的值为 (1,2,3,4)
func(1, 2, 3, 4)
func(*[1,2,3,4])
# b. 请将执行函数,并实现让args的值为 ([1,2,3,4],[11,22,33])
func([1,2,3,4],[11,22,33])
# c. 请将执行函数,并实现让args的值为 ([11,22],33) 且 kwargs的值为{'k1':'v1','k2':'v2'}
func([11,22],33,k1='v1',k2='v2')
# d. 如执行 func(*{'武沛齐','金鑫','女神'}),请问 args和kwargs的值分别是?
func(*{'武沛齐','金鑫','女神'})
# e. 如执行 func({'武沛齐','金鑫','女神'},[11,22,33]),请问 args和kwargs的值分别是?
func({'武沛齐','金鑫','女神'},[11,22,33])
# f. 如执行 func('武沛齐','金鑫','女神',[11,22,33],**{'k1':'栈'}),请问 args和kwargs的值分别是?
func('武沛齐','金鑫','女神',[11,22,33],**{'k1':'栈'})

3、看代码写结果

def func(name,age=19,email='123.qq.com'):
    print(name,age,email)
#a执行func('mrxiong'),判断是否可执行,请可以访问name、age、email的值分别是什么?
func('mrxiong')
#b执行func('mrxiong',20),判断是否可执行,请可以访问name、age、email的值分别是什么?
func('mrxiong',20)
#c执行func('mrxiong',20,30),判断是否可执行,请可以访问name、age、email的值分别是什么?
func('mrxiong',20,50)
#d执行func('mrxiong,email='x@qq.com'),断是否可执行,请可以访问name、age、email的值分别是什么?
func('mrxiong',email='x@qq.com')
#e执行func('mrxiong,email='x@qq.com',age=99),断是否可执行,请可以访问name、age、email的值分别是什么?
func('mrxiong',email='x@qq.com',age=99)
#f执行func(name='mrxiong',99),断是否可执行,请可以访问name、age、email的值分别是什么?
func(name='mrxiong',99)
#g执行func(name='mrxiong',99,'111@qq.com'),断是否可执行,请可以访问name、age、email的值分别是什么?
func(name='mrxiong',99,'111@qq.com')

4、看代码写结果

def func(users,name):
    users.append(name)
    return users
result = func(['mrxiong','张三'],'alex')
print(result)
#返回结果:
#['mrxiong', '张三', 'alex']

5、看代码写结果

def func(users,name):
    users.append(name)
    return users
result = func(['mrxiong','张三'],'alex')
print(result)
输出结果:
    ['mrxiong', '张三', 'alex']

6、看代码写结果

a = 10
b = 20
def test(a,b):
    return a ,b
c = test(b,a)
print(c)
输出结果:
    (20, 10)

7、看代码写结果

def a(*args):
    count = 0
    for i in args:
        count += i
    return count
c = a(1,2,3,4,5)
print(c)
输出结果:
15

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄