百万年薪python之路 -- 函数的动态参数练习
1.继续整理函数相关知识点。
2.写函数,接收n个数字,求这些参数数字的和。(动态传参)
def func(*args,**kwargs):
num_sum = 0
num_dic = []
num = args
num_dic = list(kwargs.values())
for i in num:
num_sum += i
for j in num_dic:
num_sum += j
return num_sum
res = func(1,2,3,4,5,6,a=1,b=5,c=4)
print(res)
3.读代码,回答:代码中,打印出来的值a,b,c分别是什么?为什么?
a=10
b=20
def test5(a,b):
print(a,b)
c = test5(b,a)
print(c)
20 10 #因为test5的形参传过来的a = 20,b = 10
None # test5因为没有return,所以返回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)
3 5 #因为在test5中a和b属于局部变量,分别被赋值3和5
None # test5因为没有return,所以返回None
5.传入函数中多个列表和字典,如何将每个列表的每个元素依次添加到函数的动态参数args里面?如何将每个字典的所有键值对依次添加到kwargs里面?
def func(*args,**kwargs):
print(args,kwargs)
tu = (1,2,3,4,5,6)
dic = {"k1":1,"k2":2,"k3":3}
func(*tu,**dic)
6.下面代码成立么?如果不成立为什么报错?怎么解决?
6.1
a = 2
def wrapper():
print(a)
wrapper()
结果:
2
6.2
a = 2
def wrapper():
a += 1
print(a)
wrapper()
结果:
报错 因为wrapper函数里没有a这个变量,所以无法自增 在wrapper函数里设置global a
6.3
def wrapper():
a = 1
def inner():
print(a)
inner()
wrapper()
结果:
1
6.4
def wrapper():
a = 1
def inner():
a += 1
print(a)
inner()
wrapper()
7.写函数,接收两个列表,将列表长度比较小的列表返回.
def func(lst1,lst2):
return lst1 if len(lst1) < len(lst2) else lst2
print(func([1,2,3,4,5],[6,7,8]))
8.写函数,接收一个参数(此参数类型必须是可迭代对象),将可迭代对象的每个元素以’ _’相连接,形成新的字符串,并返回.
例如 传入的可迭代对象为[1,'老男孩','宝元']返回的结果为’1 _老男孩 _宝元’
def func(s):
lst = []
for i in s:
lst.append(str(i))
return "_".join(lst)
print(func((1,'老男孩','宝元')))
9.有如下函数:
def wrapper():
def inner():
print(666)
wrapper()
你可以任意添加代码,执行inner函数.
def wrapper():
def inner():
print(666)
return inner()
wrapper()
10.补充代码,可以使以下的代码可以运行
a = 10
def func():
a += 1
print(a)
func()
a = 10
def func():
global a
a += 1
print(a)
func()
百万年薪python之路 -- 函数的动态参数练习的更多相关文章
- 百万年薪python之路 -- 函数的动态参数
1.函数的动态参数 1.1 动态接收位置参数 在参数位置用*表示接受任意参数 def eat(*args): print('我想吃',args) eat('蒸羊羔','蒸熊掌','蒸鹿尾儿','烧花鸭 ...
- 百万年薪python之路 -- 函数名的第一类对象及使用
函数名是一个变量, 但它是一个特殊的变量, 与括号配合可以执行函数的变量 1.1.函数名的内存地址 def func(): print("呵呵") print(func) 结果: ...
- 百万年薪python之路 -- 函数初始
1.函数 1.1 认识函数 定义一个事情或者是功能,等到需要的时候直接去用就好了.那么这里定义东西就是一个函数 函数:对代码块和功能的封装和定义 函数的好处: 减少代码的重复性 代码可读性高 将功能进 ...
- 百万年薪python之路 -- 函数初始练习
1.整理函数相关知识点 2.写函数,检查获取传入列表或元组对象的所有奇数位索引对应的元素,并将其作为新列表返回给调用者. def func(lst): lst = lst[1::2] return l ...
- 百万年薪python之路 -- 内置函数二 -- 最常用的内置函数
1.内置函数 1.1 匿名函数 匿名函数,顾名思义就是没有名字的函数(其实是有名字的,就叫lambda),那么什么函数没有名字呢?这个就是我们以后面试或者工作中经常用匿名函数 lambda,也叫一句话 ...
- 百万年薪python之路 -- 生成器
1.生成器 #本质就是迭代器 1.1 生成器的构建方式 在python中有三种方式来创建生成器: 1.通过生成器函数 2.通过生成器推导式 3.python内置函数或者模块提供 1.2 生 ...
- 自学python day 10 函数的动态参数、命名空间、作用域
作业提升: s为字符串 s.isalnum() 所有字符都是字母或者数字 s.isalpha() 所有字符都是字母 s.isdigit() 所有字符否是数字 2. for i in range(1,1 ...
- 百万年薪python之路 -- 内置函数练习
1.整理今天笔记,课上代码最少敲3遍. 2.用列表推导式做下列小题 过滤掉长度小于3的字符串列表,并将剩下的转换成大写字母 lst = [["a","b"],[ ...
- 百万年薪python之路 -- 内置函数
内置对象(68个)第一部分 内置函数一共68个 一些可以重要性不高的内置函数,只需了解即可 all() any() bytes() callable() chr() ord() complex() d ...
随机推荐
- 提交任务到spark(以wordcount为例)
1.首先需要搭建好hadoop+spark环境,并保证服务正常.本文以wordcount为例. 2.创建源文件,即输入源.hello.txt文件,内容如下: tom jerry henry jim s ...
- [Spark] 04 - HBase
BHase基本知识 基本概念 自我介绍 HBase是一个分布式的.面向列的开源数据库,该技术来源于 Fay Chang 所撰写的Google论文“Bigtable:一个结构化数据的分布式存储系统”. ...
- Java线程池的拒绝策略
一.简介 jdk1.5 版本新增了JUC并发编程包,极大的简化了传统的多线程开发.前面文章中介绍了线程池的使用,链接地址:https://www.cnblogs.com/eric-fang/p/900 ...
- wepy框架开发小程序遇到的node-sass问题解决方案
一.报错图 二.解决方案 主要是windows平台缺少编译环境, 1.先运行: npm install -g node-gyp 2.然后运行cmd:(右键点击:以管理员身份运行) 输入:npm ins ...
- 第八届蓝桥杯java b组第六题
标题:最大公共子串 最大公共子串长度问题就是:求两个串的所有子串中能够匹配上的最大长度是多少. 比如:"abcdkkk" 和 "baabcdadabc",可以找 ...
- 使用tomcat7发布war项目启动org_apache_tomcat_websocket报错
在使用tomcat7发布项目时(项目是用springboot 2.1.4.RELEASE版本开发的) 换成tomcat8就可以正常发布了,网上说tomcat7不支持servlet3.1,升级到spri ...
- mysql 排序规则
一.对比 1.utf8_general_ci 不区分大小写,utf8_general_cs 区分大小写 2.utf8_bin: compare strings by the binary value ...
- Scanner类的next()方法和nextLine()方法的异同点
通过一段代码就可以明白其中的奥妙!! import java.util.Scanner; public class next_nextLine { public static void main(St ...
- ES 32 - Elasticsearch 数据建模的探索与实践
目录 1 什么是数据建模? 2 如何对 ES 中的数据进行建模 2.1 字段类型的建模方案 2.2 检索.聚合及排序的建模方案 2.3 额外存储的建模方案 3 ES 数据建模实例演示 3.1 动态创建 ...
- js 验证数据类型的4中方法
1.typeof 可以检验基本数据类型 但是引用数据类型(复杂数据类型)无用: 总结 : typeof 无法识别引用数据类型 包括 bull; 2.instanceof是一个二元运算符,左操作数 ...