day17笔记:
文件:
长期存储数据
单位是字节(byte)
文件的操作
1打开文件
2读写文件
3关闭文件
释放资源(缓冲区,内核资源)
打开文件的函数:
open(文件路径名,打开模式)
方法:
F.close() 关闭文件
#读,仅在r模式下可用
F.read([n]) 读取n个字节/n个字符
F.readline()
F.readlines()
#写,仅在'w','x','a'模式下可用
F.write(字节串/字符串)
F.writelines([字节串/字符串元素])
#以下两个文件通常只对二进制文件操作
F.seek(偏移量,起始位置)
F.tell() #得到当前读写位置的指针
F.flush() #清空缓冲区
打开模式:
二进制模式:'b'
把文件看成是字节数据,读写时会直接把磁盘数据以字节串形式返回或写入
文本模式: 't'
把文件看成是字符数据,读写过程中会自动编/解码(默认是'utf-8'),而且会把换行符进行自动转换
汉字编码
只有两种:
GB系列(国家标准)
GB18030(GBK(GB2312))
Unicode系列(国际标准)
Unicode32(Unicode16))) <-----> UTF-8互转
编码字符串:
'gb18030','gbk','gb2312' ,'utf-8','ascii'...
编码注释:
# -*- coding:gbk -*-
标准输入输出文件:
sys.stdin
sys.stdout
sys.stderr
-------------------------------------------------------------------
day18笔记:
面向对象编程 Object-Oriented Programming
面向过程编程基本单位:函数
面向对象编程基本单位:类 class
什么是对象
对象是指现实中的物体或实体(实例)
什么是面向对象
把一切看成对象(实例...),用各种对象之间的关系来描述事物
对象都有什么特征
对象有很多属性(名词,形容词)
姓名,年龄,性别
对象有很多行为(动作,动词)
学习,吃饭,踢球,工作
什么是类
拥有相同属性和行为的对象分为一组即为一类
类是用来描述对象的工具,用类可以创建此类的对象(实例)
示意:
车(类)--->> BYD E6(京B.88888)) 对象(实例)
\
\-->> BMW X5 (京B.00000)) 对象(实例)
狗(类)--->> 哈士奇 (户籍号:0000001)) 对象(实例)
\
\-->>导盲犬 (户籍号:0000002)) 对象(实例)
类的创建语句 class 语句
语法:
class 类名(继承列表):
'''类的文档字符串'''
实例方法
类变量
类方法(@classmethod)
静态方法(@staticmethod)
作用:
创建一个类
用于描述此类对象的行为和属性
类用于创建此类的一个或对个对象(实例)
说明:
类名必须是标识符
类名实质是变量,它在创建类时绑定一个类
示例见
class.py
class dog:
'''此语句用来定义一个新的类型 dog'''
pass
print(dog)
构造函数:
调用表达式:
类名([创建传参列表])
作用:
创建这个类的实例对象,并返回此实例对象的引用关系
说明:
实例有自己的作用域和名字空间,可以为该实例添加实例变量(也叫属性)
示例见:
construcor.py
class dog:
'''此语句用来定义一个新的类型 dog'''
pass
dog1=dog()
print(id(dog1)) #创建一个实例对象
dog2=dog()
print(id(dog2)) #创建第二个实例对象
lst1=list()
print(id(lst1)) #创建一个列表对象
lst2=list()
print(id(lst2)) #创建第二个实例对象
实例方法:
定义语法:
class 类名(继承列表)
def 实例方法名(self,形参列表):
'''方法的文档字符串'''
语句块
作用:
用于描述一个对象的行为,让此类型的全部对象都用于相同的行为
说明:
1实例方法的实质是函数,是定义在类内的函数
2实例方法至少有一个形参,第一个形参绑定调用这个方法的实例,一般命名为'self'
实例方法的调用语法:
实例.实例方法名(调用实参)
或
类名.实例方法名(实例,调用实参)
示例见:
#instance_method.py
#此示例用于示意为dog类添加吃,睡,玩等实例方法,以实现dog对象的相应行为
class dog:
'''这是一群可爱的小动物'''
def eat(self,food):
'''此方法用来描述小狗吃的行为'''
print('id为%d的'%id(self),end='')
print('小狗正在吃',food)
def sleep(self,hour):
print('id为%d的小狗睡了%d小时'%(id(self),hour))
def play(self,wanju):
print('id为%d的小狗正在玩'%id(self),wanju)
# return 10 方法内可用return返回数据
dog1=dog()
dog1.eat('骨头')
dog1.sleep(1)
dog1.play('球')
dog2=dog()
dog2.eat('狗粮')
dog2.sleep(2)
dog2.play('飞盘')
实例属性: instance attribute
每个实例都可以有自己的变量,称为实例变量(也叫属性)
使用语法:
实例.属性名
赋值规则:
首次赋值则创建此属性
再次赋值则改变此属性的绑定关系
作用:
记录每个对象自身的数据
示例见:
instance_attribute.py
#此示例示意创建和使用实例属性
class dog:
'''这是一个小动物'''
def eat(self,food):
print(self.color,'的',self.kinds,'正在吃',food)
#以下让当前的小狗自己记住吃的是什么
self.last_food=food
def show_info(self):
print(self.color,'的',self.kinds,'上次吃的是:',self.last_food)
dog1=dog()
dog1.kinds='哈士奇' #创建属性
dog1.color='黑白相间'#创建属性color
dog1.color='白色' #修改属性color
dog1.show_info
print(dog1.color,'的',dog1.kinds)
dog1.eat('骨头')
dog2=dog()
dog2.kinds='藏獒'
dog2.color='灰色'
dog2.eat('狗粮')
dog2.show_info
练习:
定义一个'人'类变量
class human:
def set_info(self,name,age,adress='不详')
'''此方法用来给人对象添加"姓名","年龄","家庭住址"属性'''
...此处自己实现
def show_info(self):
'''显示此人信息'''
...#此处自己实现
调用方法如下:
s1=human()
s1.set_info('小张',20,'深圳市南山区')
s2=human()
s2.set_info('小李',18)
s1.show_info() #小张 20岁,家庭住址:深圳...
s2.show_info() #小李 18岁,家庭住址:不详
----------------------------------------------
class human:
def set_info(self,name,age,address='不详'):
'''此方法用来给人对象添加"姓名","年龄","家庭住址"属性'''
self.name=name
self.age=age
self.address=address
def show_info(self):
print(self.name,self.age,'家庭住址:',self.address)
s1=human()
s1.set_info('小张',20,'深圳市南山区')
s2=human()
s2.set_info('小李',18)
s1.show_info()
s2.show_info()
python基础-day18
最新推荐文章于 2025-03-09 18:23:40 发布