自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(33)
  • 收藏
  • 关注

原创 数据处理学习

【代码】数据处理学习。

2025-05-10 21:15:56 118

原创 os、sys、time模块

print(os.path.basename(r'C:\Users\hp\PycharmProjects\learn/')) #报错,如果路径以/结尾,那么久返回空值,# 3.os.path.split() #把目录名和文件名分离,以元组的形式接受,第一个元素是文件路径,第二个元素是文件名。# 6.os.path.exists() #判断路径(文件或目录)是否存在,存在就返回True,不存在就返回False。# 9.os.path.abspath() #获取当前路径下的绝对路径。

2025-04-29 16:50:45 360

原创 正则基础与进阶

res = re.match('[^py]','1234python') #[^py]表示匹配除了p、y之外的字符。# res = re.match('[a-zA-Z]','hello') #a-zA-Z代表列举出所有大小写字母。# res = re.match('\D','s123') #\D只要不是数字都能匹配。# 3.\num 匹配分组num匹配到的字符串 --经常再匹配标签时被使用。# 7. \w 匹配单词字符,即a-z,A-Z,0-9,_,汉字 --常用。

2025-04-29 11:26:27 354

原创 协程(微线程)

monkey.patch_all() #将用到的time.sleep()天换成gevent里面自己实现耗时操作的gevent.sleep()方法。# greenlet:由C语言编写的实现协程模块,通过设置switch()来实现任意函数之间的切换。# 注意:线程和进程的操作是由程序出发系统接口,最后的执行者是系统,协程的执行操作则由程序员决定。# 1.线程是CPU调度的基本单位,线程是资源分配的基本单位,协程是单线程下的开发。# gevent:遇到IO操作时,会进行自动切换,属于主动式切换。

2025-04-26 11:41:38 441

原创 进程池11

result = p.apply_async(learn,args=(i,)) #learn为函数名,i为函数learn的参数。# Manager() 模块 专门做数据共享,支持的类型很多:如value,array,list,Queue,Lock等。print(f'rd start{os.getpid()},父进程:{os.getppid()}')# 同步调用:提交完任务后,就在原地等待,直到任务运行完毕后,拿到任务的返回值,才继续执行代码。

2025-04-25 20:50:39 405

原创 线程之间的通信

q = Queue(3) #最多可以接收三条消息,没写或为负值的话就代表没有上限,直到内存的尽头。# print(q.get()) #获取队列的一条消息,然后将其从队列中移除。li = ['3','4','5','6'] #定义全局变量。print('取出数据',q2.get())# # 1.防止别人导入文件的时候执行main里面的方法。# print('读取的数据',li)print('读取的数据',li)# q.empty():判断队列是否为空。# # 初始化一个队列对象。

2025-04-24 16:53:50 321

原创 进程和进程状态

print(f'sing子进程:{os.getpid()},父进程pid:{os.getppid()}') #父进程的pid就py文件主进程的id。# print(f'dance子进程:{os.getpid()},父进程pid:{os.getppid()}')# sex = input('请输入:') #光标显示,处于等待状态。# print('主进程的父类pid:',os.getppid())# print('z主进程pid:',os.getpid())

2025-04-23 20:37:13 421

原创 线程和多进程

t1 = threading.Thread(target=sing,args=('laoba',)) #以元组的形式传参。# a1.join() #等待a1子线程执行结束以后,代码再继续往下运行,开始执行a2子线程。# 一个进程默认有一个线程,进程里面可以创建多个线程,线程是依附在进程里面的,没有进程就没有线程。# 线程:是CPU调度的基本单位,每一个进程至少都会有一个线程,这个线程通常就是我们所说的主线程。# 3.守护线程,必须放在start()前面:主线程执行结束,子线程也会跟着结束。

2025-04-23 16:45:32 331

原创 生成器11

