Python六级考试笔记

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 f"Student类对象,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)# False

(6)面向对象

面向对象:它是许多编程语言都支持的一种编程思想,简单理解就是,基于模板(类)去创建实体(对象),使用对象完成功能的开发。面向对象三大特性:封装、继承、多态。

【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 = "HM"def 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) # 格力空调制冷

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/691736.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

3、安装插件

以下插件请按需安装 Mask Passwords 使用此插件可以将在console中出现的password加密&#xff0c;以防止密码泄露。 Job Import Plugin 支持从其他的Jenkins上远程导入job Extended E-mail Notification 在job构建后发送邮件 Python Adds the ability to execute python scrip…

2024面试offer收割宝典百度篇

1.JAVA 中的几种基本数据类型是什么,各自占用多少字节。 byte: 占用 1 个字节(8位),取值范围是-128到127。 short:占用 2 个字节(16位),取值范围是-32,768到32,767。int : 占用 4 个字节(32位),取值范围是 2^{31} (-2,147,483,648) 到 2^{31-1} (2,147,483,647)。 l…

虚拟机 安装 centos7 带桌面

虚拟机 安装 centos7 流程 https://mirrors.tuna.tsinghua.edu.cn/centos/7.9.2009/isos/x86_64/ CentOS-7-x86_64-DVD-2009.iso vmware 安装 centos7 的时候&#xff0c; 如果 不是 选择的 稍后 安装操作系统 &#xff0c; 会不让你选择配置选项&#xff0c;自动帮你把系统…

技术选型指南:Oracle、SQL Server还是DB2?

Oracle vs SQL Server vs DB2 - 选哪个好&#xff1f; 在企业级数据管理领域&#xff0c;常用的几个选择有Oracle、SQL Server和DB2。 首先&#xff0c;我们从以下几个方面做一下对比&#xff1a; 1. 性能和稳定性&#xff1a; Oracle: Oracle就像是那种精密的瑞士手表&…

面试官:如何设计幂等性接口

什么是幂等性&#xff1f; 所谓幂等性&#xff0c;就是一次操作和多次操作同一个资源&#xff0c;所产生的影响均与一次操作的影响相同。 "幂等&#xff08;idempotent、idempotence&#xff09;是一个数学与计算机学概念&#xff0c;常见于抽象代数中。 幂等函数&…

Jenkins配置node节点

1、添加节点 2、配置node主机的java环境 注意&#xff0c;jdk的位置和版本要和master保持一致 sudo apt-get update sudo apt-get install openjdk-8-jre vim /etc/enviroment写入&#xff1a;export JAVA_HOME/usr/lib/jvm/openjdk-8-jre 按wq!退出 再输入&#xff1a;s…

[office] excel表格如何设置取整数 #知识分享#其他

excel表格如何设置取整数 Excel中有很多小时都需要取整数&#xff0c;小数具体该如何取整呢?下面是由小编分享的excel中取整数的教程&#xff0c;欢迎大家来到学习Excel表格。 excel表格中设置取整数的教程 取整数步骤1&#xff1a;如图所示&#xff0c;表格中有几组小数&…

记一次 Flink 作业启动缓慢

记一次 Flink 作业启动缓慢 背景 应用发现&#xff0c;Hadoop集群的hdfs较之前更加缓慢&#xff0c;且离线ELT任务也以前晚半个多小时才能跑完。此前一直没有找到突破口所以没有管他&#xff0c;推测应该重启一下Hadoop集群就可以了。今天突然要重启一个Flink作业&#xff0c…

【工具类】非 sudo 运行 docker

非 root 运行 docker 命令 sudo groupadd docker sudo usermod -aG docker $USER newgrp docker sudo chown root:docker /var/run/docker.sock sudo chown "$USER":"$USER" /home/"$USER"/.docker -R sudo chmod grwx "$HOME/.docker&quo…

【git 使用】git 中head、工作树、和索引分别是什么,有什么关系和区别

HEAD 定义&#xff1a;HEAD 是指向当前所在分支&#xff08;或者是某个特定的提交&#xff09;的指针&#xff0c;它表示当前工作目录正在处于哪个提交或分支上。作用&#xff1a;HEAD 指示了当前工作目录的状态&#xff0c;可以通过 HEAD 来确定当前处于哪个分支上&#xff0…

