1、普通参数(严格按照顺序,将实际参数赋值给形式参数)

2、默认参数(必须放置在参数列表的最后)

3、制定参数(将实际参数赋值给指定的形式参数)

4、动态参数:*(一个*表示在传递参数时,传递的所有参数都会被当作一个元素存放进元组中)

    (传递的参数前面带一个*时,表示将该参数拆分开,将其拆分的字符分别作为一个元素存放进元组中)

def f1(*args):
   print(args)
f1(["lq",12,"le"])
(“["lq",12,"le"]”)
f1(*["lq",12,"le"])
("lq",12,"le")

5、动态参数**(传递参数时,必须以指定参数的形式传递,参数会被解释称键值对保存在字典中)(传递参数前面带**时,表示将该参数(必须要是字典)按原键值对保存进字典)

def f2(**args):
    print(args)
f2(d="lz")
{"d":"lz"}
f2(**{"name":"lz","age":20})
{"name":"lz","age":20}

6、万能参数(一个*一定要放在前面)

def    f3(*args,**kwargs):

format()

s1 = "i am {0}, age {1}".format("lz",20)
s2 = "i am {0}, age {1}".format(*["lz",20])
s3 = "i am {name},age {age}".format(name=lz.age=20)
s4 = "i am {name},age {age}".format(**{"name":"lz","age":20})

"i am lz,age 20"


7、函数参数传递方式为引用


全局变量,所有的作用域都可读

对全局变量进行【重新赋值】,需要global

特殊:列表,字典,可修改,不可重新赋值

全局变量用大写字母


三目运算

name = "lz" if 1==1 else "lz001"
作用同下
if 1==1:
    name = "lz"
else:
    name = "lz001"


lambda表达式

f1 = lambda a1 : a1 + 100
同下
def f2(a1):
  return a1 + 100