Python教程系列专栏
文章平均质量分 84
Python是一种高级编程语言,易于学习和使用。本专栏将带您逐步学习Python编程的基础知识和高级技巧,包括数据类型、函数、模块、面向对象编程、异常处理、网络编程、GUI编程、数据分析和机器学习等方面的内容。通过本专栏的学习,您将获得成为Python编程专家所需的知识和技能,并可以在实际项目中应用
小刘要努力。
未来不担心,过去不后悔,现在不犹豫。
展开
-
96 | Python 小项目—— 学生成绩管理系统
学生成绩管理系统是一个简单的学生课程管理系统,旨在帮助学校或教育机构轻松管理学生的成绩和课程信息。系统提供了登录界面,只有管理员可以访问数据。通过创建一个CSV文件来存储学生信息,可以对数据进行修改和读取。系统使用TKINTER库创建了用户界面,实现了学生信息的增加、删除、修改、查询功能。另外,还提供了学生成绩分析和可视化功能,以便管理员和教师更好地了解学生成绩的分布和表现。学生成绩管理系统是一个简单实用的教育管理工具,能够有效地帮助学校和教师管理学生的成绩和课程信息。原创 2023-08-08 10:39:35 · 1857 阅读 · 0 评论 -
94 | Python 设计模式 —— 观察者模式
观察者模式是一种行为型设计模式,它定义了一种一对多的依赖关系,即一个主题(Subject)对象的状态发生变化时,它会通知所有依赖于它的观察者(Observer)对象,并自动更新它们。观察者模式通过松耦合的方式将主题和观察者分离,使得它们可以独立地进行改变和扩展。在观察者模式中,主题维护一个观察者列表,当主题的状态发生变化时,它会遍历观察者列表,依次通知所有观察者,并调用它们的更新方法。观察者模式是一种非常有用的设计模式,它通过定义一种一对多的依赖关系,将主题和观察者解耦,使得它们可以独立地进行改变和扩展。原创 2019-05-21 23:28:32 · 992 阅读 · 0 评论 -
95 | Python 设计模式 —— 策略模式
策略模式是一种通过定义一系列算法并将其封装在独立的策略类中的设计模式。客户端可以根据需要选择不同的策略类,从而使用不同的算法。策略模式将算法的定义与使用分离,使得算法可以独立于客户端而变化。策略模式由三个核心组件构成:环境类(Context):用于维护对策略类的引用,并在需要时调用策略类的方法。抽象策略类(Strategy):定义了算法的抽象接口,所有具体策略类都要实现这个接口。具体策略类(ConcreteStrategy):实现了抽象策略类定义的接口,提供了具体的算法实现。原创 2023-08-08 09:59:29 · 1199 阅读 · 0 评论 -
93 | Python 设计模式 —— 建造者模式
建造者模式是一种创建型设计模式,它解决了创建复杂对象的问题。在建造者模式中,将一个复杂对象的构建过程和表示分离,使得构建过程可以创建不同的表示。这样,同样的构建过程可以创建不同类型或配置的对象,使得代码更加灵活和易于维护。当需要构建的对象有多个组成部分,且构建过程相对复杂。当希望创建不同类型或配置的对象,但又不希望客户端直接与具体构建过程耦合。建造者模式是一种创建型设计模式,它通过将复杂对象的构建过程与表示分离,使得构建过程可以创建不同的表示。原创 2023-08-08 09:16:49 · 1286 阅读 · 0 评论 -
92 | Python 设计模式 —— 工厂模式
在软件设计中,工厂模式是一种创建型设计模式,它提供了一种封装对象创建过程的方法。工厂模式的目的是将对象的创建与使用相分离,使得客户端代码不需要直接与具体类耦合,而是通过工厂方法来创建对象。工厂模式能够更灵活地创建对象,同时提供了一种统一的接口来创建不同类型的对象。产品类(Product):定义要创建的对象的接口,可以是一个抽象类或接口。具体产品类(Concrete Product):实现产品类接口的具体类,表示具体的对象类型。工厂类(Factory):包含一个工厂方法,用于创建具体产品对象。原创 2023-08-08 09:11:10 · 891 阅读 · 0 评论 -
91 | Python 设计模式 —— 单例模式
单例模式是一种创建型设计模式,旨在确保一个类只有一个实例,并提供全局访问点。在软件开发中,有些类只需要一个全局唯一的实例,而不需要创建多个实例。单例模式就是为了满足这种需求而设计的。节省内存:由于单例模式只有一个实例,可以减少重复创建对象的内存开销。全局访问:通过全局访问点,可以方便地在任何地方获取该类的实例。避免竞争条件:单例模式可以防止多线程环境下的竞争条件,确保只有一个实例被创建。原创 2019-10-30 23:18:54 · 1243 阅读 · 0 评论 -
90 | Python人工智能篇 —— 深度学习算法 Keras基于卷积神经网络的情感分类
本教程将带您学习如何使用Keras构建一个基于卷积神经网络的情感分类模型。我们将使用IMDB电影评论数据集,其中包含了数万条电影评论,每条评论都带有一个情感标签:正面或负面。通过构建一个情感分类器,我们将实现对电影评论情感的预测。我们将使用卷积神经网络(CNN)来进行情感分类任务。CNN是一种在图像处理领域非常成功的深度学习模型,它可以有效地捕捉文本中的局部特征。原创 2023-08-08 08:41:12 · 995 阅读 · 0 评论 -
89 | Python人工智能篇 —— 深度学习算法 Keras 实现 MNIST分类
Keras 是一个高级神经网络 API,基于 Python 编写,并以 TensorFlow、CNTK 或 Theano 作为后端。它的设计理念是简单易用,同时兼顾灵活性和扩展性,让用户可以快速构建和训练各种神经网络模型。在本例中,我们将构建一个简单的卷积神经网络(CNN)模型。CNN 是深度学习中常用于图像处理的神经网络,能够有效地提取图像中的特征。我们将使用 Keras 的 Sequential API 来定义模型。原创 2023-08-08 07:54:13 · 1138 阅读 · 0 评论 -
88 | Python人工智能篇 —— 机器学习算法 随机森林
随机森林是一种强大且灵活的集成学习算法,由多个决策树组成,常用于分类和回归问题。随机森林通过对决策树的集成和随机性引入,克服了单个决策树的过拟合问题,并在处理高维、大规模数据时表现优异。本教程将深入探讨随机森林的基本原理和构建过程,以及如何使用 Python 实现随机森林算法。原创 2023-08-08 07:38:47 · 193 阅读 · 0 评论 -
87 | Python人工智能篇 —— 机器学习算法 决策树
决策树是一种广泛应用于机器学习和数据挖掘领域的算法。它是一种监督学习算法,用于解决分类和回归问题。决策树的优势在于能够处理高维数据、非线性数据以及大规模数据集,同时输出结果易于理解和解释。本教程将介绍决策树的基本原理、构建过程以及如何使用 Python 实现决策树算法。原创 2023-08-08 07:26:52 · 841 阅读 · 0 评论 -
84 | Python可视化篇 —— Pyecharts数据可视化
Pyecharts是一个基于Python的强大可视化库,用于创建各种类型的交互式图表和数据可视化。它是Echarts库的Python封装,支持绝大多数Echarts的功能和图表类型。Pyecharts提供了简单易用的API接口,允许用户通过几行代码就能创建漂亮而具有交互性的图表。Pyecharts 提供了多种方法来自定义图表的样式和交互功能。您可以使用和方法来设置图表元素的样式,比如颜色、标签、提示等。除了图表样式,您还可以添加交互功能,如数据缩放、拖拽、数据切换等。原创 2023-08-07 22:00:44 · 2292 阅读 · 0 评论 -
83 | Python可视化篇 —— Bokeh数据可视化
Bokeh 是一种交互式数据可视化库,它可以在 Python 中使用。它的设计目标是提供一个简单、灵活和强大的方式来创建现代数据可视化,同时保持良好的性能。Bokeh 支持多种图表类型,包括线图、散点图、柱状图、饼图、区域图、热力图等。此外,它还支持将这些图表组合在一起以创建复杂的可视化布局。在本教程中,我们将介绍 Bokeh 的基本概念、如何创建和定制各种类型的图表以及如何添加交互性。原创 2023-08-07 21:41:18 · 1653 阅读 · 0 评论 -
82 | Python可视化篇 —— Plotly数据可视化
Plotly 是一个用于创建交互式数据可视化的 Python 库。它可以创建各种类型的图表,如散点图、线图、条形图、饼图、热力图等,并且支持多种输出格式,如 HTML、PNG、PDF 等。Plotly 还提供了一个在线编辑器,可以用于创建和共享交互式图表,并且可以嵌入到网页中。以上是有关 Plotly 的教程。通过本教程,学会了如何使用 Plotly 创建各种类型的图表,并在 Jupyter Notebook 中显示和在网页中嵌入这些图表。原创 2023-08-07 21:16:04 · 3124 阅读 · 0 评论 -
81 | Python可视化篇 —— Seaborn数据可视化
Seaborn是Python中一个基于Matplotlib的高级数据可视化库,它提供了更简单的API和更美观的图形样式,适用于数据探索和展示。在本教程中,我们将介绍Seaborn的基本概念和用法,并通过一些示例演示如何使用Seaborn来创建各种图表和图形。原创 2023-08-07 21:03:19 · 1516 阅读 · 0 评论 -
80| Python可视化篇 —— Matplotlib数据可视化
和使用像素表示图像的位图不同,SVG基于XML存储图像数据,它是W3C定义的一种开放标准的矢量图形语言,可以用来设计更为清晰的Web图像,因为SVG与分辨率无关,在任意放大时不会丢失细节或影响清晰度。数据的处理、分析和可视化已经成为Python近年来最为重要的应用领域之一,其中数据的可视化指的是将数据呈现为漂亮的统计图表,然后进一步发现数据中包含的规律以及隐藏的信息。函数设置绘图的颜色和线条的形状将折线图改造为散点图,对应的代码如下所示,其中参数’xr’表示每个点的记号是‘x’图形,颜色是红色(原创 2019-05-13 23:09:48 · 1548 阅读 · 4 评论 -
79 | Python数据分析篇 —— Pandas中groupby聚合操作和透视表基础
'C' : my_mean }) print(mean) # 输出 # C # A # bar 2.0 # foo 4.0本文介绍了Pandas中groupby聚合操作和透视表的基础知识,包括groupby操作、透视表的创建和使用。groupby操作可以将数据按照指定的列进行分组,并对每组数据进行聚合计算,常用的聚合函数包括count、sum、mean、median、min、max等。透视表是一种数据汇总工具,它可以将数据按照指定的列进行分组,并对每组数据进行聚合计算。原创 2023-08-06 09:23:09 · 629 阅读 · 0 评论 -
78 | Python数据分析篇——Pandas进阶:使用自定义函数案例
在Pandas中,DataFrame对象的apply()方法允许我们应用自定义函数到DataFrame的每一列或每一行。这个方法通常用于对列进行处理,但我们也可以通过指定axis参数来对行进行处理。下面是一个示例,我们定义一个自定义函数,用于将DataFrame中的每个元素加倍。data = {A B0 2 201 4 402 6 603 8 804 10 100在上面的例子中,我们定义了一个名为double()的自定义函数,它将传入的参数乘以2,并将结果返回。然后,我们使用apply()原创 2023-08-06 09:07:23 · 342 阅读 · 0 评论 -
77 | Python数据分析篇——Pandas之DataFrame对象总结
DataFrame是Pandas库中最重要、最常用的数据结构之一。它是一个类似于二维表格的数据结构,由多个带标签的列组成,每一列可以是不同的数据类型。DataFrame可以将数据组织得井井有条,方便地进行数据处理、数据分析和数据可视化。我们可以通过传递索引列表来自定义DataFrame对象的索引。data = {在本教程中,我们深入学习了Pandas库中两个重要的数据结构:Series和DataFrame。原创 2023-08-06 08:57:38 · 471 阅读 · 0 评论 -
76 | Python数据分析篇——Pandas之Series对象总结
在Pandas中,Series是一种一维标签化的数据结构,类似于一维数组或Python中的字典。它由两部分组成:索引和数据。索引用于标识数据,数据则是一组值。Series对象能够处理不同类型的数据,并且可以根据索引进行快速的数据访问和操作。我们可以通过传递索引列表来自定义Series对象的索引。a 10b 20c 30d 40e 50通过本教程的学习,我们对Pandas之Series对象有了深入的了解。我们学习了如何创建Series对象,包括从列表、数组、字典等不同数据结构中创建。原创 2023-08-06 08:37:39 · 236 阅读 · 0 评论 -
75 | Python数据分析篇—— Numpy模块随机数函数、缺失值处理和矩阵操作
Numpy提供了丰富的随机数函数,用于生成不同分布的随机数数组。处理缺失值NaN和inf可以使用np.isnan()和np.isinf()来检测,并使用进行替换。矩阵相关的操作,如矩阵乘法、矩阵转置、矩阵的逆、行列式、特征值和特征向量,可以使用np.dot()和等函数来实现。原创 2023-08-06 08:29:40 · 307 阅读 · 0 评论 -
74 | Python数据分析篇—— Numpy模块常用函数大全
将一个字符串数组中的所有元素去除首尾指定字符。将一个字符串数组中的所有字母转换为大写字母。将一个字符串数组中的所有字母转换为小写字母。在已排序的数组中搜索指定元素,并返回其索引。计算一个数组中每个元素的反正弦值。计算一个数组中每个元素的反余弦值。计算一个数组中每个元素的反正切值。计算一个数组中每个元素的正弦值。计算一个数组中每个元素的余弦值。计算一个数组中每个元素的正切值。计算一个数组中所有元素的平均值。计算一个数组中所有元素的中位数。计算一个数组中所有元素的标准差。计算一个数组中所有元素的方差。原创 2023-08-06 08:23:27 · 223 阅读 · 0 评论 -
73 | Python数据分析篇—— Numpy进阶:数组操作和小技巧
本文将介绍Numpy的进阶操作,包括数组操作和小技巧。在数组操作方面,我们将介绍如何改变数组的形状、进行索引和切片、进行拼接和分裂等操作。在小技巧方面,我们将介绍如何进行数据类型转换、使用广播机制、进行数组复制等操作。Numpy是Python中最常用的科学计算库之一,它提供了高效的多维数组操作和数学函数。在进行数据分析和机器学习等领域的工作时,Numpy是必不可少的库之一。创建一个新的数组对象,但共享数据。将数组展平为一维数组,返回拷贝。将一个数组分裂为多个子数组。将数组展平为一维数组。原创 2023-08-06 08:17:13 · 208 阅读 · 0 评论 -
71 | Python 网络爬虫案例 —— 爬取百度图片
robots.txt文件是一个文本文件,使用任何一个常见的文本编辑器,比如Windows系统自带的Notepad,就可以创建和编辑它。有形式的事物,我们看到的,是图画、照片、拓片等的统称。在一个json 的有30张图片,所以发起一个json的请求,我们可以爬去30张图片,但是还是不够。图片是通过ajax 方法来加载的,也就是当我下拉,图片会自动加载,是因为网站自动发起了请求,从图中可以看出,百度的图片是完全可以下载,说明了图片可以爬取。图片是在云服务器的数据库中的保存起来的。首先,明白图片是什么?原创 2019-07-03 10:18:41 · 3192 阅读 · 0 评论 -
69 | Python 网络爬虫案例 —— 爬取B站视频弹幕数据
最近同学要做东西,需要用 B 站的视频对应的弹幕数据做分析,于是请我帮忙爬取 B 站视频的弹幕数据。B站提供了一个接口,可以通过视频的cid获取对应的弹幕数据。本文将使用Python和XPath来实现爬取B站视频弹幕数据的操作。原创 2021-04-23 13:46:08 · 3253 阅读 · 0 评论 -
72 | Python数据分析篇——初识NumPy模块
NumPy(Numerical Python的简称)是Python中用于数值计算的基础库之一。它提供了高性能的多维数组对象(称为ndarray),以及用于处理这些数组的各种函数。NumPy是Python数据科学生态系统中的核心组件之一,许多其他数据分析和科学计算的库都依赖于它。本文介绍了NumPy模块的基础知识,包括NumPy数组的创建、形状与维度、索引与切片以及数组运算。NumPy在Python数据分析和科学计算中扮演着重要的角色,它提供了高效的数据结构和强大的数学函数,使得数值计算变得简单而高效。原创 2023-08-05 15:39:46 · 248 阅读 · 0 评论 -
68 | 从小说网站爬取《从红月开始》小说内容
请注意,网站对爬虫的访问可能有限制,为了避免给网站服务器带来过大的负担,建议添加适当的延时或采用分布式爬取方式。另外,请尊重网站的使用规则,避免频繁爬取和滥用爬虫。在进行网页爬取时,为了模拟浏览器的请求,我们需要设置一个请求头信息。在本教程中,我将为您介绍如何使用Python编写一个简单的爬虫程序,从dangxiaoshuo网站上爬取小说《从红月开始》的全部内容,并将其保存到本地文件中。现在,我们需要找到《从红月开始》小说的网页URL。使用循环遍历章节列表,爬取每个章节的内容,并将其保存到本地文件中。原创 2019-05-31 22:22:54 · 1253 阅读 · 0 评论 -
85 | Python人工智能篇 —— 机器学习算法线性回归
我们首先用弄清楚什么是线性,什么是非线性。线性:两个变量之间的关系是一次函数关系的——图象是直线,叫做线性。注意:题目的线性是指广义的线性,也就是数据与数据之间的关系。非线性:两个变量之间的关系不是一次函数关系的——图象不是直线,叫做非线性。相信通过以上两个概念大家已经很清楚了,其次我们经常说的回归回归到底是什么意思呢。回归:人们在测量事物的时候因为客观条件所限,求得的都是测量值,而不是事物真实的值,为了能够得到真实值,无限次的进行测量,最后通过这些测量数据计算回归到真实值,这就是回归的由来。原创 2021-04-20 23:16:35 · 921 阅读 · 0 评论 -
86 | Python人工智能篇 —— 机器学习算法逻辑回归
逻辑回归是一种监督学习算法,用于解决二元分类问题。它的目标是预测一个二元变量的结果,例如预测一个人是否会购买某个产品,或者预测某个病人是否患有某种疾病。逻辑回归的输出是一个介于0和1之间的概率值,表示给定输入数据属于正类的概率。如果概率大于或等于一个预定义的阈值,则将该输入数据分类为正类,否则将其分类为负类。在本教程中,我们介绍了逻辑回归的概念和用途,并演示了如何使用Python和scikit-learn库来执行逻辑回归。原创 2023-07-26 17:43:51 · 446 阅读 · 0 评论 -
67 | BeautifulSoup和XPath
tag对象可以说是BeautifulSoup中最为重要的对象,通过BeautifulSoup来提取数据基本都围绕着这个对象来进行操作。BeautifulSoup 对象表示的是一个文档的全部内容.大部分时候,可以把它当作 Tag 对象,是一个特殊的 Tag。同样的是获取某个节点的所有子节点,但是返回的是一个迭代器,这种方式会比列表格式更加的节省内存。有时我们也需要去获取某个节点的父节点,也就是包裹着当前节点的节点而使用。获取的是某个节点的直接子节点,而无法获得子孙节点。获取的子节点是列表格式。原创 2019-03-21 22:28:08 · 1004 阅读 · 0 评论 -
65 | 邮件发送
在Python中,我们可以使用smtplib和email两个库来实现发送邮件的功能。smtplib库用于发送邮件,而email库用于构建邮件内容。原创 2020-04-06 10:49:15 · 1337 阅读 · 0 评论 -
64 | OpenCV
OpenCV(Open Source Computer Vision Library)是一个开源的计算机视觉库,旨在提供丰富的图像处理和计算机视觉功能。它支持多种编程语言,包括Python,因此在Python中使用OpenCV非常方便。本教程将介绍OpenCV在Python中的常见用法,从图像加载和显示,到基本的图像处理和计算机视觉应用。原创 2023-02-05 10:48:57 · 206 阅读 · 0 评论 -
63 | 图像处理
图像处理是指使用计算机算法来改变图像的外观或特征。它可以用于许多不同的应用程序,包括数字摄影、医学成像、机器视觉和计算机图形学。原创 2023-07-25 15:01:10 · 954 阅读 · 0 评论 -
62 | Python 操作 PDF
然后,我们创建了一个 PDF 写入器对象,并使用一个循环将原始 PDF 文件中的其他页面添加到其中。接着,我们获取了第二个页面,并使用 reportlab 库创建了一个表格,并使用。然后,我们使用一个循环将原始 PDF 文件中的其他页面添加到写入器中,并使用。最后,我们保存了新的 PDF 文件,并关闭了文件。方法将 PDF 写入器中的内容写入到 PDF 文件中,并关闭了文件。在这个示例中,我们首先打开了练习题中创建的 PDF 文件,并使用。在这个示例中,我们首先创建了一个新的 PDF 文件,并使用。原创 2023-07-24 22:40:26 · 966 阅读 · 0 评论 -
61 | Python 操作 PPT
属性遍历了文稿中的所有幻灯片,并打印出了每个幻灯片的标题和副标题。最后,我们遍历了每个幻灯片中的所有形状,并打印出了文本框中的文本内容。在 Python 中,可以使用 python-pptx 库来创建一个新的 PPT 文件。属性获取了该幻灯片中的第二个形状,即第一个文本框,并使用。在这个示例中,我们首先打开了之前创建的演示文稿,并使用。在这个示例中,我们同样打开了之前创建的演示文稿,并使用。在这个示例中,我们首先创建了一个新的演示文稿,并使用。在这个示例中,我们首先创建了一个新的演示文稿,并使用。原创 2019-06-01 21:48:49 · 1290 阅读 · 0 评论 -
60 | Python 操作 Excel
除了创建和读取 Excel 文件之外,我们还可以使用 openpyxl 库来修改已有的 Excel 文件。除了创建 Excel 文件之外,我们还可以使用 openpyxl 库来读取已有的 Excel 文件。在 Python 中,可以使用 openpyxl 库来创建一个新的 Excel 文件。属性获取当前活动工作表,并遍历了工作表中的所有行。在每一行中,我们添加数据到列表中,并使用。在写入销售额时,我们使用了货币格式来显示数据,并使用。类,然后创建了一个新的工作簿。然后,我们创建了一个新的工作簿,并使用。原创 2019-06-01 21:35:01 · 1167 阅读 · 0 评论 -
59 | Python 操作 docx
Python 提供了许多库来处理 docx 文件,其中最流行的是 python-docx 库。除了创建和读取 docx 文件之外,我们还可以使用 python-docx 库来修改已有的 docx 文件。除了创建 docx 文件之外,我们还可以使用 python-docx 库来读取已有的 docx 文件。在 Python 中,可以使用 python-docx 库来创建一个新的 docx 文件。方法添加了一个新段落,并设置了该段落的对齐方式。属性遍历了文档中的所有段落,并打印出了每个段落的文本内容。原创 2019-05-05 22:35:41 · 2888 阅读 · 0 评论 -
58 | Python读写XML文件
XML(Extensible Markup Language)是一种用于存储和传输数据的标记语言。它被广泛用于Web应用程序和数据交换。XML是一种可扩展的语言,这意味着您可以根据需要定义自己的标记。原创 2019-05-22 19:47:25 · 1059 阅读 · 0 评论 -
66| Requests
对了解一些爬虫的基本理念,掌握爬虫爬取的流程有所帮助。入门之后,我们就需要学习一些更加高级的内容和工具来方便我们的爬取。那么简单介绍一下 requests 库的基本用法。原创 2019-04-16 20:36:24 · 1263 阅读 · 0 评论 -
58 | Flask
Flask 的灵活性和模块化让我们可以用它来构建各种规模的应用,从简单的静态站点到复杂的 API 服务。要了解更多 Flask 的功能,建议访问 Flask 的官方文档进行学习。Flask 是一种流行的 Python 微框架,它易于学习且功能强大,适用于构建 web 应用程序。用于告诉 Flask 哪个 URL 能触发我们的函数,这个函数被称为视图函数。为了构建更复杂的 HTML 响应,我们通常会使用模板。文件中,你可以使用 Jinja2 的模板语法来动态生成 HTML 内容。中,它会作为应用的起始点。原创 2019-05-31 22:08:18 · 1111 阅读 · 0 评论 -
57 | Python 连接 Redis 和 MongoDB
Python 不仅可以连接关系型数据库如 MySQL,也可以轻松地连接非关系型数据库如 Redis 和 MongoDB。本教程将详细介绍如何在 Python 环境中连接 Redis 和 MongoDB 数据库。在实际开发中,除了上述的基本操作,还有更多的高级操作等待着我们去探索。利用返回的 Redis 连接对象,我们就可以进行各种操作了,例如设置(set)一个键值对,获取(get)一个值等。连接建立后,我们可以选择数据库和集合,然后进行数据的增删改查操作。在 Python 中,我们使用。原创 2019-05-31 22:01:25 · 1120 阅读 · 0 评论