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. less的功能和介绍

    在全新的css中,经过程序员们的开发和努力.又打造了全新的less样式表的全新界面,只需引入外部样式表即刻套用,加上了函数定义和取值.大大的降低了代码的书写量.也更加方便程序员的调用和修改!

  2. k8s docker集群搭建

    一.Kubernetes系列之介绍篇   •Kubernetes介绍 1.背景介绍 云计算飞速发展 - IaaS - PaaS - SaaS Docker技术突飞猛进 - 一次构建,到处运行 - 容器 ...

  3. Hadoop 综合揭秘——HBase的原理与应用

    前言 现今互联网科技发展日新月异,大数据.云计算.人工智能等技术已经成为前瞻性产品,海量数据和超高并发让传统的 Web2.0 网站有点力不从心,暴露了很多难以克服的问题.为此,Google.Amazo ...

  4. MFC TabCtrl 控件修改标签尺寸

    注意:无论那种方法,都要先设置Tab控件的Style属性为fixed width. 第一种方法 MFC,tabcontrol控件改变标签大小 - CSDN博客 https://blog.csdn.ne ...

  5. Variables and Arithmetic Expression

    Notes from The C Programming Language A decimal point in a constant indicates that it is floating po ...

  6. JavaScript实现页面显示倒计时功能

    下面是用JS中的日期函数和定时器完成的一个倒计时的例子,效果如图: 代码如下: <!DOCTYPE html> <html> <head> <title> ...

  7. 搭建docker环境准备

    Docker平台的基本构成

  8. 转载 Python中关键字global与nonlocal的区别

    转载自CSDN 雁丘1990, 原文地址: https://blog.csdn.net/xcyansun/article/details/79672634 这篇文章写的很赞, 条理清晰, 分析循序渐进 ...

  9. Python常用模块time & datetime &random 模块

    时间模块前言 在Python中,与时间处理有关的模块就包括:time,datetime 一.在Python中,通常有这几种方式来表示时间: 时间戳 格式化的时间字符串 元组(struct_time)共 ...

  10. 今天是JVM的生日,来了解下JVM的发展历史吧

    1991年4月,由James Gosling主导的团队创造了Oak语言,java的前身,1995年5月23号,Oak语言更名Java,并且提出那句注明的:”write Once,Run Anywher ...