1,继续整理函数相关知识点,写博客。

2,写函数,接收n个数字,求这些参数数字的和。(动态传参)
def MySum(*args):
sum = 0
for i in range(len(args)):
sum += args[i]
return sum

3,读代码,回答:代码中,打印出来的值a,b,c分别是什么?为什么?
a=10
b=20
def test5(a,b):
print(a,b)
c = test5(b,a)
print(c)
结果:
a = 20
b = 10
c = None

4,读代码,回答:代码中,打印出来的值a,b,c分别是什么?为什么?
a=10
b=20
def test5(a,b):
a=3
b=5
print(a,b)
c = test5(b,a)
print(c)
结果:
a = 3
b = 5
c = None
5,写函数,传入函数中多个实参(均为可迭代对象如字符串,列表,元祖,集合等),将每个实参的每个元素依次添加到函数的动态参数args里面.
例如 传入函数两个参数[1,2,3] (22,33)最终args为(1,2,3,22,33)
1.
def func1(*args):
return args
print(func1(*[1, 2, 3], *(22, 33), *['alex', 'BlameK']))
2.
def func1(*args):
lis = []
for i in range(len(args)):
for j in range(len(args[i])):
lis.append(args[i][j])
args = tuple(lis)
return args

6,写函数,传入函数中多个实参(实参均为字典),将每个实参的键值对依次添加到函数的动态参数kwargs里面.
例如 传入函数两个参数{‘name’:’alex’} {‘age’:1000}最终kwargs为{‘name’:’alex’ ,‘age’:1000}
def func1(**kwargs):
return kwargs
print(func1(**{'name':'alex'}, **{'age':100}))

7, 下面代码成立么?如果不成立为什么报错?怎么解决?
7.1
a = 2
def wrapper():
print(a)
wrapper()
结果:
2
成立

7.2
a = 2
def wrapper():
a += 1
print(a)
wrapper()
结果:
报错
不成立,局部变量不能修改全局变量,更改:
a = 2
def wrapper():
global a
a += 1
print(a)
wrapper()

7.3
def wrapper():
a = 1
def inner():
print(a)
inner()
wrapper()
结果:
1
成立

7.4
def wrapper():
a = 1
def inner():
a += 1
print(a)
inner()
wrapper()
结果:
报错
不成立,子函数不能修改父函数的变量,更改
def wrapper():
a = 1
def inner():
nonlocal a
a += 1
print(a)
inner()
wrapper()

8,写函数,接收两个数字参数,将较小的数字返回.
def MyMin(a, b):
return a if a < b else b

9,写函数,接收一个参数(此参数类型必须是可迭代对象),将可迭代对象的每个元素以’_’相连接,形成新的字符串,并返回.
例如 传入的可迭代对象为[1,'老男孩','武sir']返回的结果为’1_老男孩_武sir’
def MyJoin(a):
for i in range(len(a)):
a[i] = str(a[i])
return '_'.join(a)

10,写函数,传入n个数,返回字典{‘max’:最大值,’min’:最小值}
例如:min_max(2,5,7,8,4) 返回:{‘max’:8,’min’:2}(此题用到max(),min()内置函数)
def MaxMin(*args):
dic = {'max':max(args), 'min':min(args)}
return dic

11,写函数,传入一个参数n,返回n的阶乘
例如:cal(7) 计算7*6*5*4*3*2*1
def cal(n):
s = 1
while n > 0:
s = s * n
n -= 1
return s

12写函数,返回一个扑克牌列表,里面有52项,每一项是一个元组(升级题)
例如:[(‘红桃’,2),(‘梅花’,2), …(‘黑桃’,‘A’)]
def cards():
'''
扑克牌列表
:return: 扑克牌列表
'''
lis = []
card = ['黑桃', '红桃', '方块', '梅花']
dic = {'1': 'A', '11': 'J', '12': 'Q', '13': 'K'}
for i in range(len(card)):
for j in range(1, 14):
if 1 < j < 11:
lis.append((card[i], j))
else:
lis.append((card[i], dic[str(j)]))
return lis

13 有如下函数:
def wrapper():
def inner():
print(666)
wrapper()

你可以任意添加代码,用两种或以上的方法,执行inner函数.
1.
def wrapper():
def inner():
print(666)
inner()
wrapper()
2.
def wrapper():
def inner():
print(666)
return inner()
wrapper()

明日默写:
1,形参的接收顺序。
2,什么是命名空间,什么是全局名称空间,什么是局部名称空间,什么是内置名称空间。
3,什么是全局作用域,什么是局部作用域。
4,名称空间的加载顺序,取值顺序。
5,解释一下什么是global,什么是nonlocal。

