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. 【linux】【jenkins】jenkins构建、mvn或者npm打包、docker运行、失败自动回滚脚本

    小白对jenkins运维的使用有点简单的想法,这里开个记录贴记录下. 由于未找到jenkins构建失败后执行其他脚本的插件,也暂时没有使用其他运维工具.所以想自己写一个shell脚本,一是方便其他人使 ...

  2. APP自動化測試腳本2

    package com.lemon.day01; import java.net.MalformedURLException; import java.net.URL; import java.uti ...

  3. python + selenium 环境搭建及问题

    搭建平台windows 准备工具如下: ------------------------------------------------------------- 下载python https://w ...

  4. Dubbo学习系列之十三(Mycat数据库代理)

    软件界有只猫,不用我说,各位看官肯定知道是哪只,那就是大名鼎鼎的Tomcat,现在又来了一只猫,据说是位东方萌妹子,暂且认作Tom猫的表妹,本来叫OpencloudDB,后又改名为Mycat,或许Ca ...

  5. ps查看图层大小快捷键

    1.图层大小尺寸的: ctrl+alt+c 2.图片大小尺寸.像素大小: ctrl+alt+i

  6. 【SQL server初级】SQL索引(一)

    SQL索引[一](此文章为“数据库性能优化二:数据库表优化”附属文章之一) SQL索引在数据库优化中占有一个非常大的比例, 一个好的索引的设计,可以让你的效率提高几十甚至几百倍,在这里将带你一步步揭开 ...

  7. UVA12983 The Battle of Chibi

    第一眼能看出来是个dp O($n^3$) 暴力应该很好想 dp[i][j] = $\sum_{k=1}^i [a[k] < a[i]] *dp[k][j-1]$ 发现dp[i][j] 为前面小于 ...

  8. Git基础概念与Flow流程介绍

    目录 Git相关 基本概念 常见客户端 TortoiseGit Sourcetree Intellij Idea 命令行 常用命令 存储区域 命令之 add & commit &pus ...

  9. Ng的数组绑定

    tip:数据的定义需要在对应ts中进行,调用在html中 定义数组: ts中 public arr =["111","222","333"] ...

  10. Redis 的底层数据结构(跳跃表)

    字典相对于数组,链表来说,是一种较高层次的数据结构,像我们的汉语字典一样,可以通过拼音或偏旁唯一确定一个汉字,在程序里我们管每一个映射关系叫做一个键值对,很多个键值对放在一起就构成了我们的字典结构. ...