- 博客(50)
- 收藏
- 关注
原创 c++入门之list了解及使用
封装,通用的相似的遍历容器的方式,并且封装屏蔽容器结构的差异和底层的细节。通用/复用,实现算法时用迭代器函数模板方式实现,和底层容器结构解耦。两个链表本身都已经按升序排好序,合并后当前链表依旧保持升序有序。四、remove (const value_type& val)会将无值部分赋值为指定值或者默认值。合并规则:默认用小于号。
2026-07-20 23:21:04
201
原创 C++入门之string(三)
从字符串指定起始位置向后查找,找到第一个不属于给定字符集合的字符,返回它的下标;全部字符都在集合里,返回。C 标准 IO 函数没有重载接收。centos7.6(g++)下。centos7.6(g++)下。centos7.6(g++)下。centos7.6(g++)下。⑥>>和<<和==和+vs2022编译器下。vs2022编译器下。vs2022编译器下。vs2022编译器下。
2026-06-11 17:35:00
67
原创 力扣刷题-----两个字符串相加
思路:可以将字符串通过指针数组偏移,将字符取出来进行运算,将每个字符与‘0’做差,得到整型数字,两个字符串同一分位进行求和运算,在引入两个变量carry和value,carry计算进位数,如果两个数字相加超过10则进一位,可以用‘/’来实现,value则计算应该留在本位置上的数字,可以使用‘%’运算之后再加上进位carry进行计算,然后将计算后的value通过insert()方法进行头插,最后通过指针偏移直到两个字符串都遍历完成结束运算。
2026-06-09 18:57:55
216
原创 C++入门之string(二)
const iterator 修饰本身不能修改,实践中无法被修改const_iterator 修饰迭代器指向的数据不能修改。
2026-06-09 17:27:14
203
原创 C++入门之string(一)
STL是C++标准库的重要组成部分,不仅是一个可复用的组件库,而是一个包罗数据结构和算法的软件框架string的实例化类①编码----->utf-8②编码------>utf-16③编码----->utf-32④宽字符字符串,用于兼容旧版 Windows API:早期美国制定的编码,只用 1 个字节的低 7 位,只能表示英文字母、数字和符号,无法支持其他语言。:它不是一种 “存储格式”,而是一套,给全世界几乎所有字符分配了唯一的数字编号(码点)。
2026-06-08 18:45:08
174
原创 初识linux
1、注册并登录云厂商官网(腾讯云/阿里云/华为云等),这里以腾讯云为例。可以使用root账户添加其他用户,也可使用这台服务器((四)云服务器(最常用的开发方式)【轻量应用服务器】商业版本针对于不同人群,有受众群体,linux社区。(1)技术版本:操作系统源代码版本(内核版本)(对于次版本号偶数为稳定版本,奇数为测试版本)4、进入控制台,记录自己的主IP地址。下载完成添加自己的linux机器。3、安装centos 7.x。(三)安装虚拟机(推荐)2、购买轻量应用服务器。账号:root(选择)
2026-06-07 22:34:00
217
原创 C++入门(引用)
引用不是定义一个新的变量,而是给已存在的变量取了个别名,编译器不会给引用变量开辟内存空间,它和它引用的变量共用一块内存空间。ret是局部对象func结束,ret就销毁的了,返回他的别名本质也一种类似野指针的行为。(四)引用的功能4:引用做返回值类型,减少拷贝,提高效率。(二)引用的功能2:做函数形参,减少拷贝,提高效率。(三)引用的功能3:引用做返回值类型,修改返回对象。(一)引用的功能1:做函数形参,修改形参影响实参。
2026-06-05 22:34:50
255
原创 缺省参数和函数重载
缺省参数是在声明和定义时为函数的参数指定一个缺省值。在调用函数时如果没有指定实参,则采用该实参的缺省值,否则使用该指定的实参,缺省参数分为全缺省和半缺省参数。②半缺省就是部分参数给缺省值,C++中规定半缺省参数必须从右往左依次连续缺省,不能间隔跳跃给缺省值。在同一作用域里,可以有函数名相同,参数不相同(参数的类型、顺序、个数),对于返回值不要求。C++支持在同一作用域中出现同名函数,但是要求这些同名函数的形参不同。(二)c++里面是如何实现函数重载的?(三)参数个数相同、类型一样、仅顺序不同。
2026-06-04 22:51:57
255
原创 C++入门(命名空间,输入输出)
定义命名空间需要用到namespace关键字,后面跟的是命名空间的名字,后面接一对{}即可。{}即为命名空间的成员,命名空间中可以定义变量/函数/类型等namespace本质是定义出一个域,这个域跟全局域相互独立,不同的域可以定义不同的变量1、c++中的域: ①全局域 ②局部域 ③命名空间域 ④类域域影响的是编译时语法查找某一个函数/变量/类型出处(声明或者定义)的逻辑,所以有了域隔离,名字冲突就解决了。
2026-06-03 16:49:54
187
原创 力扣刷题---求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)
求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?// 创建n个对象,自动调用n次构造函数完成累加。进阶: 空间复杂度 O(1)O(1) ,时间复杂度 O(n)O(n)//通过与运算判断n是否为正数,以结束递归。思路:创建n个对象,自动调用n次构造函数完成累加。数据范围: 0<n≤2000<n≤200。// 静态成员变量类外初始化。递归与运算判断n是否为正数。
2026-04-08 15:56:44
39
原创 python学习之os,sys,time,random模块
print(os.path.basename(r"C:\Users\93634\Desktop\python学习\")) # 报错,如果文件路径以/结尾,那么就返回空值,如果以\结尾,报错。# print(os.path.exists(r"C:\Users\93634\Desktop\python学习\文件的基础操作.py")) # True。# print(os.path.isabs(r"C:\Users\93634\Desktop\python学习\文件的基础操作.py")) #True。
2025-11-02 21:09:30
1201
原创 python学习之正则表达式
findall():从头到尾匹配,匹配成功返回一个列表,匹配所有匹配成功的数据,不需要通过group()进行提取,没有group()方法。search():从头到尾匹配,匹配成功返回第一个匹配成功的对象,匹配失败就返回None,通过group()进行提取,只匹配一次。总结: match()从头开始匹配,匹配成功返回match()对象,匹配失败就返回None,通过group()进行提取,只匹配一次。当n小于等于要匹配内容的长度时,匹配n个长度,当大于时匹配内容长度个字符,当n超过要匹配内容的长度,发生报错。
2025-10-29 21:00:39
1019
原创 python学习之进程池
print(f"rd启动了,{os.getpid()},父进程:{os.getppid()}")for i in range(q.qsize()): #q.size()返回队列中数据的数量。print(f"wd启动了{os.getpid()},父进程:{os.getppid()}")同步:apply 同步阻塞,需要等待当前的子进程执行完毕后,再执行下一个进程(按顺序执行)p.close() #关闭进程池,防止进一步操作(进程池不在接收新的任务)#等待p中所有子进程执行完成,必须放在close之后。
2025-10-25 20:56:16
555
原创 python学习之进程
print(f"dance的进程编号:{os.getpid()},父进程编号:{os.getppid()}")print(f"主进程pid:{os.getpid()},主进程的父进程id:{os.getppid()}")print(f"sing的进程编号:{os.getpid()},父进程编号:{os.getppid()}")(比如 Process 定义和 start())会被子进程再次执行,子进程又会创建新的子进程,形成无限递归,相当于递归,无限制的去创建子进程,如果要解决windows递归创建子进程,
2025-10-22 21:00:45
1063
原创 python学习之多线程的特点与同步&互斥锁
概念:对共享资源进行锁定,保证多个线程访问共享数据不会出现共享数据错误问题:保证统同一时刻只能由一个线程去操作。print("当前线程是: ",threading.current_thread().name)a1.join() #等待a1子线程执行结束以后,代码再继续往下执行,开始执行a2子线程。print("第一次累加:",a)print("第二次累加:",a)print("第一次累加:",a)print("第二次累加:",a)print("第一次累加:",a)print("第二次累加:",a)
2025-10-21 20:05:20
729
原创 python学习之多任务,简单线程的实现
thread1 = threading.Thread(target=sing,args=('mike',)) #以元组的形式传参。# 4.阻塞主线程join():暂停的作用,等子线程执行结束后,主线程才会执行,必须放在start()后面。一个进程默认有一个线程,一个进程可以创建多个线程,线程是依附在进程里面的,没有进程就没有线程。print(f"{name}唱完歌了")print(f"{name}跳完舞了")print(f"{name}在唱歌")print(f"{name}在跳舞")
2025-10-19 21:31:59
740
原创 python学习之生成器&三者关系
print(next(test_a())) #加括号是调用函数,永远都是<generator object test_a at 0x00000233D5F40F90>的下一个,也就是1。迭代器: 可以记住自己遍历位置的对象,直观体现就是使用next()函数返回值,迭代器只能往前,不能往后(单向),当遍历完毕后,迭代器会抛出异常StopIteration。生成器:是特殊的迭代器,需要注意一下迭代器不一定是生成器,它是python中提供的通过简便的方法写出迭代器的一种手段。print("开始了")
2025-10-17 18:26:47
554
原创 python学习之可迭代对象&迭代器对象
如果一个对象拥有__iter__(),是可迭代对象,如果一个对象拥有__next__()和__iter__()方法,是迭代器对象。print(isinstance(123,(int,float,str))) #是其中的一种就会返回True。1.iter()调用对象的__iter__(),并把__iter__()方法的返回结果作为自己的返回值。含义:可以通过for...in..。两个特性: __iter__()方法和__next__()方法。2.next()调用对象的__next__(),一个个取元素。
2025-10-15 19:59:02
520
原创 python学习之with open&编码格式
encoding表示编码集,根据文件的实际保存编码进行获取数据,对于我们而言,使用更多的是utf-8。作用:代码执行完,系统会自动调用f.close(),可以省略关闭文件的步骤。3.创建文件夹 os.mkdir() #makedirector的缩写。os.rename('照片.jpg','picture1.jpg')print(os.listdir()) #默认获取当前目录列表。1.文件重命名 os.rename(旧名字,新名字)6.获取当前列表 os.listdir()案例:图片复制 'rb'
2025-10-15 16:53:19
611
原创 python学习之访问模式和文件定位操作
print(file.write('你好我是nefert很高兴见到你')) #重新编辑文件内容,原有内容就会被覆盖。# # 2.4.4 a:追加模式,不存在就创建新文件进行写入,存在则在原来的基础上追加新的内容。# 2.4.2 W:只写模式,文件存在就会先清空文件内容,再写入添加内容,不存在就创建新文件。# whence:起始位置,表示移动字节的参考位置,默认是0,0代表文件开头作为参考位置,# w+: 先写再读,文件存在就重新编译文件,不存在就创建新文件。# 文件指针:标记从那个位置开始读取数据。
2025-10-12 20:59:36
498
原创 python学习之文件的基础操作
f = open(r'C:\Users\93634\Desktop\test.txt','r',encoding='utf-8') #打开指定路径的文件。# 2.1 read(n): n表示从文件中读取数据的长度,没有传n值或者传的是负值,就默认一次性读取文件的所有内容。# f = open('test.txt','r',encoding='UTF-8') # 文件中有中文,避免乱码。# 文件名.name:返回要打开的文件的文件名。# print(f.name) #文件所在的具体路径(绝对路径)
2025-10-10 21:06:26
330
原创 python学习之单例模式和魔法方法&属性
res = super().__new__(cls) #方法重写,复用object中的__new__()方法res里面保存的是实例对象的引用,__new__()是静态方法,形参里面有cls,实参就必须传。一个对象的实例化过程:首先执行__new__(),如果没有重写__new__(),则默认调用object里面的__new__(),返回一个实例对象,2.__init__()是定义实例属性,__new__()是返回对象的引用。3.__init__()是实例级别的方法,__new__()是类级别的方法。
2025-10-09 21:30:29
1378
原创 python学习之多态、静态方法和类方法
使用装饰器@classmethod来标识为类方法,对于类方法,第一个参数必须是类对象,一般时以cls作为第一个参数。使用装饰器@classmethod来标识为类方法,对于类方法,第一个参数必须是类对象,一般时以cls作为第一个参数。print("cls:",cls) #cls就代表类对象本身,类本质上就是一个对象。1.不关注对象的类型,关注对象具有的行为,也就是对象实例方法是否同名。3.不同的子类对象,调用相同的父类方法,会产生不同的执行结果。类方法内部可以访问类属性,或者调用其他的类方法。
2025-10-08 15:32:46
650
原创 python学习之新式类写法和多继承
object--对象,python为所有对象提供的基类(顶级父类),提供一些内置属性和方法,可以使用dir()查看。# 1.3 class A(object) #新式类:继承了object类或者该类的子类都是新式类 --推荐使用。# python3中如果一个类没有继承任何类,则默认继承object类,因此python3都是新式类。# # 1.1class A: #经典类:不由任意内置类型派生出来的类。# class Father(object): #父类一。print("拥有一百万需要被继承")
2025-10-07 21:21:04
402
原创 python学习之继承和方法的重写
super在python中是一个特殊的类,super()是使用super类创建出来的对象,可以调用父类里面的方法。A/B/C类 C类(子类)继承于B类(父类),B类(子类)继承于A类(父类),C类具有A/B类的属性和方法。# super().sleep() # 可以调用父类中的其他方法。总结:子类可以继承父类的属性和方法,就算子类自己没有,也可以使用父类的。可以在子类中重写父类的方法,这个过程称为方法的覆盖,也称为方法的重写。继承的传递性就是子类拥有父类以及父类的父类中的属性和方法。
2025-10-07 17:56:12
677
原创 python学习之析构函数和封装
3. __xxx:隐藏属性,一般python中的魔法属性/方法,都是有特殊含义或功能的,自己不要轻易定义,如果定义在类中,无法在外部直接访问,子类不会继承,要访问的话只能通过间接的方式,另一个py文件中通过from xxx import *导入的时候,也无法导入。含义:将复杂的信息、流程给包起来,内部处理,让使用者只需要通过简单的操作步骤,就能实现, 指的就是隐藏对象中一些不希望被外部所访问到的属性或者方法。# 正常运行时,不会调用__del__(),对象执行结束后,系统会自动调用__del__()
2025-10-06 22:48:08
493
原创 python学习之实例属性和构造函数
print(f"{Person.name}的年龄:{self.age}") #self.age是实例属性。# print(f"{Person.name}的年龄:{self.age}") #self.age是实例属性。# # print(pe2.sex) # pe.sex = '女' 是给pe对象新增的实例属性,其他对象依然是没有这个属性的。print(f"{self.name}的年龄是{self.age},身高是{self.height}")
2025-10-06 20:22:18
848
原创 python学习之类和对象
由对象调用,至少有一个self参数,执行实列方法的时候,自动将调用该方法的对象赋值给self。面向对象(机洗):需要实现一个功能的时候,看重的是谁去帮我做这件事情(偷懒,找别人帮我做)# 4类:对一系列具有相同属性和行为的事件的统称,是一个抽象的概念,不是真实存在的事物。面向过程(手洗):需要实现一个功能的时候,着重的是过程,分析出一个个步骤,并把一。"""类名:人类 属性:年龄,身高,体重 方法:走路,说话,学习。# # 注意:1.先有类,再有对象 2.类只有一个,对象可以有很多个。
2025-10-05 22:14:04
708
原创 python学习之被装饰的函数
outer(func)('name','neeeedy',name='nefert') #'neeeedy以元组的形式传给args,name = 'nefert'以键等于值的形式传递给kwargs。# '你好'+fn()+'世界' -> '你好'+'我'+'现在是2025年'+'很好'+'世界'# 多个装饰器装饰过程,离函数最近的装饰器先装饰,然后外面的装饰器再进行装饰,由内到外的装饰过程。# '我'+fn()+'很好' -> '我'+'现在是2025年'+'很好'# # 被装饰的函数。
2025-10-04 22:32:43
470
原创 python学习之递归函数、闭包、装饰器
规律:从第三项开始,每一项都等于前两项之和,n=(n-2)+(n-1),即n=2n-3,n--当前项,(n-1)--前一项,(n-2)--前前一项。# n等于3时,fun(3) -> fun(2)+fun(1) -> fun(1)+fun(0) -> fun(0)# ot = outer(send) #调用外函数,返回值是inner(内函数的引用)# ot = outer(send) #调用外函数,返回值是inner(内函数的引用)
2025-10-03 22:11:17
968
原创 python学习之异常模块与包(二)
# 注意: 当作模块导入时,__name__ == "__main__" 下面的代码不会被显示出来。# # 1.文件在当前文件执行(即自己执行自己): __name__ == "__main__"# # 注意:导入多个功能,使用,将功能与功能隔开,后面的功能也可以起别名:功能名 as 别名。# login.log() #报错,未在init文件中__all__列表中导入login函数。# # 2.文件被当作模块被其他文件导入: __name__ == 模块名。# # 3.内置全局变量__name__
2025-10-03 16:09:19
634
原创 python学习之异常模块与包(一)
# 报错:用户输入密码,判断输入长度是否大于等于6,如果输入长度不足6,就报错,抛出自定义异常,并捕获该异常。# # 导入模块 #注意:可以一个import导入多个模块,但最好是一个模块单独使用一个import。# print("世界") #执行了raise语法,代码就不会继续往下运行。# from pytest import funa #导入函数只需要函数名,不需要()## funb() #报错,没有导入funb()函数。
2025-10-02 22:57:03
555
原创 python学习之异常(四种语法)与异常的传递
当python解释器检测到一个错误时,解释器就无法继续执行了,反而会出现一些错误的提示,这就是所谓的"异常"#else是只有没有异常是才会执行的代码,可以把except理解为if,和else不同时执行。# print(int(input("请输入整数:")))# n = int(input("请输入一个整数:"))# print("无论代码有无错误,都会执行的代码")# print("类型错误,请输入正确的数据类型")# print("没有异常才会执行的代码")
2025-10-01 22:38:27
555
原创 python学习之内置函数与拆包
# reduce(function,sequence) # function--函数:必须是有两个参数的函数,sequence--序列:可迭代对象。# print(sum({1.5,2.5,3})) #7.0,字典中只要有一个浮点数,那么结果必定是浮点数。# print(min(-8,5,key=abs)) #5,求绝对值的最小值。# print("a=",a,"b=",b) #报错,值错误,要拆包的值过多。# print(sum((1,2,3))) #元组。
2025-09-27 13:31:11
308
原创 python学习之函数进阶
print("num:",num) #报错,局部变量只能在被定义的函数中使用,函数外部不能使用。# print("这是test2中a的值",a) #这是test1中a的值 100。# print("这是test1中a的值",a) #调用函数前a的值: 100。# print("调用函数前a的值:",a) #这是test2中a的值 120。# print("调用函数后a的值:",a) #调用函数后a的值: 120。
2025-09-25 15:34:46
253
原创 python学习之函数参数及函数嵌套
funa('nefert','neeeedy','milk') #有几个形参,就要传几个实参,不可以多传或少传。# say_hello() #在say_goodbye()函数内调用say_hello()函数。# def func(*args): #可以将args改成其他参数名,但是args更符合代码规范性。# funb(20) #20,没有传值,就按默认参数执行代码,如果传值就按传入值执行代码。# # fund(1,2) #报错,需要传值的时候,需要采用键=值的方式。
2025-09-24 20:41:18
370
原创 python学习之函数
print(buy()) #('一桶水果茶', 20),return返回多个值,以元组的形式返回给调用者。# 函数名(实参1,实参2,...) #实参:调用函数时,小括号里面具体的值。# def 函数名(形参1,形参2,...): #形参:定义函数时,小括号里面的变量。# #调用几次,函数中的代码就运行几次,每次调用的时候函数都会从头开始执行。print(add(1,3)) #4,1,3就是实参。# print(buy()) #一桶水果茶。
2025-09-24 19:41:35
317
原创 python学习之可变对象和不可变对象
print(st,'修改后地址: ',id(st)) #world 修改后地址: 2112158837744。# print("li的原内存地址: ",id(li)) #li的原内存地址: 2101802835456。# print(st,'原地址: ',id(st)) #hello 原地址: 2112158838576。# print(n,'修改后地址: ',id(n)) #15 修改后地址: 1907069905648。# tua =(1,2,3) #元组。
2025-09-23 18:42:04
407
原创 python学习之深浅拷贝
print("li2[3]的内存地址:",id(li2[3])) #li2[3]的内存地址: 2244577712256。# print("li[3]的内存地址:",id(li[3])) #li[3]的内存地址: 2244577712256。# print("li2的内存地址:",id(li2)) #li2的内存地址: 1945667444160。# print("li的内存地址:",id(li)) #li的内存地址: 1945667444160。# 1.1.赋值 :会随着原对象一起改变。
2025-09-23 15:26:38
350
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