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.rhkb.cn/news/259094.html

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

相关文章

每日OJ题_二叉树dfs①_力扣2331. 计算布尔二叉树的值

目录 力扣2331. 计算布尔二叉树的值 解析代码 力扣2331. 计算布尔二叉树的值 2331. 计算布尔二叉树的值 难度 简单 给你一棵 完整二叉树 的根&#xff0c;这棵树有以下特征&#xff1a; 叶子节点 要么值为 0 要么值为 1 &#xff0c;其中 0 表示 False &#xff0c;1 表示…

【C++】模版初阶

目录 泛函编程 函数模版 概念 格式 原理 实例化 模版函数的匹配原则 类模板 定义格式 泛函编程 如何实现一个通用的交换函数呢&#xff1f; void Swap(int& left, int& right) {int temp left;left right;right temp; } void Swap(double& left, dou…

数学建模:K-means聚类手肘法确定k值(含python实现)

原理 当K-means聚类的k值不被指定时&#xff0c;可以通过手肘法来估计聚类数量。   在聚类的过程中&#xff0c;随着聚类数的增大&#xff0c;样本划分会变得更加精细&#xff0c;每个类别的聚合程度更高&#xff0c;那么误差平方和&#xff08;SSE&#xff09;会逐渐变小&am…

上门回收小程序开发,互联网下发展机遇

在当下生活水平大幅度上升发展下&#xff0c;回收成为了人们日常生活中的一部分。 如今&#xff0c;随着互联网的快速发展&#xff0c;回收行业也进行了升级换代&#xff0c;由传统的线下回收门店到回收箱在到当下的线上互联网回收模式&#xff0c;迈向了“互联网废品回收”的…

如何清除谷歌浏览器的缓存?这里有详细步骤

如果你想解决加载或格式化问题&#xff0c;以改善你在谷歌Chrome上的浏览体验&#xff0c;那么清除缓存和cookie是一个很好的开始。以下是删除它们的方式和操作。 删除缓存和cookie时会发生什么 当你访问一个网站时&#xff0c;它有时会保存&#xff08;或记住&#xff09;某…

使用 Chainlit, Langchain 及 Elasticsearch 轻松实现对 PDF 文件的查询

在我之前的文章 “Elasticsearch&#xff1a;与多个 PDF 聊天 | LangChain Python 应用教程&#xff08;免费 LLMs 和嵌入&#xff09;” 里&#xff0c;我详述如何使用 Streamlit&#xff0c;Langchain, Elasticsearch 及 OpenAI 来针对 PDF 进行聊天。在今天的文章中&#xf…

002 GIS数据的基本格式

1 地理空间信息 地理空间信息的数据模型是现实世界的特征组到理想状态的简化或抽象&#xff0c; 并且可以在各种GIS软件的用户使用层&#xff08;结构化&#xff09;模型有很多。 该层模型由多个空间数据的分层构建&#xff0c;如 图 1.5 。 根据内容&#xff0c;离散特征信息…

React环境配置

1.安装Node.js Node.js官网&#xff1a;https://nodejs.org/en/ 下载之后按默认选项安装好 重启电脑即可自动完成配置 2.安装React 国内使用 npm 速度很慢&#xff0c;可以使用淘宝定制的 cnpm (gzip 压缩支持) 命令行工具代替默认的 npm。 ①使用 winR 输入 cmd 打开终端 ②依…

怎样让MCU/SFU视频会议ovmedia 接入GB28281监控视频参会互动

在国内视频应用对GB监控接入是常规操作&#xff0c;很多系统需要接入监控视频交互处理。我们以ovmedia视频会议为例做一个接入互动。 GB28181协议在流媒体系统较为普及&#xff0c;我们以开源SRS系统对接监控端再接入会议&#xff08;也可以用商用GB流平台&#xff0c;操作基本…

VNCTF 2024 Web方向 WP

Checkin 题目描述&#xff1a;Welcome to VNCTF 2024~ long time no see. 开题&#xff0c;是前端小游戏 源码里面发现一个16进制编码字符串 解码后是flag CutePath 题目描述&#xff1a;源自一次现实渗透 开题 当前页面没啥好看的&#xff0c;先爆破密码登录试试。爆破无果…

