1. #一个函数何以接受多个参数
    #无参数
    #show(): ---> 执行:show()
  1. #传入一个参数
  1. def show(arg):
  2. print(arg)
  3. #执行
  4. show(123)
  1. #传入两个参数
  1. def show(arg,aaa):
  2. print(arg,aaa)
  3. #执行
  4. show(123,'bbb')
  1. #函数的默认参数
    #设置一个默认参数为:999
  1. def show(a1,a2=999):
  2. print(a1,a2)
  3. #执行
  4. show(111,'')
  5. show(111)
  6. #说明:第二个参数a2 指定了默认参数999,在执行的时候 如果 第二个传入参数了 就会使用传入的参数,如果第二个没有传入参数,那函数就会使用默认参数 999
  7. #注意:默认参数必须要写在最后,比如: show(a2=999,a1): 这样就会报语法错误
  1. #指定参数
  1. def show(a1,a2):
  2. print(a1,a2)
  3. #执行
  4. show(111,'')
  5. #默认是把 第一个 111 传给 a1,第二个参数 222传给 a2
  6. show(a2=999,a1=123)
  7. #这样就会把第一个参数传给 a2,, 第二个参数传给 a1
  1. #动态参数
  1. def show(arg):
  2. print(arg)
  3. n = [11,22,33,44]
  4. #执行
  5. show(n)
  6. #参数 可以传入,字典,元素,列表,元祖
  1. #自动转化元组
  1. def show(*arg):
  2. print(arg,type(arg))
  3. show(1)
  4. #指定 show(*arg) 一个星号 把传入的所有参数自动转化为元组
  1. #自动转化字典
  1. def show(**arg):
  2. print(arg,type(arg))
  3. show(n1=78,uu=123)
  4. #指定 show(**arg) 二个星号 把传入的所有参数自动转化为字典
  1. #一个星号和两个星号的组合,会自动把对应传入值 封装到 对应的参数里
    #如果 一个星号的参数和两个星号的参数同时存在,必须把一个星号的参数放在第一个位置,
  1. def show(*args,**kwargs):
  2. print(args,type(args))
  3. print(kwargs,type(kwargs))
  4. show(11,22,33,44,n1=888,n2=999)
  1.  #练习
  1. def show(*args,**kwargs):
  2. print(args,type(args))
  3. print(kwargs,type(kwargs))
  4. L = [11,22,33,44]
  5. d = {'n1':111,'n2':222,'n3':333}
  6. #注意: 如下传入参数的方法会将 L d 两个变量当做参数传入 show 函数接受到这两个变量后 就会把 两个变量自动转换成 一个元组,这个元组 包含 列表 L,字典d,而 真正的**kwargs里是空的
  7. show(L,d)
  8. #输出:
  9. #([11, 22, 33, 44], {'n1': 111, 'n2': 222, 'n3': 333}) <class 'tuple'>
  10. #{} <class 'dict'>
  11. #正确的传入方式:
  12. show(*L,**d)
  13. #输出:
  14. #(11, 22, 33, 44) <class 'tuple'>
  15. #{'n1': 111, 'n2': 222, 'n3': 333} <class 'dict'>
  1.  

 动态参数实现字符串格式化

#使用一个 * 元组来实现字符串格式化

  1. #动态参数实现字符串格式化
  2. #字符串format 方法来格式化,可以传入 元组,字典
  3. #这里的 0 1 定义为占位符
  4. a = "{0} is {1}"
  5. w = ["asd",["mmmm"]]
  6. ret = a.format(['a1','a2'],{'w1':'eee4'})
  7. w1 = a.format(*w)
  8. print(ret)
  9. #输出:
  10. #['a1', 'a2'] is {'w1': 'eee4'}
  11. print(w1)
  12. #输出:
  13. #asd is ['mmmm']

#使用两个 * 字典来实现字符串格式化

  1. #使用两个 * 字典来实现字符串格式化
  2. #如果是字典的形式来进行字符串的格式化,这里的 占位符 就不是0 1 来定义了,而是 keys value 的形式来定义了
  3.  
  4. a = "{nameK} is {acterV}"
  5. result = a.format(nameK='K',acterV='V')
  6. print(result)
  7. #输出:
  8. #K is V
  9.  
  10. a = "{nameK} is {acterV}"
  11. b = {"nameK":"KG","acterV":"VG"}
  12. result = a.format(**b)
  13. print(result)
  14. #输出:
  15. #KG is VG
  1. #lambda表达式,简单函数的表示
    #创建形式参数a
    #函数内容, a+1 并把结果 return回去
  1. func = lambda a: a+1
  2. #形式参数,可以是多个 一个a 一个 b,
  3. print(func(5))
  1.  
  1.  
  1.  