Python全栈学习_day010作业的更多相关文章

  1. Python全栈学习_day006作业

    Day6作业及默写 ,使用循环打印以下效果: : * ** *** **** ***** : ***** **** *** ** * : * *** ***** ******* ********* . ...

  2. Python全栈学习_day001作业

    Day1作业及默写 1.简述变量命名规范 1. 必须以字母.数字.下划线命名,且不能以数字开头 2. 不能是python的关键字 3. 不能以中文或者拼音作为变量名 4. 命名格式推荐以驼峰式或者下划 ...

  3. Python全栈学习_作业集锦(持续更新)

    python基础 day1 python初识 . 计算机基础(cpu,内存,硬盘,操作系统) . Python出生于应用 . python发展史 . 编程语言分类 . python优缺点 . pyth ...

  4. Python全栈学习_day007作业

    Day7作业及默写 .把列表中所有姓周的人的信息删掉(升级题:此题有坑, 请慎重): 第一种方法:lst = ['周老二', '周星星', '麻花藤', '周扒皮'] # 结果: lst = ['麻花 ...

  5. Python全栈学习_day003作业

    day3作业及默写 1,有变量name = "aleX leNb" 完成如下操作: 1) 移除 name 变量对应的值两边的空格,并输出处理结果 print(name.strip( ...

  6. Python全栈学习_day002作业

    Day2作业及默写 1.判断下列逻辑语句的True,False. 1)1 > 1 or 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 & ...

  7. Python全栈学习_day011作业

    1,写函数,传入n个数,返回字典{‘max’:最大值,’min’:最小值}例如:min_max(2,5,7,8,4) 返回:{‘max’:8,’min’:2}(此题用到max(),min()内置函数) ...

  8. Python全栈学习_day004作业

    ,写代码,有如下列表,按照要求实现每一个功能 li = ["alex", "WuSir", "ritian", "barry&qu ...

  9. Python全栈学习_day005作业

    ,有如下变量(tu是个元祖),请实现要求的功能 tu = (, , {,,)}, ]) a. 讲述元祖的特性 b. 请问tu变量中的第一个元素 "alex" 是否可被修改? c. ...

随机推荐

  1. 连接SSH服务器的脚本,自动发送用户名和密码

    利用expect 自动输入用户名和密码 脚本如下 #!/usr/bin/expect # connect ssh server set timeout 30 spawn ssh -l user_nam ...

  2. linq转载

    在说LINQ之前必须先说说几个重要的C#语言特性 一:与LINQ有关的语言特性 1.隐式类型 (1)源起 在隐式类型出现之前, 我们在声明一个变量的时候, 总是要为一个变量指定他的类型 甚至在fore ...

  3. 方向导数,梯度和梯度下降之BGD,SGD

    方向导数和梯度的直观理解,from知乎-马同学: https://www.zhihu.com/question/36301367 BGD,SGD: https://www.cnblogs.com/gu ...

  4. xampp/apache启动失败解决方法

    我的问题是: 9:15:53 AM  [Apache] Error: Apache shutdown unexpectedly.9:15:53 AM  [Apache] This may be due ...

  5. PHP合并数组

    1.arrary_merge 示例代码: $arr1 = array(1, 2, 3, 4, 5); $arr2 = array(1, 2, 6, 7, 8, 9, 10); $result1 = a ...

  6. 《JavaScript面向对象编程指南》读书笔记①

    概述 JavaScript快忘完了,想看一本专业书拾遗,所以看了这本<JavaScript面向对象编程指南>. 个人觉得这本书讲的很透彻很易懂,一些原来有疑惑的地方在这本书里面豁然开朗,看 ...

  7. jvm加载类的7个步骤

  8. centos7 安装oracle11g

    创建数据库的系统用户和用户组 $ su root #切换到root # groupadd oinstall #创建用户组oinstall # groupadd dba #创建用户组dba # user ...

  9. docker进阶篇(一) ---- Volume(数据卷)

    引言 docker的镜像是由多个只读的文件系统叠加在一起形成的.当我们在我启动一个容器的时候,docker会加载这些只读层并在这些只读层的上面(栈顶)增加一个读写层.这时如果修改正在运行的容器中已有的 ...

  10. salesforce零基础学习(八十九)使用 input type=file 以及RemoteAction方式上传附件

    在classic环境中,salesforce提供了<apex:inputFile>标签用来实现附件的上传以及内容获取.salesforce 零基础学习(二十四)解析csv格式内容中有类似的 ...