迭代器:可以记住自己遍历位置的对象,直观体现就是可以使用next()函数返回值,迭代器只能往前,不能往后,# ②yield语句一次返回一个结果,在每个结果中间,挂起函数,执行next(),在重新从挂起点继续往下执行。# yield 'a' #返回a,并暂停函数,在此处挂起,下一次再从此处恢复执行。# 生成器:是特殊的迭代器,迭代器并不一定是生成器,他是python提供的简便方法写出迭代器。# print(next(test_a())) #加括号是调用函数。

2025-04-23 14:41:11 432

原创 可迭代对象和迭代器

如果一个对象拥有__iter__(),是可迭代对象,如果一个对象拥有__next__()和__iter__(),就是迭代器对象。# 1.iter()调用对象的__iter__(),并把__iter__()方法的返回结果作为自己的返回值。# print(next(li2)) #第一种方式。# print(li2.__next__()) #第二种方式。# 2.next()调用对象的__next__(),一个个取元素。# 1.先通过__iter__()获取可迭代对象的迭代器。

2025-04-20 10:22:22 462

原创 编码格式1

desk = "C:\\Users\\hp\\Desktop\\新建文件夹 (2)\\"print(os.listdir('../')) #获取上一级目录的列表。# print(os.listdir()) #获取当前目录列表。# 1.文件重命名 os.rename(旧名字,新名字)# 6.获取目录列表 os.listdir()# 5.获取当前目录 os.getcwd()# 3.创建文件夹 os.mkdir()# 4.删除文件夹 os.rmdir()# # 将读取到的内容写入到当前文件中。

2025-04-19 17:31:35 187

原创 文件读写1

3.readlines():按照行的方式把文件内容一次性读取,返回的是一个列表,每一行的数据就是列表中的一个元素。# 2.readline():一次读取一行内容,方法执行完,会把文件指针移到下一行,准备再次读取。# 2.read(n):n表示从文件中读取的数据的长度,没有n值默认一次性读取文件的所有内容。# 1.read(n):n表示从文件中读取的数据的长度,没有n值默认一次性读取文件的所有内容。# w : 只写模式,文件存在就会先清空文件内容,再写入添加内容,不存在就创建新文件。

2025-04-18 17:30:48 425

原创 单例模式和魔法方法

可调用对象:函数,内置函数和类,凡是可以把一对()应用到某个对象身上都可以称为可调用对象。a() #调用一个可调用的实例对象,其实就是在调用它的__call__():方法。# 6.__call__():使一个实例对象成为一个可调用对象,就像函数那样可以调用。# 3.进行判断,如果类属性是None,吧__new__()返回的对象引用保存进去。# 实现单例模式 对象的内存地址都是一样的,只有一个对象。# 3.__class__():表示当前操作对象所在的类。

2025-04-17 20:23:35 451

原创 静态方法和类方法

【代码】静态方法和类方法。

2025-04-17 10:47:05 454

原创 继承和多态

class Son(Mother,Father): #有多个父类的属性和方法,如果多个父类具有同名的方法的时候,调用就近原则。# object --对象,python为所有对象提供的基类(顶尖父类),提供了一些内置的属性和方法,可以使用dir来查看。# super在python里是一个特殊的类,super()是使用super类创建出来的对象,可以调用父类中的方法。# 总结:子类可以继承父类的属性的方法,就算子类自己没有,也可以使用父类的。# A/B/C C继承B ,B继承A,C具有B和A的属性和方法。

2025-04-16 10:35:28 252

原创 析构函数和封装

del p #del p语句执行的时候,内存会立即被回收,会调用对象本身的__del__()方法。# 正常运行时,不会调用__del__(),对象结束执行之后,系统会自动调用__die__()2._xxx: 单下划线开头,声明私有属性/方法,如果定义在类中,外部可以使用,子类也可以继承。3.__xxx:双下划线开头,隐藏属性,如果定义在类中,无法在外部直接访问,子类不会继承,要访。# 删除对象的时候,解释器会默认调用__del__()方法。def __play(self): #隐藏方法。

