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

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

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

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

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

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

												

函数-->指定函数--->默认函数--->动态函数--> 动态参数实现字符串格式化-->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. [NIO-1]缓冲区

    常用的是ByteBuffer.CharBuffer

  2. 使用 highlight.js 在网页中高亮显示java 代码 【原】

    <html> <head> <meta charset="UTF-8"> <script src="http://apps.bd ...

  3. Java笔记——泛型擦除

    1. 泛型擦除 package cn.Douzi.T_Demo; import java.util.ArrayList; /** * @Auther: Douzi * @Date: 2019/3/8 ...

  4. 网易PM599产品笔试题

    前几天做了网易PM599的云计算领域产培生的笔试题目,下面整理了一下各个方向的笔试题和我对这些题目的解答. 云计算领域: 1.对工业互联网的理解,结合自身优势谈谈自己应该怎么去创业. 工业互联网是一次 ...

  5. Hibernate的注解和检索

    Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,它将POJO与数据库表建立映射关系,是一个全自动的orm框架,hibernate可以自动生成SQL语句,自 ...

  6. Ajax和Json实现自动补全

    1.index.jsp <%@ page language="java" import="java.util.*" pageEncoding=" ...

  7. SQL Server进阶 窗口函数

    概述  设计窗口函数目的? 在开窗函数出现之前存在着很多用 SQL 语句很难解决的问题,很多都要通过复杂的相关子查询或者存储过程来完成. 为了解决这些问题,在 2003 年 ISO SQL 标准加入了 ...

  8. 三十六、Linux 线程——线程基本概念及线程的创建和终止

    36.1 线程介绍 36.1.1 线程的基本概念 进程是资源管理的最小单位,线程是程序执行的最小单位 每个进程都有自己的数据段.代码段和堆栈段. 线程通常叫做轻型的进程,它包含独立的栈和 CPU 寄存 ...

  9. 三十二、Linux 进程与信号——不可靠信号

    32.1 不可靠信号问题 发生信号时关联动作被重置为默认设置 信号可能丢失 程序片段 在进入 sig_int 与再次调用 signal 之间发生的 SIGINT 信号将不会捕获 导致进程终止 以前版本 ...

  10. 符号执行-基于python的二进制分析框架angr

    转载:All Right 符号执行概述 在学习这个框架之前首先要知道符号执行.符号执行技术使用符号值代替数字值执行程序,得到的变量的值是由输入变 量的符号值和常量组成的表达式.符号执行技术首先由Kin ...