1、
def 函数名(形式参数)
函数体
return “123”
函数执行了return之后就不再执行下面的代码
2、
默认形参实参的位置一一对应
如果要调整位置,指定形参名字
def email(sub,get,bbj): print(sub,get,bbj) rr=email(sub="123",bbj="456",get="777")
3、函数可以有默认参数
def dirve(name="我") #name这个有默认参数,有默认参数的应放在无默认参数的后面 temp=name+"开车" #否则报错,无默认参数的必须传参数,有默认参数的可以不传参数 return temp ret=drive("you") print(ret) ret=drive("he") print(ret) ret=drive() print(ret)
def a1(a): print(a) a1(123) a1("123") a1([11,22,33])
4、动态参数
1、
def a1(*a): #动态参数,可以接受多个值 print(a,type(a)) #现在a的类型为元组,把你传入的实参当作元组的元素 a1(123,3,444,555,[11,22,33])#这里的列表为一个元素
2、
def a2(**b): #动态参数,接收的参数转换为字典 print(b,type(b))#b的类型为字典,传过来的参数转换为字典 a2(k1=123,k2=345) def a3(p,*a,**aa) print(p,type(p) print(a,type(a) print(aa,type(aa) a3(11,22,33,k1=123,k2=456)#在这里自动把11给p,22,33给*a,把k1=123,k2=456给**a
#**要在*后面,这两个要在一般参数数的后面,而且实参也要按此排序
*,元组,元组的元素
**,字典
一般写法def f1(*args,**kwargs)
3、为动态参数传入 列表、字典、元组
def f1(*args) : print(args) li=[11,22,33] f1(li) #这样传参数则这个args元组的第一个元素为列表[11,22,33] f1(*li) #这样传参数是会把这个列表的每一个元素一一传过去结果会是 #这个列表的每一个元素会成为args元组的每一个元素(11,22,33)
dic f2(**kwargs): print(kwargs) dic={"k1":123,"k2":"aas"} f2(dic)#这样传参数报错 f2(k1=dic) #这样传参数会变成kwargs={"k2":{"k1":123,"k2":"aas"}} f2(**dic)#要想把dic里的元素一个一个传过去,为kwargs={"k1":123,"k2":"aas"}需要在dic前加**
4、变量
(1)全局变量
a = 1234 # 全局变量 def f1(): a = 123 # 这个a为局部变量只有这个函数里才能用 print(a) #在这里输出的是局部变量 f1() print(a)
(2)局部变量
def f1() a=123 print(a)#这个a为局部变量只有这个函数里才能用
要想修改全局变量的值需要在全局变量前加global声明一下
例如:
a = 1234 def f1(): global a a = 123 print(a)#输出结果为:123 f1() print(a)#输出结果为:123
以后写全局变量时吧全局变量名写为大写,局部变量的变量名写为小写
总结
1、数据类型
set
无序的,不重复的集合
2、三元运算
减少代码量
3、深浅拷贝
str、int
深浅都一样
其他
浅拷贝,最外层
深拷贝,除了最内层
4、函数
a.def
b.函数名
c.返回值
1、return
2、一旦遇到return,函数的剩下代码就不执行了
5、参数
1、形参实参
2、普通参数,数量一致,一一对应
3、指定参数,
f1(p="xxx",xx="asd")
4、默认参数
放在参数的尾部
5、动态参数
*args
**kwargs
e、全局变量和局部变量
全局:
大写
修改,global
局部变量:
小写,仅仅在代码块中能用
原创文章,作者:Maggie-Hunter,如若转载,请注明出处:https://blog.ytso.com/12376.html