2025-04-15 18:46:05 446

原创 面向对象基础

self代表对象本身,当对象调用实例方法是,python会自动将对象本身的引用作为参数,传递到实例方法的第一个参数self里面。print("方法中的self:",self) #self 表示当前调用该方法的对象。实例属性是属于对象的,只能由对象名访问,不能由类名访问。# 由对象调用,至少有一个self参数,执行实例方法的时候,自动将调用该方法的对象赋值给self。# 对象是类的具体实现,是类创建出来的真实存在的事物,面向对象思想的核心。#内存地址不一样,说明是不同的对象,可以实例化多个对象。

2025-04-15 10:24:46 337

原创 装饰器和回调函数

print('准备开始计算:{}函数:'.format(func.__name__))add(2,3,4,5,6,a = 1 ,b = 2) #关键字传参方式 key = value。print('inner函数中的值:%s,%s' % (a, b))print('inner函数中的值:%s,%s'%(a,b))fn(*args, **kwargs) #真正的业务函数。def test(a,b): #真正的业务函数定义。print('结果是:', (a + b))print('结果是:',(a+b))

2025-04-12 16:32:48 335

原创 函数的引用与闭包

2.如果函数收到的是一个不可变的对象(数字、字符、或元组)的引用,就不能直接修改原始的对象--相当于“传值”来传递对象 地址改变。1.如果函数收到的是一个可变对象(字典、列表)的引用,就能够修改对象的原始值--相当于通过“传引用”来传递对象 地址不变。return inF #外层函数的返回值是内层函数的函数名。函数的引用:函数名的引用,函数传递时的引用传递。# 2.闭包必须是内层函数对外层函数变量的引用。# 3.外层函数的返回值是内层函数的函数名。

2025-04-11 18:25:53 278

原创 递归函数,闭包,装饰器

最后求得整个序列,先定义一个空的列表list1,用append把符合条件的数据添加到序列中。=f(0)+1+2+3 #f(0)设置一个初始值 f(0)=0。# 斐波那契序列 1,1,2,3,5,8,13,21。# 思路:看题找规律 1+1=2 1+2=3 2+3=5 3+5=8。斐波那契序列 1,1,2,3,5,8,13,21。回溯:遇到终止条件之前,从最后往回返,一级一级的把值返回来。def funa(n): #funa(n)表示第n项的值。# 定义一个函数,求第n项。

2025-04-11 10:49:04 242

原创 模块2123

windows文件系统不区分大小写 解决办法:在__init__.py文件去定义一个__all__变量,__all__来定义*的具体内容。__init__.py文件并不是拥有来定义程序单元的,而是用于导入包内模块的成员,这样可以把模块中的成员导入变成包内的成员,方便使用。文件夹/目录,用于对不同模块进行分类管理,方便维护,但与普通文件夹的区别:多了一个_init_.py。3.使用模块内容时------模块名.作为模块导入时:__name__ == 模块名(没有后缀)步骤:1.创建模块(文件)

2025-04-09 16:16:46 292

原创 lambda的应用

先把对象中的两个元素取出,计算出一个值然后保存,后面将计算值和第三个元素进行计算 注意:需要先导包 from functools import reduce reduce(function,sequence)abs():返回绝对值 sum():求和,sum内放可迭代对象(不能用字符串,字典):只要有一个为浮点数,结果也是浮点数。map():可以对可迭代对象中的每一个元素进行映射,分别去执行 map(funa,itera)

2025-04-07 17:16:18 240

原创 作用域123