OkHttp Retrofit HttpClient之间的区别

OkHttp、Retrofit 和 HttpClient 是三个不同的 HTTP 客户端库&#xff0c;它们各自有不同的特点和用途。下面是它们之间的主要区别&#xff1a; 1. **OkHttp**&#xff1a; - OkHttp 是一个高性能的 HTTP 和 HTTP/2 客户端&#xff0c;由 Square 公司开发。 - 它…

【Java大数据期末】银行管理系统(MySQL数据库)

诚接C语言、C、Java、Python、HTML、JavaScript、vue、MySQL相关编程作业&#xff0c; 标价10-20每份&#xff0c;如有需要请加文章最下方QQ。 本文资源&#xff1a;https://download.csdn.net/download/weixin_47040861/88850902https://download.csdn.net/download/weixin_4…

SpringBoot集成阿里云OSS、华为云OBS、七牛云、又拍云等上传案例【附白嫖方案】【附源码】

1. 项目背景 唉&#xff01;本文写起来都是泪点。不是刻意写的本文&#xff0c;主要是对日常用到的文件上传做了一个汇总总结&#xff0c;同时希望可以给用到的小伙伴带来一点帮助吧。 上传本地&#xff0c;这个就不水了&#xff0c;基本做技术的都用到过吧&#xff1b; 阿里…

osqp-eigen学习

OSQP文档学习 参考博客&#xff1a; &#xff08;1&#xff09;二次规划&#xff08;QP&#xff09;与OSQP求解器 &#xff08;2&#xff09;如何使用OSQP-Eigen osqp-eigen 1 osqp-eigen接口 以下列问题的求解为例&#xff1a; s.t. 1 ≤ x 1 ≤ 1.5 1≤x_1≤1.5 1≤x1​≤…

毕业设计:基于知识图谱的《红楼梦》人物关系可视化

文章目录 项目介绍部署步骤项目运行 项目介绍 github地址&#xff1a;https://github.com/chizhu/KGQA_HLM?tabreadme-ov-file 基于知识图谱的《红楼梦》人物关系可视化&#xff1a;应该是重庆邮电大学林智敏同学的毕业设计&#xff0c;在学习知识图谱的过程中参考使用。 文…

【开源软件的影响力有多大?】

开源软件的影响力有多大 开源软件的影响力 开源软件的影响力 开源软件对现代技术和发展有着巨大的影响&#xff0c;开源软件指的是那些发布时附带源代码的软件&#xff0c;它们通常允许用户自由地使用、研究、修改和分享软件。以下是一些开源软件影响力的关键方面&#xff1a;…

专修戴尔R730xd服务器闪电灯 心跳亮黄灯故障

2024年开年第二天接到一个用户反馈说他公司有一台DELL PowerEdge R730xd服务器春节前由于市电问题意外断电关机了&#xff0c;刚好碰上春节就没去开机了&#xff0c;今天工厂开工服务器通电发现开不了机&#xff0c;且机器过了一会后报了2个黄灯错误&#xff0c;如下图&#xf…

MFC按钮不响应或无法执行断点

这种情况一般都是资源ID问题导致的,按钮不响应,重新检查资源ID就可以,不要有重复的. 断点无法执行,VS可能异常重新修复一下就可以了. MFC自带字符分割函数, CString str _T(“123-ssd-ddaw-sfsfsf-sfsfser-ffffff”); CString outStr; ::AfxExtractSubString(outStr,str,0,‘…

proton.me邮箱

https://proton.me/ 我开发的chatgpt网站&#xff1a; https://chat.xutongbao.top/

软件代码写作要点

代码写得好不好,完全在于规划的好不好,那么流程图就显得十分的重要. 虽然大神都不用写流程图,对于复杂的流程,事前规划好流程图是必不可少的秘密. 流程图可以清晰的显示逻辑关系,以及逻辑是否有漏洞,简单清晰的流程图可以把复杂问题简单化,更有助于检测错误缺陷,对于代码技能…