类
面向对象编程(OOP)
类:一类事物,如鸟类,狗类
对象:一类事物的一个个体,如那一只小鸟,我家养的那条狗Tom
类的基本内容
驼峰命名,如maleDog
class maleDog: #也可以写成class maleDog(object):
#属性(变量)
color = "black"
leg = 4
#方法(函数)
def run(self):
#方法-跑步
print("running")
def say(self):
#打印这个对象本身的一个属性
print(self.color)
#魔法方法
def __init__(self,EAR):
#这是初始化方法,创建对象时一定会调用一次,一般用于初始化属性,这个属性不能在上面属性
#那里重复出现
self.mouth = 1
self.ear = EAR
======================
对象
类:一类事物,如鸟类,狗类
对象:一类事物的一个个体,如那一只小鸟,我家养的那条狗Tom
创建对象
Tom = maleDog() #创建一个对象,赋给一个变量Tom
print(Tom.color) #调用对象的属性color,返回"black"
Tom.run() #调用对象的方法run(),执行函数内的代码print("running")
Tom.say() #输出"black"
Jerry = maleDog(2)
print(Jerry.ear) #输出2
文件对象
读取
可以操作不止是.txt文件,图片、音乐、exe等文件都可以操作。
1.建立文件对象
f = open("e:\\1.txt","rb")
2.读取文件内容
print(f.read()) 文件内容是有光标的,read读取完的同时,光标在最后面。f.seek(0,0)这个就是光标归0
print(f.readline()) 读取一行
print(f.readlines()) 读取所有行,转换成列表,一行是一个元素
3.关闭文件
f.close() 关闭文件,释放内存
rb:以二进制的方式读取
前面加个b,表示是二进制
写入
可以操作不止是.txt文件,图片、音乐、exe等文件都可以操作。
1.建立文件对象
f = open("e:\\1.txt","wb") 文件不存在时会创建新文件,存在时会清空
2.写文件内容
f.write(b"abc") 返回要写入文本的字节数
f.writelines([b"abc",b"bcd\n"]) 写入多行,换行要通过换行符\n
3.关闭文件
f.close() 关闭文件,释放内存
多次读取
读取时,会把内容放入内存,因此文件多大,就占用多大内存
可以只读一部分信息(如下图的4096字节),然后循环读取,当读取完(data == b””)时,跳出循环
=======================
函数
定义函数
def 函数名( ) :
"描述函数的作用"
代码
return 代码
return 是可选的,有的话就是调用函数执行里面代码,直到return时,把函数替换成return后的结果
def a():
"用于打印abc字符串"
print("abc")
def b(i) :
"返回加1后的结果"
i+=1
return i
调用(使用)函数
不调用函数时,是不会执行函数的内容
函数名( )
def a():
"用于打印abc字符串"
print("abc")
a() 输出abc
help(a) 显示:用于打印abc字符串
形参、实参
形参:如下面函数a( i )例子中的 i,就是形参,只用于a函数中计算,计算完就销毁,只是形式上的参数。函数外面定义的 i 不会影响函数内使用的 i
实参:如a(2) 中的2就是实参,是具体实际的参数,这个2会进入函数内部代替 i 参与计算,也就是函数内部变成:
a(2)
b=20
return 3 = 2+1
i =10
def a(i) :
"返回加1后的结果"
b=20
i+=1
return i
print(a(2))
print(b) 出错
=======================
模块
一些事先写好的代码,可以通过import 后,直接调用代码来直接使用
可以引入同一个文件夹内的模块,也可以引入python文件夹内的lib文件夹的模块
创建自定义模块
在想使用模块的那个.py的文件夹中,创建一个xxx.py文件;
或者
在python文件夹内的lib文件夹中,创建一个xxx.py文件;
模块格式
.py的文件名直接是模块名name
一般模块最上方是输入””” 模块描述 “””
模块内可以定义一些函数,别人用dir( 模块名 ) 时就会显示可以调用的函数名。
后面help( 模块名 )时,就会出现如下的信息:
调用模块
import 模块名 引入模块
模块名.函数名() 调用模块内的函数
=======================
异常
语句1执行的过程中,如果报错,同时如果报的是“异常1”这个错误,那么就会无视语句n,执行语句2,不会提示报错信息
try:
语句1
语句n
except 异常1:
语句2
except (异常2,...,异常n):
pass
异常名:
如下的ValueError 就是异常名
pass:就是跳过,不执行任何语句也不报错