我要买房网,广州网站优化招聘,中企动力全球邮企业邮箱,app定制软件Python六级考试笔记【源源老师】
六级标准 一、 掌握文件操作及数据格式化。 二、 掌握数据可视化操作。 三、 理解类与对象的概念#xff0c;初步掌握类与对象的使用。 四、 掌握SQLite数据库基础编程。 五、 掌握简单的使用tkinter的GUI设计。
1. 文件操作
#xff0…Python六级考试笔记【源源老师】
六级标准 一、 掌握文件操作及数据格式化。 二、 掌握数据可视化操作。 三、 理解类与对象的概念初步掌握类与对象的使用。 四、 掌握SQLite数据库基础编程。 五、 掌握简单的使用tkinter的GUI设计。
1. 文件操作
1文件的编码
编码就是一种规则集合记录了内容和二进制间进行相互转换的逻辑。计算机只认识0和1所以需要将内容翻译成0和1才能保存在计算机中。编码有许多中我们最常用的是UTF-8编码。比如使用UTF-8编码将“我喜欢你”编码成101110111。
2文件的解码
解码是编码的逆过程即将编码后的数据还原为原始格式或表示。解码会将计算机保存的0和1反向翻译回可以识别的内容。比如使用将上面的101110111通过UTF-8解码为汉字我喜欢你。
3文件的读取 内存中存放的数据在计算机关机后就会消失。要长久保存数据就要使用硬盘、光盘、U 盘等设备。为了便于数据的管理和检索引入了“文件”的概念。 一篇文章、一段视频、一个可执行程序都可以被保存为一个文件并赋予一个文件名。操作系统以文件为单位管理磁盘中的数据。一般来说文件可分为文本文件、视频文件、音频文件、图像文件、可执行文件等多种类别。 在日常生活中文件操作主要包括打开、关闭、读、写等操作。
4文件的写入
5文件的追加
6文件操作综合案例
2. 数据可视化
3. 类
1类的来源/作用
在计算机中使用类可以做到与生活中的一样设计表格设计类、打印表格创建对象、填写表格对象属性赋值的形式来组织数据。
#1.设计一个类类比生活中设计一张登记表
class Student:name Nonegender Nonenationnality Nonenative_place Noneage None#2.创建一个对象类比生活中打印一张登记表
stu_1 Student()#3.对象属性进行赋值类比生活中填写表单stu_1.name 小明
stu_1.gender 男
stu_1.nationnality 中国
stu_1.native_place 广东深圳
stu_1.age 12#4.获取对象中的信息
print(stu_1.name)
print(stu_1.gender)
print(stu_1.nationnality)
print(stu_1.native_place)
print(stu_1.age)2类的定义和使用
类的使用语法 成员变量和成员方法 成员方法的定义 演示面向对象类中的成员方法定义和使用
# 定义一个带有成员方法的类
class Student:name None # 学生的姓名def say_hi(self):print(f大家好呀我是{self.name}欢迎大家多多关照)def say_hi2(self, msg):print(f大家好我是{self.name}{msg})stu Student()
stu.name 周杰轮
stu.say_hi2(哎哟不错哟)stu2 Student()
stu2.name 林俊节
stu2.say_hi2(小伙子我看好你)3类和对象 基于类创建对象的语法对象名 类名称() 类只是一种程序内的设计图纸需要基于图纸生产出实体对象才能正常工作这个过程称之为面向对象编程。例如下面闹钟的例子 演示类和对象的关系即面向对象的编程套路思想
# 设计一个闹钟类
class Clock:id None # 序列化price None # 价格def ring(self):import winsound# 播放一个音调为 2000 Hz持续 3 秒的蜂鸣声 winsound.Beep(2000, 3000)# 构建2个闹钟对象并让其工作
clock1 Clock()
clock1.id 003032
clock1.price 19.99
print(f闹钟ID{clock1.id}价格{clock1.price})
# clock1.ring()clock2 Clock()
clock2.id 003033
clock2.price 21.99
print(f闹钟ID{clock2.id}价格{clock2.price})
clock2.ring()4构造方法
成员变量属性的赋值 构造方法 构造方法注意事项 演示类的构造方法# 演示使用构造方法对成员变量进行赋值
# 构造方法的名称__init__class Student:def __init__(self, name, age ,tel):self.name nameself.age ageself.tel telprint(Student类创建了一个类对象)stu Student(周杰轮, 31, 18500006666)
print(stu.name)
print(stu.age)
print(stu.tel)5魔术方法 演示Python内置的各类魔术方法
class Student:def __init__(self, name, age):self.name name # 学生姓名self.age age # 学生年龄# __str__魔术方法当你打印一个对象时这个方法会被调用。它返回了一个字符串包含学生的姓名和年龄。def __str__(self):return fStudent类对象name:{self.name}, age:{self.age}# __lt__魔术方法当你将两个对象进行“”或者“”的比较这个方法会被调用def __lt__(self, other):return self.age other.age# __le__魔术方法当你将两个对象进行“”或者“”的比较这个方法会被调用def __le__(self, other):return self.age other.age# __eq__魔术方法如果这个方法不写两个对象用“”比较的是内存地址如果写了按 __eq__方法实际情况做比较def __eq__(self, other):return self.age other.agestu1 Student(周杰轮, 31)
stu2 Student(林俊节, 36)
print(stu1)# Student类对象name:周杰轮, age:31
print(stu1 stu2)# True
print(stu1 stu2)# True
print(stu1 stu2)# False6面向对象
面向对象它是许多编程语言都支持的一种编程思想简单理解就是基于模板类去创建实体对象使用对象完成功能的开发。面向对象三大特性封装、继承、多态。
【1】封装 封装将现实世界事物的属性和行为封装到类中描述为成员变量和成员方法从而完成程序对现实世界事物的描述。 私有成员在现实世界中有些属性和行为是不公开的没有开放给用户在类中也提供了私有成员的形式来支持即私有成员变量、私有成员方法。定义私有成员的方法如下 私有成员变量变量名以__开头双下划线 私有成员方法方法名以__开头双下划线
【注意】私有变量无法被类对象直接读取或者赋值私有方法无法被类对象直接使用。只有类中的其他成员访问私有成员。 演示面向对象封装思想中私有成员的使用
# 定义一个类内含私有成员变量和私有成员方法
class Phone:__current_voltage 0.5 # 当前手机运行电压 __current_voltage私有成员变量def __keep_single_core(self): # __keep_single_core私有成员方法print(让CPU以单核模式运行)def call_by_5g(self):if self.__current_voltage 1:print(5g通话已开启)else:self.__keep_single_core()print(电量不足无法使用5g通话并已设置为单核运行进行省电。)phone Phone()# print(phone.__current_voltage) # 报错私有变量无法被类对象直接读取或者赋值
# phone.__keep_single_core # 报错私有方法无法被类对象直接使用phone.call_by_5g() # 类中的其他成员访问私有成员【2】继承
继承从父类继承复制过来成员变量和成员方法不含私有继承分为单继承和多继承。
单继承一个子类继承一个父类
# 演示单继承
class Phone:IMEI None # 序列号producer ITCAST # 厂商def call_by_4g(self):print(4g通话)class Phone2022(Phone):face_id 10001 # 面部识别IDdef call_by_5g(self):print(2022年新功能5g通话)phone Phone2022()
print(phone.producer) #ITCAST
phone.call_by_4g() #4g通话
phone.call_by_5g() #2022年新功能5g通话多继承一个子类继承多个父类
【注意】多个父类中如果有同名成员默认谁先继承谁的优先级更高。
# 演示多继承class Phone:IMEI None # 序列号producer ITCAST # 厂商def call_by_4g(self):print(4g通话)class NFCReader:nfc_type 第五代producer HMdef read_card(self):print(NFC读卡)def write_card(self):print(NFC写卡)class RemoteControl:rc_type 红外遥控def control(self):print(红外遥控开启了)class MyPhone(Phone, NFCReader, RemoteControl):pass #pass表示占位语句无内容的意思保证函数的完整性phone MyPhone()
print(phone.producer) #ITCAST 【Phone和NFCReader都有该成员默认谁先继承谁的优先级更高】
phone.call_by_4g() #4g通话
phone.read_card() #NFC读卡
phone.write_card() #NFC写卡
phone.control() #红外遥控开启了【扩展】复写即在子类中重新定义父类中的属性或方法。复写后类对象调用成员后会调用复写后的新成员。
class Phone:IMEI None # 序列号producer ITCAST # 厂商def call_by_5g(self):print(使用5g网络进行通话)# 定义子类复写父类成员
class MyPhone(Phone):producer ITHEIMA # 复写父类的成员属性def call_by_5g(self): # 复写父类的成员方法print(开启CPU单核模式确保通话的时候省电)phone MyPhone()
print(phone.producer) #ITHEIMA
phone.call_by_5g() #开启CPU单核模式确保通话的时候省电如果还需要调用被复写的父类成员需要使用特殊方式如下 方式一父类名. 父类名.成员变量 父类名.成员方法 方式二super(). super().成员变量 super().成员方法() class Phone:IMEI None # 序列号producer ITCAST # 厂商def call_by_5g(self):print(使用5g网络进行通话)# 定义子类复写父类成员
class MyPhone(Phone):producer ITHEIMA def call_by_5g(self):print(开启CPU单核模式确保通话的时候省电)# 方式1Phone.call_by_5g(self)# 方式2# super().call_by_5g()phone MyPhone()
phone.call_by_5g()【3】多态
多态多种状态即完成某个行为时使用不同的对象会得到不同的状态。 class Animal:def speak(self):passclass Dog(Animal):def speak(self):print(汪汪汪)class Cat(Animal):def speak(self):print(喵喵喵)def make_noise(animal):制造点噪音需要传入Animal对象animal.speak()# 演示多态使用2个子类对象来调用函数
dog Dog()
cat Cat()make_noise(dog) #汪汪汪
make_noise(cat) #喵喵喵抽象类好比定义一个标准包含一些抽象方法要求子类必须复写父类的方法。比如刚刚提到的Animal中的speak 方法就是一个抽象类。 抽象类一般配合多态使用获得不同的工作状态再比如下面 的例子
# 演示抽象类class AC:def cool_wind(self):制冷passdef hot_wind(self):制热passdef swing_l_r(self):左右摆风passclass Midea_AC(AC):def cool_wind(self):print(美的空调制冷)def hot_wind(self):print(美的空调制热)def swing_l_r(self):print(美的空调左右摆风)class GREE_AC(AC):def cool_wind(self):print(格力空调制冷)def hot_wind(self):print(格力空调制热)def swing_l_r(self):print(格力空调左右摆风)def make_cool(ac):ac.cool_wind()midea_ac Midea_AC()
gree_ac GREE_AC()make_cool(midea_ac) # 美的空调制冷
make_cool(gree_ac) # 格力空调制冷