- 博客(36)
- 收藏
- 关注
原创 python中关键字global、nonlocal和闭包函数
在函数中可以(嵌套)定义另一个函数时,如果内部的函数引用了外部的函数的变量,则可能产生闭包。闭包函数所需的条件如下:(1)必须有一个。
2024-08-12 18:28:00
490
原创 python的type hints(类型标注、类型注解、类型提示)
type hints(类型标注、类型注解、类型提示)是指在代码中涉及到数据交互的地方,提供数据类型的注解(显式的说明)。类型注解可以帮助第三方IDE工具(PyCharm)对代码进行类型推断,协助做代码提示;能帮助开发者自身对变量进行类型标注。类型注解可分为:变量的类型注解、函数(方法)形参列表和返回值的类型注解。总而言之,加上注解之后,我们可以直观的看出变量、函数(方法)参数列表和返回值到底是个什么东西(什么类型)。
2024-08-12 15:22:15
561
原创 python中的省略号(...)
在Python中,一切皆对象,...也是对象,它和对象Ellipsis是等价的。对象...和Ellipsis的类型都是ellipsis,代码示例如下。print(Ellipsis) # 输出:Ellipsisprint(type(Ellipsis)) # 输出:print(id(Ellipsis)) # 输出:140720901275632print(...) # 输出:Ellipsis。
2024-08-10 23:04:20
474
原创 python中的迭代器、可迭代对象、生成器和yield
print("__iter__被执行了...")print("__next__被执行了...")# raise StopIteration用于提前终止一个迭代器中的循环print(isinstance(obj_list,Iterable)) # 输出:Trueprint(isinstance(obj_list,Iterator)) # 输出:Trueprint(i)输出:TrueTrue__iter__被执行了...__next__被执行了...2__next__被执行了...
2024-08-10 00:23:07
715
原创 python中的装饰器(修饰器)
总的来说,我认为装饰器大致分为无参数的和有参数的。@装饰器名字def 函数名():pass上面代码等价于:函数名 = 装饰器名字(函数名)@装饰器名字(参数)def 函数名():pass上面代码等价于:函数名 = 装饰器名字(参数)(函数名),看着头大,优化一下:Temp = 装饰器名字(参数) 函数名 = Temp(函数名)无论是函数装饰器还是类装饰器,都可以使用上面的"万能公式"。如果大家还是不太懂,可以看一下下面的参考视频!!!
2024-08-09 11:44:26
663
原创 python中的类属性、实例属性、类方法、实例方法和静态方法
在python中,类中的属性就是定义在类中的变量,简称成员变量;类中的行为就是定义在类中的方法,简称成员方法。成员变量又可分为类变量和实例变量,或者分为类属性和实例属性。成员方法又分为类方法和实例方法。类属性就是这个类所拥有的属性(变量),类属性被该类的所有实例对象所共有。对于公有的类属性,在类外可以通过类名或实例对象来访问。实例属性是该类的实例对象所拥有的,类对象无法拥有(通过类名无法访问实例属性)。 实例属性是定义在构造方法内部,而类属性是定义在类的内部,构造方法的外部。总而言之,类属性不属于任
2024-08-08 14:49:05
309
原创 python中的继承关系和抽象类
(1)继承简介:继承是一种创建新类的方式,新建的类可称为子类或派生类,父类可称为基类或超类。;。其中多继承的优先级为从左到右,即父类1的优先级最高。(2)object类:object类是所有类的父类,所有的内置类型(像int、float、str、list等等)、用户自定义的类都直接或间接地继承于object类。如果该类没有继承任何类,默认继承object类。
2024-08-08 00:03:13
739
原创 python——array模块(高效的数字值数组)
python的array模块(是内置模块)定义了一种对象类型,可以紧凑地表示由基本值(字符、整数、浮点数)组成的数组。数组是序列类型,其行为与列表(list)非常相似,不同之处在于其中存储的对象类型是(数组中的元素必须为同一类型)。这些元素在内存中是按固定大小(字节)连续存储的,相比于列表和元组类型,array模块的实现更加节省内存。array数组对象也支持索引、切片、拼接等操作,在array数组对象创建时用单个字符的来指定存储何种类型的元素。已定义的类型码如下:array数组对象的创建方法为。
2024-08-07 11:57:09
319
原创 python中的魔术方法(特殊方法)
python的内置方法具有特殊的功能,这些内置方法我们也称之为魔术方法(magic method)或特殊方法(special method)。魔术方法就是前后各有两个下划线__的方法,像__init__方法就是一个魔术方法。python中的类提供了很多双下划线开头和结尾__xxx__的方法,这些方法是Python运行的基础,很多功能的背后都是通过调用这些内置方法来实现的。例如len()函数调用对象的__len__方法;print(obj)函数调用对象的__str__方法;for循环遍历语句调用对象的。
2024-08-06 22:46:59
746
原创 python中列表推导式和切片(slice)
列表推导式又称为列表解析式,作用在于通过一种简明扼要的方法来创建列表。,其中是一个临时变量,是基于临时变量的某种表达式,是可迭代对象(如列表、元组、字符串、集合等)。就不过多文字介绍了,直接看下面的代码例子。(1)一个简单例子:1~10内整数的平方。(2)包含判断筛选(if语句):1~10内偶数的平方。(3)包含循环嵌套和判断筛选:将二维列表my_list(列表嵌套列表)扁平化为一维列表,并限制新列表中元素为偶数。
2024-08-04 16:23:08
464
原创 python中一切皆为对象
在python中一切皆为对象,变量是对象,函数是对象,类也是对象。对象(object)是指在内存中具有)的实例。换句话说,对象是一个具有属性和方法的实体,这些属性和方法可以被访问和操作。(1)唯一标识符:其实就是对象在计算机内存中的地址。可使用内置函数id(obj)返回对象的内存地址。(2)类型:表示对象存储的数据类型,使用内置函数type(obj)返回对象所属类型。(3)值:表示对象存储的数据信息,也就是对象的值。使用内置函数print(obj)可以直接打印值。
2024-08-04 09:49:52
743
原创 VScode运行C/C++源代码弹出命令行窗口(CMD窗口)
(3)生成的命令行窗口如下图所示。(2)要运行的C++源代码如下,,要不然生成的命令行窗口会闪退。
2024-07-17 22:16:49
518
原创 在VScode下配置C/C++环境(tasks.json、launch.json、c_cpp_properties.json)
tasks.json在编译首先运行hello.c文件(点击右上角的运行图标),再点击"C/C++:gcc.exe生成和调试活动文件",如图2所示。图2 运行当前活动文件经过步骤1,在工作区code文件夹下可以生成一个文件,如下图3所示。除了tasks.json配置文件外,launch.json、c_cpp_properties.json配置文件也放在.vscode文件夹下。图3 产生的tasks.json文件tasks.json文件配置内容如下。在配置路径时只能使用\\或隔开目录。"tasks": [
2024-07-16 23:25:26
4240
1
原创 Anaconda-conda常用命令
Anaconda 是一个数据科学和机器学习的软件套装,它包含了许多工具和库。Anaconda 包及其依赖项和环境的管理工具为命令。与传统的 Python pip 工具相比 Anaconda 的conda 可以更方便地在不同环境之间进行切换,环境管理较为简单。conda命令的一些选项开关有两种指定方式:一种是两个连接号--后跟选项名全称;另一种是一个连接号后跟简称。例如-n和--name是等价的,但要注意有些例外,比如说--version对应的是-V(大写的V而不是小写的v)。
2024-04-30 23:01:33
217
原创 jupyter notebook使用教程
使用jupyter notebook最简单的方法就是安装Anaconda,然后配置Anaconda环境变量。,将下面路径添加到Path中。
2024-04-30 21:34:20
2341
原创 Ubuntu常用命令
对Windows系统来说,C:\盘符通常存放操作系统和软件;D:\,E:\盘符通常存放用户的其它文件,C,D,EUbuntu系统是一种基于Linux的开源操作系统,Linux没有C,D,E盘符的概念,Linux系统中的一切文件都是从 “根(/)“目录开始的,使用统一的目录树结构。Linux系统上支持多个用户,每个用户有相应的一个目录,并存放在"/home"目录下。例如:用户"yskubt"相应的目录为"/home/yskubt"。
2024-03-20 22:01:00
308
1
原创 python的argparse模块
argparse模块用于解析命令行参数,很适合代码中需要频繁地修改参数,使用过程大致上可分为四个步骤:(1)首先导入argparse模块—>;(2)然后创建一个解析器对象—>;(3)接着往该解析器对象中添加所需的命令行参数和选项—>;(4)最后调用方法解析参数(获取命令行中输入的所有参数)—>。关于argparse模块的所有介绍都是基于下面的代码parser.add_argument('name', type=str, nargs="*", help="名字") # name为位置参数。
2024-01-31 23:07:22
880
1
原创 Variable变量(三)
pytorch中有两个基本对象:Tensor(张量)和Variable(变量)。Variable字面意思为可变的、变量,也就是说它里面存放的是可以变化的量,符合反向传播,参数更新的属性。具体而言,pytorch中存放变化值的地理位置(地址),里面的值是不停变化的。pytorch都是由tensor计算的,而tensor里面的参数是variable形式。
2024-01-29 21:24:47
351
原创 pytorch中常用的方法(二)
pytorch中都可以用来改变tensor的shape(形状、大小),但tensor本身的数据保持不变。。。这两种方法的用法如下所示。我们还可以使用函数,该函数和上面的reshape()、view()实现的功能相同。
2024-01-28 21:27:42
850
原创 Java学习笔记------反射机制(八)
反射就是加载类,并允许以编程的方式解剖类中的各种成分(成员变量、成员方法、构造方法)。换句话说:反射允许对成员变量、成员方法和构造方法的信息进行编程访问。获取字节码文件对象(获取Class对象)的三种方式// 第一种方式 Class.forName(全类名)最为常用。多用于配置文件,将全类名定义在配置文件中,读取文件,加载类。// 第二种方式 类名.class 一般是当做参数进行传递 Class clazz2 = Student . class;
2023-06-04 12:29:28
98
原创 Java学习笔记------多线程(七)
线程是操作系统能够进行运算调度的最小单位,它被包含在进程之中,是进程中的实际运作单位。进程是程序的基本执行实体(可以理解为一个软件运行就是一个进程,例如运行微信是一个进程,运行QQ也是一个进程,运行浏览器也是一个进程)。进程中有了线程之后,可以同时运行多个功能。举个例子:小王是一个伟大的工人(唉,其实就是拧螺丝的),在流水线上负责搬货物,一个流水线上每10分钟出现一个货物,也就是小王在一条流水线上每10分钟搬一次货物。
2023-06-03 17:40:14
97
原创 Java学习笔记------IO流(六)
(2)想要在Java程序中表示一个真实存在的文件或目录,那么必须有一个File对象,但是Java程序中的一个File对象,可能没有一个真实存在的文件或目录。(1)File类中涉及到关于文件或文件目录的创建、删除、重命名、修改时间、文件大小等方法,并未涉及到写入或读取文件内容的操作。(3) File类的对象表示一个路径,可以是文件的路径、也可以是文件夹的路径,其中这个路径可以是存在的,也可以是不存在的。java.io.File 类是文件和目录路径名的抽象表示,主要用于文件和目录的创建、查找和删除等操作。
2023-06-02 21:44:04
181
原创 Java学习笔记------集合(五)
简单介绍:集合和数组一样都相当于是一个容器,但集合可以自动扩容。集合和数组的对比:(1)数组的长度是固定的,集合的长度是可变的;(2)数组可以存储基本数据类型和引用数据类型;集合可以存储引用数据类型,不能直接存储基本数据类型,需要先将基本数据类型转为其对应的包装类。基本数据类型对应的包装类:byte–Byte、short–Short、char–Character、int–Integer、long–Long、float–Float、double–Double、boolean–Boolean。
2023-06-01 21:45:58
230
原创 Java学习笔记------面向对象之前的简单总结(一)
还有一种特殊情况:int[][] arr = new int[2][],此时表示该二维数组只创建了2个一维数组,而每个一维数组中存储的元素个数没有确定。(1)二维数组的静态初始化完整格式:数据类型 [][] 数组名 = new 数据类型 [][] { {元素1, 元素2, …,例子:int[][] arr = new int[][]{{1,2,3},{4,5,6}};,例子:int[][] arr = {{1 ,2, 3}, {4, 5, 6} };(2)数组的元素访问格式:数组名[索引];
2023-05-29 17:38:51
89
1
原创 java简单介绍
(1)bin:该文件夹存放了各种工具命令,例如:java(运行代码的工具)、javac(编译工具)。(2)conf:存放相关配置文件。(3)include:存放一些平台特定的头文件。(4)jmods:存放各种模块。(5)legal:存放各种模块的授权文档。(6)lib:存放工具的一些补充JAR包。
2023-01-22 18:32:25
196
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人