一.函数
1.定义函数
def functionName():
代码
2.修改全局变量
global number:修改全局变量number的值
3.函数返回值
如果一个函数中有多个return,只要执行一个return,即结束当前函数,类似于break。当返回多个函数值时在return后面写下所有返回值,以逗号隔开,以元组显示,也可以直接赋值给列表和字典。
4.缺省参数
在定义当中直接默认某一个参数,则可以不传入该参数。如deftest(a,b=”中国”),且缺省参数b必须放在后面,则调用的时候可以直接test(11),也可以test(12,”其他国家”),此时b便不取默认值,而是使用传入值。
5.不定长参数
不确定参数长度时,def test(a,*b),*表示不定长,b通过元组显示。def test(a,*b,**c),c表示可以命名的其他参数,通过字典显示。
6.参数传递修改
a+=a:在原数据上修改
a=a+a:定义一个a,不在原来数据修改
7.递归函数
一定要设置递归函数的结束条件
二.引用
1.id(a):求变量a的地址
2.可变类型和不可变类型
可变类型,值可以改变:列表list,字典dict
不可变类型,值不可以改变:数值类型int,long,bool,float,字符串str,元组tuple。对于可变类型,改变值后id不变,对于不可变类型,改变值后id改变。引用就是一个贴标签的过程,对某一个id的值贴一个变量标签。
3.如果全局变量时可变类型,则可以在函数中直接进行改变,而不可变类型则不能直接在函数中修改,在修改时必须使用global。
三.面向对象
1.定义类
class 类名:
方法
2.初始化方法(函数)
def __init__(self):
self.xxx=xxx
3.打印类的内容
def __str__(self):
msg = xxx
return xxx
4.删除:如果检测到一个对象没有任何用处了,就把这个对象删除,即不存在引用了
def __del__(self):
return
四.继承
1.继承结构
class animal(object):#父类
def __init__(self)
slef.name=xxx
class dog(animal):#子类
def printname(self)
print(“xxxxxx”)
注意:
(1)私有属性self.__xx不会被继承,公有属性self. xx会被继承
(2)如果是继承父类的方法,则可访问父类的私有属性,如果是子类自定义方法则不能访问父类的私有属性。
(3)私有属性只能在方法内被调用,即在方法前加”__”,即不能在外部的对象调用,可在类的内部定义方法调用。
(4)私有方法不继承
2.重写父类
class animal(object):#父类
def bark(self)
print(“啊啊啊啊”)
class cat(animal):#子类
def bark(self)
print(“喵喵喵”3.)
tomcat = cat()
tomcat.bark()
3.属性:在class里面,在方法外面的属性称为类属性,跟着类走;放在方法里面的属性,即实例里面的属性称为实例属性,跟着实例走。
4.类方法:在方法面前写上@classmethod,通过类才能修改类属性
class animal():
number = 0#类属性
@classmethod#类方法,用于修改类属性
def setNewNumber(cls)#注意此处是cls不是self
cls.number +=1
五.异常
1.捕获异常
try:#可能出现错误的代码
print(‘开始’)
open(‘123.tex’,’r’)
print(‘结束’)
except IOError:#此处的IOError为运行时报的错误,根据错误修改此处
pass
2.不管有没有异常,一定执行的finally内的一部分程序
try:
f = file(‘123.tex’)
while True:
print(‘开始’)
finally:
f.close()
print(‘关闭’)
3.解释异常程序使用
try:#可能出现错误的代码
print(‘可能出错的程序’)
except IOError:
print(‘产生错误了%s’% IOError)
else:
print(‘程序没有出错’)
finally:
print(‘不管有木有错反正我都要执行’)