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