day10__回顾和作业
一、昨天内容回顾
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
更多精彩