函数-->指定函数--->默认函数--->动态函数--> 动态参数实现字符串格式化-->lambda表达式,简单函数的表示的更多相关文章

  1. C++函数四( 具有默认参数值的函数)

    在C++语言中,可以设置函数形参的默认值,在调用函数时,若明确给出了实参的值,则使用相应实参的值;若没有给出相应实参的值,则使用默认的值.这将为函数调用带来方便和灵活. [示例] #include&l ...

  2. day10-Python运维开发基础(函数嵌套、nonlocal声明局部变量、闭包、locals/globals、lambda表达式)

    1. 函数的嵌套与nonlocal 声明局部变量 # ### 函数的嵌套 """ 函数和函数之间可以互相嵌套: 嵌套在内层的叫做内函数 乔涛在外层的叫做外函数 " ...

  3. python(3)-动态参数实现字符串格式化

    s1 = "{0} ===> {1}" s = s1.format('lilei', 'boy') print(s) l = ['lilei', 'boy'] s = s1. ...

  4. Python-Day3知识点——深浅拷贝、函数基本定义、内置函数

    一.深浅拷贝 import copy #浅拷贝 n1={'k1':'wu','k2':123,'k3':['carl',852]} n2=n1 n3=copy.copy(n1) print(id(n1 ...

  5. 拷贝,集合,函数,enumerate,内置函数

    1.拷贝 字符串和数字.赋值 id一样 import copy #提供拷贝功能 copy.copy() #原来的和现在的一起修改,不用修改时用浅copy,节省内存,复制最外层 copy.deepcop ...

  6. Kotlin函数与Lambda表达式深入

    Kotlin函数: 关于Kotlin函数在之前也一直在用,用fun来声明,回忆下: 下面再来整体对Kotlin的函数进行一个学习. 默认参数(default arguments): 先来定义一个函数: ...

  7. C++ 理解函数对象与lambda表达式

    参考<21天学通C++>第21与第22章节,对函数对象进行介绍,同时通过lambda表达式这一匿名函数对象的简洁方式加深对函数对象的理解.本篇博文的主要内容是: (1) 函数对象的概念: ...

  8. 匿名函数 lambda表达式(lambda expression)

    阅读g2log时,发现有两行代码居然看不懂. 1. auto bg_call =  [this, log_directory]() {return pimpl_->backgroundChang ...

  9. lambda函数、lambda表达式

    C++11 新特性:Lambda 表达式 豆子 2012年5月15日 C++ 10条评论 参考文章:https://blogs.oracle.com/pcarlini/entry/c_1x_tidbi ...

随机推荐

  1. STM32学习笔记:【002】BIN文件通过ST-LINK烧录STM32芯片

    以下提供2种下载方式 KEIL编译下载 KEIL 5 在开发中还算是比较强大的一种平台.在开发中通过编译再下载会显得很方便. 尽管这个是老生常谈的问题,但还是在这里补全这个设置步骤 1.点击“魔法棒” ...

  2. Expressions versus statements in JavaScript

    Statements and expressions An expression produces a value and can be written wherever a value is exp ...

  3. https笔记【转】

    图解HTTPS 我们都知道HTTPS能够加密信息,以免敏感信息被第三方获取.所以很多银行网站或电子邮箱等等安全级别较高的服务都会采用HTTPS协议. HTTPS简介 HTTPS其实是有两部分组成:HT ...

  4. excel怎么比较两组或两列数据的相同项和不同项

    https://jingyan.baidu.com/article/c843ea0b7a2a7477921e4a47.html

  5. 获取ArcMap窗口句柄,通过WinAPI获取工作空间中点击要素的系统桌面坐标实现窗体跟随

    这里用了个“桌面坐标”,是希望区分一下ArcGis的“屏幕坐标”(与之对应的还有一个“地理坐标”). 什么是“屏幕坐标”呢?使用ITool接口的OnMouseDown方法获取的“x,y”值即是,其原点 ...

  6. electron入门

    Electron是由Github开发,用HTML,CSS和JavaScript来构建跨平台桌面应用程序的一个开源库. Electron通过将Chromium和Node.js合并到同一个运行时环境中,并 ...

  7. C++解决case中不能定义局部变量问题

    case Operation::DeviceAuthen: { std::string token = root["body"]["token"].asStri ...

  8. udp_server函数

    #include <netdb.h> #include <stdlib.h> #include <string.h> #include <unistd.h&g ...

  9. Asp.Net 初级 高级 学习笔记

    01.Main函数是什么?在程序中使用Main函数有什么需要注意的地方?02.CLR是什么?程序集是什么?当运行一个程序集的时候,CLR做了什么事情?03.值类型的默认值是什么?(情况一:字段或全局静 ...

  10. 【noip 2016】提高组

    D1T1.玩具谜题 题目链接 直接模拟就好了……water. #include<cstdio> int n,m,a,s,ans; ];]; int main() { scanf(" ...