Python全栈学习_day010作业
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作业的更多相关文章
- Python全栈学习_day006作业
Day6作业及默写 ,使用循环打印以下效果: : * ** *** **** ***** : ***** **** *** ** * : * *** ***** ******* ********* . ...
- Python全栈学习_day001作业
Day1作业及默写 1.简述变量命名规范 1. 必须以字母.数字.下划线命名,且不能以数字开头 2. 不能是python的关键字 3. 不能以中文或者拼音作为变量名 4. 命名格式推荐以驼峰式或者下划 ...
- Python全栈学习_作业集锦(持续更新)
python基础 day1 python初识 . 计算机基础(cpu,内存,硬盘,操作系统) . Python出生于应用 . python发展史 . 编程语言分类 . python优缺点 . pyth ...
- Python全栈学习_day007作业
Day7作业及默写 .把列表中所有姓周的人的信息删掉(升级题:此题有坑, 请慎重): 第一种方法:lst = ['周老二', '周星星', '麻花藤', '周扒皮'] # 结果: lst = ['麻花 ...
- Python全栈学习_day003作业
day3作业及默写 1,有变量name = "aleX leNb" 完成如下操作: 1) 移除 name 变量对应的值两边的空格,并输出处理结果 print(name.strip( ...
- Python全栈学习_day002作业
Day2作业及默写 1.判断下列逻辑语句的True,False. 1)1 > 1 or 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 & ...
- Python全栈学习_day011作业
1,写函数,传入n个数,返回字典{‘max’:最大值,’min’:最小值}例如:min_max(2,5,7,8,4) 返回:{‘max’:8,’min’:2}(此题用到max(),min()内置函数) ...
- Python全栈学习_day004作业
,写代码,有如下列表,按照要求实现每一个功能 li = ["alex", "WuSir", "ritian", "barry&qu ...
- Python全栈学习_day005作业
,有如下变量(tu是个元祖),请实现要求的功能 tu = (, , {,,)}, ]) a. 讲述元祖的特性 b. 请问tu变量中的第一个元素 "alex" 是否可被修改? c. ...
随机推荐
- Delphi fmx控件在手机滑动与单击的问题
Delphi fmx控件在手机滑动与单击的问题 (2016-03-08 10:52:00) 转载▼ 标签: it delphi 分类: Delphi10 众所周知,fmx制作的app,对于象TEdit ...
- Runtime之方法
前两篇介绍了类与对象.成员变量&属性&关联对象的相关知识,本篇我们将开始讲解Runtime中最有意思的一部分内容:消息处理机制.我们从一个示例开始. 在OC中,我们使用下面这种方式来调 ...
- ReactNative学习笔记(二)基础进阶
一个最简单的HelloWorld页面 先不多解释,直接上代码: import React, { Component } from 'react'; import {AppRegistry, Style ...
- YUM仓库安装LAMP与LNMP
LAMP动态网站部署架构是由一套 Linux+Apache+MySQL+PHP 组成的动态网站系统解决方案. LNMP动态网站部署架构是由一套 Linux+Nginx+MySQL+PHP 组成的动态网 ...
- JavaScript中的定时事件
这两个函数都是在给定的时间之后开始执行的,并不是立即执行. var timeId = window.setTimeout("method()",1000); //定时执行,还可以这 ...
- Android精通:View与ViewGroup,LinearLayout线性布局,RelativeLayout相对布局,ListView列表组件
UI的描述 对于Android应用程序中,所有用户界面元素都是由View和ViewGroup对象构建的.View是绘制在屏幕上能与用户进行交互的一个对象.而对于ViewGroup来说,则是一个用于存放 ...
- python 打印堆栈信息方法
第一种方法使用logging模块 import logging def test(self): try: 1 / 0 # 触发异常 except BaseException as e: logging ...
- linux中一些简便的命令之tr
tr是个简单字符处理命令,主要有以下几个用法: 1.替换字符: echo "hello,world" | tr 'a-z' 'A-Z' 执行结果:HELLO,WORLD 注释:这里 ...
- (转)Linux开启路由转发功能
原文:https://www.linuxidc.com/Linux/2016-12/138661.htm 标记一下,今天想让一台Red Hat Enterprise Linux 7开通iptables ...
- 《ASP.NET Core跨平台开发从入门到实战》Web API自定义格式化protobuf
<ASP.NET Core跨平台开发从入门到实战>样章节 Web API自定义格式化protobuf. 样章 Protocol Buffers 是一种轻便高效的结构化数据存储格式,可以用于 ...