-
n个结点构造几种树
所属栏目:[语言] 日期:2022-07-07 热度:191
本节要讨论的是当给定 n(n=0)个结点时,可以构建多少种形态不同的树。 如果两棵树中各个结点的位置都一一对应,可以说这两棵树相似。如果两棵树不仅相似,而且对应结点上的数据也相同,就可以说这两棵树等价。本节中,形态不同的树指的是互不相似的树。[详细]
-
矩阵 稀疏矩阵 的转置算法 C语言 说明
所属栏目:[语言] 日期:2022-07-07 热度:123
矩阵(包括稀疏矩阵)的转置,即互换矩阵中所有元素的行标和列标, 矩阵转置的实现思路是:不断遍历存储矩阵的三元组表,每次都取出表中 j 列最小的那一个三元组,互换行标和列标的值,并按次序存储到一个新三元组表中,。 例如,将图 2a) 三元组表存储的[详细]
-
何为文件路径 Python中如何书写文件路径
所属栏目:[语言] 日期:2022-07-07 热度:54
当程序运行时,变量是保存数据的好方法,但变量、序列以及对象中存储的数据是暂时的,程序结束后就会丢失,如果希望程序结束后数据仍然保持,就需要将数据保存到文件中。Python 提供了内置的文件对象,以及对文件、目录进行操作的内置模块,通过这些技术可[详细]
-
Python __file__属性 查看模块的源文件途径
所属栏目:[语言] 日期:2022-07-07 热度:112
前面章节提到,当指定模块(或包)没有说明文档时,仅通过 help() 函数或者 __doc__ 属性,无法有效帮助我们理解该模块(包)的具体功能。在这种情况下,我们可以通过 __file__ 属性查找该模块(或包)文件所在的具体存储位置,直接查看其源代码。 仍以前[详细]
-
Python __doc__属性 查阅文档
所属栏目:[语言] 日期:2022-07-07 热度:151
在使用 dir() 函数和 __all__ 变量的基础上,虽然我们能知晓指定模块(或包)中所有可用的成员(变量、函数和类),比如: import string print(string.__all__) 程序执行结果为: [ascii_letters, ascii_lowercase, ascii_uppercase, capwords, digits, h[详细]
-
Python查看模块 变量 函数 类 办法
所属栏目:[语言] 日期:2022-07-07 热度:80
前面章节中,详细介绍了模块和包的创建和使用(严格来说,包本质上也是模块),有些读者可能有这样的疑问,即正确导入模块或者包之后,怎么知道该模块中具体包含哪些成员(变量、函数或者类)呢? 查看已导入模块(包)中包含的成员,本节给大家介绍 2 种[详细]
-
Python创建包 导入包 进门必读
所属栏目:[语言] 日期:2022-07-07 热度:105
《Python包》一节中已经提到,包其实就是文件夹,更确切的说,是一个包含__init__.py文件的文件夹。因此,如果我们想手动创建一个包,只需进行以下 2 步操作: 新建一个文件夹,文件夹的名称就是新建包的包名; 在该文件夹中,创建一个 __init__.py 文件([详细]
-
Python包 储放多个模块的文件夹
所属栏目:[语言] 日期:2022-07-07 热度:67
实际开发中,一个大型的项目往往需要使用成百上千的 Python 模块,如果将这些模块都堆放在一起,势必不好管理。而且,使用模块可以有效避免变量名或函数名重名引发的冲突,但是如果模块名重复怎么办呢?因此,Python提出了包(Package)的概念。 什么是包[详细]
-
Python __all__变量用处
所属栏目:[语言] 日期:2022-07-07 热度:158
事实上,当我们向文件导入某个模块时,导入的是该模块中那些名称不以下划线(单下划线_或者双下划线__)开头的变量、函数和类。因此,如果我们不想模块文件中的某个成员被引入到其它文件中使用,可以在其名称前添加下划线。 以前面章节中创建的 demo.py 模[详细]
-
对Java数组的总结
所属栏目:[语言] 日期:2022-07-07 热度:69
数组(Array)是有序数据的集合,数组中的每个元素具有相同的数据类型,可以用一个统一的数组名和不同的下标来唯一确定数组中的元素。根据数组的维度,可以将其分为一维数组、二维数组和多维数组等。 一维数组 数组中每个元素都只带有一个下标,是数组中最[详细]
-
Java求数组元素的最大和最小值
所属栏目:[语言] 日期:2022-07-07 热度:60
本节通过求数组的最大和最小值来提高初学者对数组的一些基本应用。 public class Example{ public static void main(String[] args) { int score[] = { 67, 89, 87, 69, 90, 100, 75, 90 }; // 初始化数组 int max = 0; // 定义变量保存到最大值 int min =[详细]
-
Java直接插入排序法
所属栏目:[语言] 日期:2022-07-07 热度:197
直接插入排序的基本思想是:将 n 个有序数存放在数组 a 中,要插入的数为 x,首先确定 x 插在数组中的位置 p,然后将 p 之后的元素都向后移一个位置,空出 a(p),将 x 放入 a(p),这样可实现插入 x 后仍然有序。 例 1 本例子通过直接插入的方法对上述例子[详细]
-
Python枚举类定义和运用
所属栏目:[语言] 日期:2022-07-07 热度:149
一些具有特殊含义的类,其实例化对象的个数往往是固定的,比如用一个类表示月份,则该类的实例对象最多有 12 个;再比如用一个类表示季节,则该类的实例化对象最多有 4 个。 针对这种特殊的类,Python 3.4 中新增加了 Enum 枚举类。也就是说,对于这些实例[详细]
-
Python __dir__ 用法 列出对象的全部属性 方法 名
所属栏目:[语言] 日期:2022-07-07 热度:193
前面在介绍 Python 内置函数时,提到了 dir() 函数,通过此函数可以某个对象拥有的所有的属性名和方法名,该函数会返回一个包含有所有属性名和方法名的有序列表。 举个例子: class CLanguage: def __init__ (self,): self.name = C语言中文网 self.add =[详细]
-
Python __del__ 方式 销毁对象
所属栏目:[语言] 日期:2022-07-07 热度:198
我们知道,Python 通过调用 __init__() 方法构造当前类的实例化对象,而本节要学的 __del__() 方法,功能正好和 __init__() 相反,其用来销毁实例化对象。 事实上在编写程序时,如果之前创建的类实例化对象后续不再使用,最好在适当位置手动将其销毁,释放[详细]
-
Python __repr__ 方法 显现属性
所属栏目:[语言] 日期:2022-07-07 热度:133
前面章节中,我们经常会直接输出类的实例化对象,例如: class CLanguage: pass clangs = CLanguage() print(clangs) 程序运行结果为: __main__.CLanguage object at 0x000001A7275221D0 通常情况下,直接输出某个实例化对象,本意往往是想了解该对象的基[详细]
-
Python __new__ 办法详解
所属栏目:[语言] 日期:2022-07-07 热度:97
__new__() 是一种负责创建类实例的静态方法,它无需使用 staticmethod 装饰器修饰,且该方法会优先 __init__() 初始化方法被调用。 一般情况下,覆写 __new__() 的实现将会使用合适的参数调用其超类的 super().__new__(),并在返回之前修改实例。例如: cl[详细]
-
查视对象内部所有属性名和属性值组成的字典
所属栏目:[语言] 日期:2022-07-07 热度:180
在 Python 类的内部,无论是类属性还是实例属性,都是以字典的形式进行存储的,其中属性名作为键,而值作为该键对应的值。 为了方便用户查看类中包含哪些属性,Python 类提供了 __dict__ 属性。需要注意的一点是,该属性可以用类名或者类的实例对象来调用[详细]
-
Python issubclass和isinstance函数 检查类别
所属栏目:[语言] 日期:2022-07-07 热度:97
Python 提供了如下两个函数来检查类型: issubclass(cls, class_or_tuple):检查 cls 是否为后一个类或元组包含的多个类中任意类的子类。 isinstance(obj, class_or_tuple):检查 obj 是否为后一个类或元组包含的多个类中任意类的对象。 通过使用上面两个[详细]
-
什么是运算符重载 Python可重载运算符有什么
所属栏目:[语言] 日期:2022-07-07 热度:121
前面章节介绍了 Python 中的各个序列类型,每个类型都有其独特的操作方法,例如列表类型支持直接做加法操作实现添加元素的功能,字符串类型支持直接做加法实现字符串的拼接功能,也就是说,同样的运算符对于不同序列类型的意义是不一样的,这是怎么做到的[详细]
-
何为迭代器 Python迭代器及其用法
所属栏目:[语言] 日期:2022-07-07 热度:142
前面章节中,已经对列表(list)、元组(tuple)、字典(dict)、集合(set)这些序列式容器做了详细的介绍。值得一提的是,这些序列式容器有一个共同的特性,它们都支持使用 for 循环遍历存储的元素,都是可迭代的,因此它们又有一个别称,即迭代器。 例[详细]
-
Python生成器说明
所属栏目:[语言] 日期:2022-07-07 热度:76
前面章节中,已经详细介绍了什么是迭代器。生成器本质上也是迭代器,不过它比较特殊。 以 list 容器为例,在使用该容器迭代一组数据时,必须事先将所有数据存储到容器中,才能开始迭代;而生成器却不同,它可以实现在迭代的同时生成元素。 也就是说,对于[详细]
-
什么是异常处理 Python常见异常类别
所属栏目:[语言] 日期:2022-07-06 热度:90
开发人员在编写程序时,难免会遇到错误,有的是编写人员疏忽造成的语法错误,有的是程序内部隐含逻辑问题造成的数据错误,还有的是程序运行时与系统的规则冲突造成的系统错误,等等。 总的来说,编写程序时遇到的错误可大致分为 2 类,分别为语法错误和运[详细]
-
Python try except异常处置详解
所属栏目:[语言] 日期:2022-07-06 热度:109
Python 中,用try except语句块捕获并处理异常,其基本语法结构如下所示: try: 可能产生异常的代码块 except [ (Error1, Error2, ... ) [as e] ]: 处理异常的代码块1 except [ (Error3, Error4, ... ) [as e] ]: 处理异常的代码块2 except [Exception]:[详细]
-
Python try except else解说
所属栏目:[语言] 日期:2022-07-06 热度:78
在原本的try except结构的基础上,Python 异常处理机制还提供了一个 else 块,也就是原有 try except 语句的基础上再添加一个 else 块,即try except else结构。 使用 else 包裹的代码,只有当 try 块没有捕获到任何异常时,才会得到执行;反之,如果 try[详细]