面向对象编程(OOP)
类:一类事物,如鸟类,狗类
对象:一类事物的一个个体,如那一只小鸟,我家养的那条狗Tom

类的基本内容

驼峰命名,如maleDog

  1. class maleDog: #也可以写成class maleDog(object):
  2. #属性(变量)
  3. color = "black"
  4. leg = 4
  5. #方法(函数)
  6. def run(self):
  7. #方法-跑步
  8. print("running")
  9. def say(self):
  10. #打印这个对象本身的一个属性
  11. print(self.color)
  12. #魔法方法
  13. def __init__(self,EAR):
  14. #这是初始化方法,创建对象时一定会调用一次,一般用于初始化属性,这个属性不能在上面属性
  15. #那里重复出现
  16. self.mouth = 1
  17. self.ear = EAR

======================

对象

类:一类事物,如鸟类,狗类
对象:一类事物的一个个体,如那一只小鸟,我家养的那条狗Tom

创建对象

  1. Tom = maleDog() #创建一个对象,赋给一个变量Tom
  2. print(Tom.color) #调用对象的属性color,返回"black"
  3. Tom.run() #调用对象的方法run(),执行函数内的代码print("running")
  4. Tom.say() #输出"black"
  5. Jerry = maleDog(2)
  6. print(Jerry.ear) #输出2

文件对象

读取

可以操作不止是.txt文件,图片、音乐、exe等文件都可以操作。

  1. 1.建立文件对象
  2. f = open("e:\\1.txt","rb")
  3. 2.读取文件内容
  4. print(f.read()) 文件内容是有光标的,read读取完的同时,光标在最后面。f.seek(0,0)这个就是光标归0
  5. print(f.readline()) 读取一行
  6. print(f.readlines()) 读取所有行,转换成列表,一行是一个元素
  7. 3.关闭文件
  8. f.close() 关闭文件,释放内存

rb:以二进制的方式读取

image.png
前面加个b,表示是二进制

写入

可以操作不止是.txt文件,图片、音乐、exe等文件都可以操作。

  1. 1.建立文件对象
  2. f = open("e:\\1.txt","wb") 文件不存在时会创建新文件,存在时会清空
  3. 2.写文件内容
  4. f.write(b"abc") 返回要写入文本的字节数
  5. f.writelines([b"abc",b"bcd\n"]) 写入多行,换行要通过换行符\n
  6. 3.关闭文件
  7. f.close() 关闭文件,释放内存

多次读取

读取时,会把内容放入内存,因此文件多大,就占用多大内存

可以只读一部分信息(如下图的4096字节),然后循环读取,当读取完(data == b””)时,跳出循环
image.png

=======================

函数

一些代码的集合,可以通过使用函数,来执行里面的代码

定义函数

  1. def 函数名( ) :
  2. "描述函数的作用"
  3. 代码
  4. return 代码

return 是可选的,有的话就是调用函数执行里面代码,直到return时,把函数替换成return后的结果

  1. def a():
  2. "用于打印abc字符串"
  3. print("abc")
  4. def b(i) :
  5. "返回加1后的结果"
  6. i+=1
  7. return i

调用(使用)函数

不调用函数时,是不会执行函数的内容

  1. 函数名( )
  1. def a():
  2. "用于打印abc字符串"
  3. print("abc")
  4. a() 输出abc
  5. help(a) 显示:用于打印abc字符串

形参、实参

形参:如下面函数a( i )例子中的 i,就是形参,只用于a函数中计算,计算完就销毁,只是形式上的参数。函数外面定义的 i 不会影响函数内使用的 i

实参:如a(2) 中的2就是实参,是具体实际的参数,这个2会进入函数内部代替 i 参与计算,也就是函数内部变成:
a(2)
b=20
return 3 = 2+1

  1. i =10
  2. def a(i) :
  3. "返回加1后的结果"
  4. b=20
  5. i+=1
  6. return i
  7. print(a(2))
  8. print(b) 出错

=======================

模块

image.png

一些事先写好的代码,可以通过import 后,直接调用代码来直接使用

可以引入同一个文件夹内的模块,也可以引入python文件夹内的lib文件夹的模块

创建自定义模块

在想使用模块的那个.py的文件夹中,创建一个xxx.py文件;
或者
在python文件夹内的lib文件夹中,创建一个xxx.py文件;

模块格式

.py的文件名直接是模块名name

一般模块最上方是输入””” 模块描述 “””

模块内可以定义一些函数,别人用dir( 模块名 ) 时就会显示可以调用的函数名。

后面help( 模块名 )时,就会出现如下的信息:
image.png

调用模块

  1. import 模块名 引入模块
  2. 模块名.函数名() 调用模块内的函数

=======================

异常

语句1执行的过程中,如果报错,同时如果报的是“异常1”这个错误,那么就会无视语句n,执行语句2,不会提示报错信息

  1. try:
  2. 语句1
  3. 语句n
  4. except 异常1:
  5. 语句2
  6. except (异常2,...,异常n):
  7. pass

异常名:
如下的ValueError 就是异常名
image.png

pass:就是跳过,不执行任何语句也不报错