1.函数
##一般格式
def 函数名(参数列表): 函数体
##参数传递:
1.在Python中,类型属于对象,变量没有类型,他仅仅是一个对象的引用(指针)。
2.在Python中一切都是对象,只有可更改对象和不可更改对象。strings, tuples, 和 numbers 是不可更改的对象,而 list,dict 等则是可以修改的对象。
相比于c语言,可变类型的看做传址,不可变的看做传值。对于不可变对象理解在第一天学习笔记中。
#coding=UTF-8 def change(mylist): mylist.append([1,2,3,4]) print"函数内取值:",mylist return def ch(a): a = 9 print "函数内a的值", a return mylist=[10,20,30] change(mylist) print"函数外取值:",mylist a = 11 ch(a) print "函数外a的值", a
##参数
关键字参数,使用关键字参数可以不计较传参的顺序,以关键字来判别
def stu(name,age):
print"Name",name
print"Age",age
tol = name+" "+str(age)
return tol
tol = stu(age=18,name="leo")
print(tol)
不定长参数
def C(classname,*person): print(classname), for var in person: print var, return C(1600130217,10,11,12,13,14,15,16,17,18)
其中*以元组方式存储,**是以字典方式,
##全局与局部变量
对于变量作用域,变量的访问以 L(Local) –> E(Enclosing) –> G(Global) –>B(Built-in) 的规则查找,即:在局部找不到,便会去局部外的局部找(例如闭包),再找不到就会去全局找,再者去内建中找。
Money = 2000 def AddMoney(): global Money#确认Money为全局变量,因为默认情况下Python假设所有函数内的变量为局部变量,所以必须要用global声明 Money+=1 print Money AddMoney() print Money
##模块
用import来引用要用的模块,还可以用from modname import *
##global 和 nonlocal关键字
当内部作用域想修改外部作用域的变量时,就要用到global和nonlocal关键字了。