MATLAB知识点:uniquetol函数(★★☆☆☆)考虑了一定的容差的unique函数

讲解视频&#xff1a;可以在bilibili搜索《MATLAB教程新手入门篇——数学建模清风主讲》。​ MATLAB教程新手入门篇&#xff08;数学建模清风主讲&#xff0c;适合零基础同学观看&#xff09;_哔哩哔哩_bilibili 节选自第3章&#xff1a;课后习题讲解中拓展的函数 在讲解第三…

wayland(xdg_wm_base) + egl + opengles——dma_buf 作为纹理数据源(五)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、EGL dma_buf import 相关的数据结构和函数1. EGLImageKHR2. eglCreateImageKHR()3. glEGLImageTargetTexture2DOES()二、egl 中 import dma_buf 作为纹理的代码实例1. egl_wayland_dmabuf_…

洛谷: P1479 宿舍里的故事之五子棋

题目链接: https://www.luogu.com.cn/problem/P1479 思路: 这道题目可以打表或者搜索。每个位置有选择/不选择两种情况。搜索的时候我们一行一行的搜索&#xff0c;直到使用的棋子达到n为止。b[i]为五子连线的数量&#xff0c;b[i] 1表示五子连线的数量可以取i&#xff0c;在…

圆筒形正压式采样器

一个人不愿意努力的时候&#xff0c;你怎样帮他也没有用&#xff01;一个人不愿意被点燃的时候&#xff0c;你怎样燃烧也没有用&#xff01;自己想醒&#xff0c;没有闹铃也能够醒来&#xff01;自己想努力&#xff0c;没有帮助也能够成功&#xff01;自己想点燃梦想&#xff0…

项目管理工具软件Maven趣闻

版权声明 本文原创作者&#xff1a;谷哥的小弟作者博客地址&#xff1a;http://blog.csdn.net/lfdfhl Maven这个单词来自于意第绪语&#xff08;Yiddish&#xff09;&#xff0c;这是一种与德语和希伯来语有密切关系的犹太民族语言。在这个语境中&#xff0c;Maven意为“知识的…

什么原因导致百度百科建立一直审核不通过?

百科词条对网络营销实在是太重要了&#xff0c;不管是个人还是企业想在网上开展业务&#xff0c;都必要建立百科词条。自己动手编辑百科词条&#xff0c;搞个几十次也审核不过的情况比比皆是。 为什么百度百科总是审核不通过&#xff1f;百度官方发表过声明表示百度百科词条是人…

C#学习(十三)——多线程与异步

一、什么是线程 程序执行的最小单元 一次页面的渲染、一次点击事件的触发、一次数据库的访问、一次登录操作都可以看作是一个一个的进程 在一个进程中同时启用多个线程并行操作&#xff0c;就叫做多线程 由CPU来自动处理 线程有运行、阻塞、就绪三态 代码示例&#xff1a; cl…

C++ STL: list使用及源码剖析

list使用 list常用函数及使用&#xff08;1&#xff09; #include <iostream> #include <list> #include <algorithm>int main() {// 创建liststd::list<int> myList {5, 2, 9, 1, 5, 6};// 打印liststd::cout << "Original list: &quo…

【论文精读】GPT2

摘要 在单一领域数据集上训练单一任务的模型是当前系统普遍缺乏泛化能力的主要原因&#xff0c;要想使用当前的架构构建出稳健的系统&#xff0c;可能需要多任务学习。但多任务需要多数据集&#xff0c;而继续扩大数据集和目标设计的规模是个难以处理的问题&#xff0c;所以只能…

鸿蒙OS跨进程IPC与RPC通信

一、IPC与RPC通信概述 基本概念 IPC&#xff08;Inter-Process Communication&#xff09;与RPC&#xff08;Remote Procedure Call&#xff09;用于实现跨进程通信&#xff0c;不同的是前者使用Binder驱动&#xff0c;用于设备内的跨进程通信&#xff0c;后者使用软总线驱动…