初始化类的属性
def __init__(self,name): #self不能省
self.name=name
注意:在定义类方法时,self不能省
继承
class 子类名(父类名):
class electtricCar(Car):
def __init__(self,brand,model,year):
super().__init__(brand,model,year) #声明继承父类属性 不需要加self了
子类自动继承父类的方法
重写父类的方法----多态
对方法重写时,方法名相同
文件的读写
文件的打开
whit open("文件路径","打开模式",encoding="操作文件的字符编码" ) as f:
"对文件进行相应的读写操作"
使用with 块的好处:执行完毕后,自动对文件进行close操作
with open("D:\\1.txt","r",encoding="utf-8") as f:
text=f.read()
print(text)
1 2 3 4 5
程序与文件在同一文件夹,文件路径可简化成文件名
文件的打开模式:
‘r’ 只读模式。如果文件不存在,返回异常FileNotFoundError,默认值;
‘w’ 覆盖写模式,文件不存在则创建,存在则完全覆盖;
‘x’ 创建写模式,文件不存在则创建,存在则返回异常FileExistError;
‘a’ 追加写模式,文件不存在则创建,存在则在文件最后追加内容;
‘b’ 二进制文件模式;
‘t’ 文本文件模式,默认值;
‘+’ 与r/w/x/a一同使用,在原功能的基础上增加同事读写的功能
字符编码:
utf-8 :万国码,覆盖范围广
gdk: 专门解决中文编码
文件的读取
读取整个文件:
f.read()
逐行进行读取—f.readline()**
with open("D:\\1.txt","r",encoding="utf-8") as f:
while True:
text = f.readline()
if not text: #如果文件为空就结束
break
else:
print(text,end="") #end 保留原文的换行符,使print的换行符不起作用
注意:空的行并不空,有一个换行符 ,每一行都有一个换行符
读入所有行,以每行为元素形成一个列表-----f.readlines()
文件的写入
with open("D:\\2.txt","w",encoding="utf-8") as f:
f.write("hello \n")
f.write("i am leect\n")
f.write("what's your name?\n")
追加模式—a
将一个元素元素为字符串的列表整体写入文件—-f.writelines()
既读又写
“r+”
如果文件名不存在,则报错
指针在开始
要把指针移到末尾才能开始写,否则会覆盖前面的内容
with open ("D:\\1.txt","r+",encoding="utf-8") as f:
for line in f:
print(line) #全部读一遍之后,指针到达结尾
f.seek(0,2) #或者可以将指针移到末尾Ff.seek(偏移字节数,位置(0:开始;1:当前位置;2:结尾))
f.writelines(text)
“w+”
若文件不存在,则创建
若文件存在,会立即清空原内容
“a+”
若文件不存在,则创建
指针指向最后,不会清空原内容
数据的存储与读取
通用的数据格式,可以在不同语言中加载和存储
1 csv 格式 (由逗号将数据分开的字符序列,可以由excel打开)
读取
with open("D:\\3.csv","r",encoding="utf-8") as f:
ls=[]
for line in f: #逐行读取
ls.append(line.strip("\n").split(",")) #去掉每行的换行读,然后用“,”进行分割
for res in ls:
print(res)
['1,2,3,']
['4,5,6,']
['1,0,']
写入
with open("D:\\4.csv","w",encoding="utf-8") as f:
for low in ls:
f.write(",".join(low)+"\n") #用逗号组合成字符串形式,末尾加换行符
也可以借助csv模块完成上述操作
json格式—常用来存储字典类型
写入 dump()
读取 load()
异常处理
常见异常的产生
1 除0 运算—ZeroDivisionError
2.找不到可读文件-----FileNotFoundError
3.值错误—ValueError
传入一个调用者不期望的值,即使这个值的类型是正确的
4 索引错误-----IndexError
下标超出序列边界
5 类型错误----TypeError
传入对象类型与要求不符
异常处理
try_ except
如果try中代码块顺利执行,except不被触发
如果try内代码块发生错误,触发except,执行except内代码块
python内置模块
时间库 time
随机库 random
容器数据类型 collection
迭代器函数 itertool
模块的导入
1.导入整个模块 import 模块名
调用方式: 模块名 . 函数名或类名
2 从模块中导入类或函数 ---- from 模块 import 类名或函数名
调用方式: 函数名或类名
3 导入模块中所有的类和函数 ----- **from 模块 import ***
调用方式: 函数名或类名
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)