在函数内部修改全局变量的值:global关键字:将变量声明为全局变量。含义:指的是变量生效的范围,分为两种。分别是全局变量和局部变量。局部变量:函数内部定义的变量,从定义位置开始到定义结束位置有效。基本语法:函数名 = lamba 形参:返回值(表达式)全局变量:函数外部定义的变量,在整个文件中都是有效的。作用:在函数体内部,临时保存数据。函数名 = lambda 形参:返回值(表达式)语法格式:global 变量名。调用:结果 = 函数名(实参)可变参数 关键字参数。

2025-03-26 17:41:58 162

原创 函数参数1

嵌套定义:在一个函数总定义另外一个函数(定义和调用函数同级),调用如果在定义里面则永远调用不到。格式:def func(a,b): #写了几个就必须要传几个形参和实参的顺序和个数一致。格式:def func(*args) 可以把args改成其他参数名。注意:所有的位置参数必须出现在默认参数前。含义:为参数提供默认值,调用函数时可不传该默认参数的值。含义:传递和定义参数的顺序及个数必须一致。嵌套调用:在一个函数中调用另一个函数。4、关键字参数: 以字典的格式接收。

2025-03-26 17:08:47 280

原创 函数基础1

②函数中遇到return,表示此函数结束,return下面的代码不继续执行。函数:将独立的代码块组织成一个整体,使其具有特殊功能的代码集。在需要的时候再去调用即可。1、return表示此函数结束,print一直执行。2、return返回计算值,print是打印结果。2、调用函数: 调用函数前必须保证函数已经存在。return返回多个值,以元组的形式返回给调用者。作用:①return会给函数的执行者返回值。调用格式:函数名(实参1、实参2)作用:提高代码的重用性。

2025-03-26 16:41:01 210

原创 类型转换1

eva():执行运算,并返回值 可以实现list、dict、tuple、str之间的转换 很强大但是不够安全。list():将可迭代对象转换为列表(str,tuple,dict,set)int():转换由纯数字(包括+-)组成的字符串:会去掉小数点及后面的值。优点:速度快,占用空间少,效率高。可变对象:list dict set 变量值可以修改,但是内存地址不会发生改变。集合转为列表,会先去重,在转换。浅拷贝:嵌套列表内存地址相同,外层不相同。不可变对象:变量值不可修改,如果更改,内存地址发生改变。

2025-03-25 21:44:51 190

原创 元组字典集合

元组名(1,2,3) 只有一个元素时 末尾要加上, 否则返回元素数据类型元组只支持查询 : count index len跟列表相同。

2025-03-21 18:28:21 394

原创 字符串11

优点:字符与数字之间转换速度快 缺点:占用空间大。

2025-03-21 17:13:36 314

原创 列表123

append整体添加 extend分散添加:必须为可迭代对象 insert位置添加:insert(1,'2') 指定位置如果有元素,原有元素就会后移。删除元素:del pop:删除指定下标的数据(默认删除最后一个元素) remove:根据元素值进行删除。排序:sort:将列表特定顺序重新排列,默认从小到大 reverse:倒序。格式一:[表达式 for 变量 in 列表 /可迭代对象]列表名 = [元素1,2,3]

2025-03-21 17:12:47 188

原创 if判断-1

and 两边都符合为真 or或 not相反的结果。==等于!if-else 二选一 if-elif 多选一。三元表达式:if 为真 else为假。

2025-03-20 10:28:40 145

原创 循环语句1

while 条件:改变变量 如果没有改变变量 条件就会一直循环下去。

2025-03-20 10:28:19 298

原创 变量学习1

计算机中的存储空间,用于保存数据变量名 = 值。

2025-03-19 20:32:36 251

原创 常见bug-python

3.多行注释:''' ''' or """ """Show execution point 显示执行的断点。Run to Cursor跳到下一个断点位置。print(123,sep='') sep间隔多个值。print(end='')设置以....结尾。ctrl+/既可以添加注释也可以取消注释。step into 下一步。4. print() 输出多值逗号,隔开。语法错误:print不能在同一行。输入错误:中文引号 括号。

2025-03-19 17:36:12 136

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除