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之路 -- 函数的动态参数练习的更多相关文章

  1. 百万年薪python之路 -- 函数的动态参数

    1.函数的动态参数 1.1 动态接收位置参数 在参数位置用*表示接受任意参数 def eat(*args): print('我想吃',args) eat('蒸羊羔','蒸熊掌','蒸鹿尾儿','烧花鸭 ...

  2. 百万年薪python之路 -- 函数名的第一类对象及使用

    函数名是一个变量, 但它是一个特殊的变量, 与括号配合可以执行函数的变量 1.1.函数名的内存地址 def func(): print("呵呵") print(func) 结果: ...

  3. 百万年薪python之路 -- 函数初始

    1.函数 1.1 认识函数 定义一个事情或者是功能,等到需要的时候直接去用就好了.那么这里定义东西就是一个函数 函数:对代码块和功能的封装和定义 函数的好处: 减少代码的重复性 代码可读性高 将功能进 ...

  4. 百万年薪python之路 -- 函数初始练习

    1.整理函数相关知识点 2.写函数,检查获取传入列表或元组对象的所有奇数位索引对应的元素,并将其作为新列表返回给调用者. def func(lst): lst = lst[1::2] return l ...

  5. 百万年薪python之路 -- 内置函数二 -- 最常用的内置函数

    1.内置函数 1.1 匿名函数 匿名函数,顾名思义就是没有名字的函数(其实是有名字的,就叫lambda),那么什么函数没有名字呢?这个就是我们以后面试或者工作中经常用匿名函数 lambda,也叫一句话 ...

  6. 百万年薪python之路 -- 生成器

    1.生成器 #本质就是迭代器 1.1 生成器的构建方式 在python中有三种方式来创建生成器: ​ 1.通过生成器函数 ​ 2.通过生成器推导式 ​ 3.python内置函数或者模块提供 1.2 生 ...

  7. 自学python day 10 函数的动态参数、命名空间、作用域

    作业提升: s为字符串 s.isalnum() 所有字符都是字母或者数字 s.isalpha() 所有字符都是字母 s.isdigit() 所有字符否是数字 2. for i in range(1,1 ...

  8. 百万年薪python之路 -- 内置函数练习

    1.整理今天笔记,课上代码最少敲3遍. 2.用列表推导式做下列小题 过滤掉长度小于3的字符串列表,并将剩下的转换成大写字母 lst = [["a","b"],[ ...

  9. 百万年薪python之路 -- 内置函数

    内置对象(68个)第一部分 内置函数一共68个 一些可以重要性不高的内置函数,只需了解即可 all() any() bytes() callable() chr() ord() complex() d ...

随机推荐

  1. [Spark] 04 - HBase

    BHase基本知识 基本概念 自我介绍 HBase是一个分布式的.面向列的开源数据库,该技术来源于 Fay Chang 所撰写的Google论文“Bigtable:一个结构化数据的分布式存储系统”. ...

  2. SpringBoot起飞系列-入门(一)

    一.SpringBoot简介 1.1 什么是SpringBoot 说到spring系列,可能大家都很熟悉,spring.springmvc,美之名曰:spring全家桶,那么springboot其实也 ...

  3. angularjs1学习笔记--持续更新

    angularJS使用的MVC为何不属于二十三种设计模式之一? MVC被GoF (Gang of Four,四人组, <Design Patterns: Elements of Reusable ...

  4. Object的wait、notify和notifyAll

    Obect的wait.notify 和 notifyAll是Object提供的同步方法,也就是所有对象都生而带来的方法,估计搞java的没有不知道这几个方法的.那么他究竟是怎么使用的呢?在此处记录一下 ...

  5. 揭秘C# SQLite的从安装到使用

    SQLite,是一款轻型的数据库,是遵守ACID的关联式数据库管理系统,它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了 ...

  6. 【mybatis】1mybatis下载、配置与初步使用

    一.mybatis历史: 额,学习一门新事物时了解一下它的历史能在脑中形成一个大致的轮廓...进入正题... mybatis以前叫做ibatis,ibatis是Apache旗下的产品,在2010年时g ...

  7. Java通过JDK动态代理简单的实现一个AOP

    首先说一下,因为自己还没有去研读spring的AOP的源码,只是大致知道其功能,便想着自己先手动实现一个先看看,觉得这样以后研读源码的时候会收获更多! 实现:做一个在添加注解的方法执行之前,可以先执行 ...

  8. C# 读取控制台的Console.Write

    一个程序去调用另一个xxx.exe的时候,需要记录下这个exe里面的console.write的输出 public static string InvokeExcute(string Command) ...

  9. kali切换到西电源

    准备研究kali的openvas,打开发现居然没有.apt-get更新一下结果各种报错,换成中科大源.阿里源还是始终报错,气到吐血.最后上西电开源社区换成了西电的kali源,更新速度2m多,一气呵成~ ...

  10. 数据库审计 DBAudit - Yearning 最新版

    数据库审计 DBAudit 2019/09/26 Chenxin 数据库审计 基本概念 数据库审计(简称DBAudit)能够实时记录网络上的数据库活动,对数据库操作进行细粒度审计的合规性管理,对数据库 ...